diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index 9cc5d91..91dccd7 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -154,6 +154,65 @@ { m_iconv.set_encoding ("EUC-JP"); + // ������ء� + loadPlugins(); + init(); +} + +HonokaInstance::~HonokaInstance() +{ + for(unsigned int i = 0;i < plugins.size();i ++) { + plugins[i].deleteInstance(plugins[i].instance); + dlclose(plugins[i].dll); + } + delete acpredictor; +} + +/*! + \fn HonokaInstance::split(const String &str,const char &sep) + */ +vector HonokaInstance::split(const String &str,const char &sep) +{ + vector s; + String w; + for(unsigned int i = 0;i < str.length();i ++) { + if (str[i] == sep) { + if (w.length()) { + s.push_back(w); + w.clear(); + } + } else w = w + str.substr(i,1); + } + if (w.length()) s.push_back(w); + return s; +} + +bool HonokaInstance::pluginCheck(HonokaPluginBase *p) { + + // Convertor�ξ�硣 + if (p->getPluginType() == "Convertor") { + convertors.push_back(static_cast(p)); + return true; + } else + // PreEditor�ξ�硣 + if (p->getPluginType() == "PreEditor") { + preeditors.push_back(static_cast(p)); + return true; + } else + // Predictor�ξ�硣 + if (p->getPluginType() == "Predictor") { + predictors.push_back(static_cast(p)); + return true; + } + return false; +} + + +/*! + \fn HonokaInstance::loadPlugins() + */ +void HonokaInstance::loadPlugins() +{ DIR *dir = opendir(HONOKA_PLUGINDIR); if (dir) { struct dirent *entry; @@ -233,55 +292,7 @@ m_multi = new MultiConvertor(_scim_config,this); - // ������ء� - init(); -} -bool HonokaInstance::pluginCheck(HonokaPluginBase *p) { - - // Convertor�ξ�硣 - if (p->getPluginType() == "Convertor") { - convertors.push_back(static_cast(p)); - return true; - } else - // PreEditor�ξ�硣 - if (p->getPluginType() == "PreEditor") { - preeditors.push_back(static_cast(p)); - return true; - } else - // Predictor�ξ�硣 - if (p->getPluginType() == "Predictor") { - predictors.push_back(static_cast(p)); - return true; - } - return false; -} - -HonokaInstance::~HonokaInstance() -{ - for(unsigned int i = 0;i < plugins.size();i ++) { - plugins[i].deleteInstance(plugins[i].instance); - dlclose(plugins[i].dll); - } - delete acpredictor; -} - -/*! - \fn HonokaInstance::split(const String &str,const char &sep) - */ -vector HonokaInstance::split(const String &str,const char &sep) -{ - vector s; - String w; - for(unsigned int i = 0;i < str.length();i ++) { - if (str[i] == sep) { - if (w.length()) { - s.push_back(w); - w.clear(); - } - } else w = w + str.substr(i,1); - } - if (w.length()) s.push_back(w); - return s; + return; } diff --git a/honoka/src/honoka_imengine.h b/honoka/src/honoka_imengine.h index a2cc2ad..70d7246 100644 --- a/honoka/src/honoka_imengine.h +++ b/honoka/src/honoka_imengine.h @@ -151,6 +151,7 @@ bool process_prediction_key_event(const KeyEvent &key); void startConversion(WideString s = WideString(), bool multi = false); void createLookupTable(ResultList cList); + void loadPlugins(); void init(); void updatePreEditor(); void updateProperty();