PreEditorのプラグイン化。
1 parent 6f114c4 commit 3a68a9c0e12f96168843ea78f355dfe8c16f8bdb
@tamra tamra authored on 21 Apr 2005
Showing 7 changed files
View
17
honoka/src/Makefile.am
 
moduledir = @SCIM_MODULEDIR@/IMEngine
module_LTLIBRARIES = honoka.la
 
honoka_la_SOURCES = honoka_imengine.cpp romkan.cpp kanainput.cpp
honoka_la_SOURCES = honoka_imengine.cpp
 
honoka_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
honoka_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
 
ANTHY_PLUGIN = plugin-anthy.la
endif
 
plugindir = @SCIM_MODULEDIR@/honoka
plugin_LTLIBRARIES = $(ANTHY_PLUGIN) $(WNN_PLUGIN)
plugin_LTLIBRARIES = $(ANTHY_PLUGIN) $(WNN_PLUGIN) plugin-romkan.la plugin-kanainput.la
 
plugin_anthy_la_SOURCES = anthyconversion.cpp
plugin_anthy_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_anthy_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_wnn_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_wnn_la_LDFLAGS = -avoid-version -module -rpath $(plugindir) @LIBTOOL_EXPORT_OPTIONS@ @INTLLIBS@ @SCIM_LIBS@ @WNN_LIBS@
plugin_wnn_la_LIBADD = $(top_builddir)/src/libhonoka_plugin.la
 
plugin_romkan_la_SOURCES = romkan.cpp
plugin_romkan_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_romkan_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_romkan_la_LDFLAGS = -avoid-version -module -rpath $(plugindir) @LIBTOOL_EXPORT_OPTIONS@ @INTLLIBS@ @SCIM_LIBS@
plugin_romkan_la_LIBADD = $(top_builddir)/src/libhonoka_plugin.la
 
plugin_kanainput_la_SOURCES = kanainput.cpp
plugin_kanainput_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_kanainput_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@
plugin_kanainput_la_LDFLAGS = -avoid-version -module -rpath $(plugindir) @LIBTOOL_EXPORT_OPTIONS@ @INTLLIBS@ @SCIM_LIBS@
plugin_kanainput_la_LIBADD = $(top_builddir)/src/libhonoka_plugin.la
 
 
View
43
honoka/src/honoka_imengine.cpp
HonokaInstance::HonokaInstance (HonokaFactory *factory, const String& encoding, int id)
: IMEngineInstanceBase (factory, encoding, id)
{
m_iconv.set_encoding ("EUC-JP");
preeditors.push_back(new Romkan(_scim_config));
preeditors.push_back(new KanaInput(_scim_config));
m_preeditor = preeditors.at(0);
DIR *dir = opendir(HONOKA_PLUGINDIR);
if (dir) {
struct dirent *entry;
while((entry = readdir(dir)) != NULL) {
if (!getInstance) {
dlclose(plugin);
continue;
}
convertors.push_back(static_cast<Convertor *>(getInstance(_scim_config)));
HonokaPluginBase *p = getInstance(_scim_config);
if (p->getPluginType() == "Convertor") {
convertors.push_back(static_cast<Convertor *>(p));
} else
if (p->getPluginType() == "PreEditor") {
preeditors.push_back(static_cast<PreEditor *>(p));
} else {
delete p;
dlclose(plugin);
}
}
}
}
if (!convertors.size()) convertors.push_back(new Convertor(_scim_config));
/*
#ifdef HAVE_LIBWNN
convertors.push_back(new WnnConversion(_scim_config));
#endif
#ifdef HAVE_LIBANTHY
convertors.push_back(new AnthyConversion(_scim_config));
#endif
*/
if (!preeditors.size()) preeditors.push_back(new PreEditor(_scim_config));
m_convertor = convertors.at(0);
m_preeditor = preeditors.at(0);
 
init();
}
 
View
2
■■■
honoka/src/honoka_imengine.h
 
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <romkan.h>
#include <kanainput.h>
#include <convertor.h>
#include <preeditor.h>
#define Uses_SCIM_ICONV
#include <scim.h>
View
honoka/src/honokapluginbase.cpp
View
honoka/src/honokapluginbase.h
View
honoka/src/kanainput.cpp
View
honoka/src/romkan.cpp