diff --git a/honoka/plugins/Makefile.am b/honoka/plugins/Makefile.am index 6896690..e086b62 100644 --- a/honoka/plugins/Makefile.am +++ b/honoka/plugins/Makefile.am @@ -27,7 +27,7 @@ -DHONOKA_PLUGINDIR=\"@SCIM_MODULEDIR@/honoka\" noinst_HEADERS = wnnproto.h romkan.h wnnconversion.h kanainput.h \ - anthyplugin.h anthyconversion.h skkdic.h skkdicconversion.h wnnplugin.h wnnprediction.h \ + anthyplugin.h anthyconversion.h anthyprediction.h skkdic.h skkdicconversion.h wnnplugin.h wnnprediction.h \ honoka_plugin_def.h simpleprediction.h cannaconversion.h primeprediction.h moduledir = @SCIM_MODULEDIR@/IMEngine @@ -48,7 +48,7 @@ plugindir = @SCIM_MODULEDIR@/honoka plugin_LTLIBRARIES = $(ANTHY_PLUGIN) $(WNN_PLUGIN) $(CANNA_PLUGIN) plugin-skkdic.la plugin-romkan.la plugin-kanainput.la plugin-simpleprediction.la plugin-prime.la -plugin_anthy_la_SOURCES = anthyplugin.cpp anthyconversion.cpp +plugin_anthy_la_SOURCES = anthyplugin.cpp anthyconversion.cpp anthyprediction.cpp plugin_anthy_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@ plugin_anthy_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@ plugin_anthy_la_LDFLAGS = -avoid-version -module -rpath $(plugindir) @LIBTOOL_EXPORT_OPTIONS@ @INTLLIBS@ @SCIM_LIBS@ @ANTHY_LIBS@ diff --git a/honoka/plugins/anthyconversion.h b/honoka/plugins/anthyconversion.h index f170a28..61ddd66 100644 --- a/honoka/plugins/anthyconversion.h +++ b/honoka/plugins/anthyconversion.h @@ -37,8 +37,10 @@ /** @author TAM (Teppei Tamra) */ +class AnthyPrediction; class AnthyConversion : public Convertor { public: + friend class AnthyPrediction; AnthyConversion(ConfigPointer cfg); ~AnthyConversion(); diff --git a/honoka/plugins/anthyplugin.cpp b/honoka/plugins/anthyplugin.cpp index 59a66ad..84b274c 100644 --- a/honoka/plugins/anthyplugin.cpp +++ b/honoka/plugins/anthyplugin.cpp @@ -24,8 +24,12 @@ AnthyPlugin::AnthyPlugin(ConfigPointer cfg) : HonokaMultiplePluginBase(cfg) { - predictor = 0; convertor = new AnthyConversion(cfg); + #ifdef HAS_ANTHY_PREDICTION + predictor = new AnthyPrediction(cfg,convertor); + #else + predictor = 0; + #endif } diff --git a/honoka/plugins/anthyplugin.h b/honoka/plugins/anthyplugin.h index 30ba6be..6d6c4c4 100644 --- a/honoka/plugins/anthyplugin.h +++ b/honoka/plugins/anthyplugin.h @@ -30,7 +30,7 @@ #include #include #include -//#include +#include #include using namespace std; diff --git a/honoka/plugins/anthyprediction.cpp b/honoka/plugins/anthyprediction.cpp new file mode 100644 index 0000000..21e93c9 --- /dev/null +++ b/honoka/plugins/anthyprediction.cpp @@ -0,0 +1,128 @@ +/*************************************************************************** + * Copyright (C) 2005 by TAM(Teppei Tamra) * + * tam-t@par.odn.ne.jp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include "anthyprediction.h" + +#ifdef HAVE_GETTEXT + #include + #define _(String) dgettext(GETTEXT_PACKAGE,String) + #define N_(String) (String) +#else + #define _(String) (String) + #define N_(String) (String) + #define bindtextdomain(Package,Directory) + #define textdomain(domain) + #define bind_textdomain_codeset(domain,codeset) +#endif + + +AnthyPrediction::AnthyPrediction(ConfigPointer cfg,AnthyConversion *anthy) : Predictor(cfg) +{ + convertor = anthy; +} + + +AnthyPrediction::~AnthyPrediction() +{ +} + + + +/*! + \fn AnthyPrediction::getPredictionList(const WideString &str) + */ +ResultList AnthyPrediction::getPredictionList(const WideString &str) +{ + ResultList list; + list.kType = PREDICTION; + list.Title = utf8_mbstowcs(String(_("lookup result"))); + + #ifdef HAS_ANTHY_PREDICTION + String s; + convertor->m_iconv.convert(s,str); + anthy_set_prediction_string(convertor->context,s.c_str()); + struct anthy_prediction_stat pstat; + anthy_get_prediction_stat(convertor->context,&pstat); + + + for(int i = 0;i < pstat.nr_prediction;i ++) { + char res[256]; + anthy_get_prediction(convertor->context,i,res,255); + WideString w; + convertor->m_iconv.convert(w,String(res)); + list.kouho.push_back(w); + } + #endif + return list; + +} + + +/*! + \fn AnthyPrediction::disconnect() + */ +void AnthyPrediction::disconnect() +{ + return; +} + + +/*! + \fn AnthyPrediction::connect() + */ +bool AnthyPrediction::connect() +{ + return convertor->connect(); +} + + +/*! + \fn AnthyPrediction::isConnected() + */ +bool AnthyPrediction::isConnected() +{ + return convertor->isConnected(); +} + + +/*! + \fn AnthyPrediction::getPropertyName() + */ +String AnthyPrediction::getPropertyName() +{ + return String(_("AnthyPrediction")); +} + +/*! + \fn AnthyPrediction::getName() + */ +String AnthyPrediction::getName() +{ + return String("AnthyPrediction"); +} + +/*! + \fn AnthyPrediction::update(const WideString str,const WideString yomi) + */ +void AnthyPrediction::update(const WideString str,const WideString yomi) +{ + return; +} + diff --git a/honoka/plugins/anthyprediction.h b/honoka/plugins/anthyprediction.h new file mode 100644 index 0000000..975a9a2 --- /dev/null +++ b/honoka/plugins/anthyprediction.h @@ -0,0 +1,59 @@ +/*************************************************************************** + * Copyright (C) 2005 by TAM(Teppei Tamra) * + * tam-t@par.odn.ne.jp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef ANTHYPREDICTION_H +#define ANTHYPREDICTION_H + +#define Uses_SCIM_CONFIG_BASE + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + + +/** +@author TAM (Teppei Tamra) +*/ +class AnthyPrediction : public Predictor { +public: + AnthyPrediction(ConfigPointer cfg,AnthyConversion *anthy); + + ~AnthyPrediction(); + virtual ResultList getPredictionList(const WideString &str); + virtual void disconnect(); + virtual bool connect(); + virtual bool isConnected(); + virtual String getPropertyName(); + virtual String getName(); + virtual void update(const WideString str,const WideString yomi); + +protected: + AnthyConversion *convertor; + +}; + +#endif