RomkanのMultiple化。
1 parent 7ad752c commit 0395da6b75ad5679fc588258e2e7632f37060615
@tamra tamra authored on 17 Jul 2005
Showing 2 changed files
View
81
honoka/plugins/romkan.cpp
#define bind_textdomain_codeset(domain,codeset)
#endif
 
// プライグイン化のおまじないです。
HonokaPluginRegister(Romkan);
 
Romkan::Romkan(ConfigPointer cfg) : PreEditor(cfg)
HonokaPluginRegister(RomkanPlugin);
 
RomkanPlugin::RomkanPlugin(ConfigPointer cfg) : HonokaMultiplePluginBase(cfg)
{
String c = config->read(HONOKA_CONFIG_ROMKAN_TABLE_FILE,String(HONOKA_DEFAULT_ROMKAN_TABLE_FILE));
if (c.length()) romkans.push_back(new Romkan(cfg,String("")));
for(unsigned int i = 1;i < 10;i ++) {
char a[3];
sprintf(a,"%d",i);
c = config->read(String(HONOKA_CONFIG_ROMKAN_TABLE_FILE) + String(a),String(""));
if (c.length()) romkans.push_back(new Romkan(cfg,String(a)));
}
}
 
RomkanPlugin::~RomkanPlugin()
{
for(unsigned int i = 0;i < romkans.size();i ++) delete romkans[i];
}
 
HonokaPluginBase * RomkanPlugin::getPluginInstanceAt(int p)
{
if ((p < 0) || (p >= romkans.size())) return 0;
return romkans[p];
}
 
int RomkanPlugin::getPluginCount()
{
return romkans.size();
}
 
String RomkanPlugin::getName()
{
return String("RomkanPlugin");
}
 
Romkan::Romkan(ConfigPointer cfg,String _postfix) : PreEditor(cfg)
{
reset();
iconvert.set_encoding ("EUC-JP");
mode = ROMA;
postfix = _postfix;
init();
}
 
 
RomkanTable.clear();
keepTable.clear();
tableConfig.clear();
String rk_table = config->read(HONOKA_CONFIG_ROMKAN_TABLE_FILE,String(HONOKA_DEFAULT_ROMKAN_TABLE_FILE));
//String rk_table = config->read(HONOKA_CONFIG_ROMKAN_TABLE_FILE,String(HONOKA_DEFAULT_ROMKAN_TABLE_FILE));
String rk_table = config->read(String(HONOKA_CONFIG_ROMKAN_TABLE_FILE) + postfix,String(HONOKA_DEFAULT_ROMKAN_TABLE_FILE));
if (rk_table.size()) {
loadTable(rk_table);
}
\fn Romkan::getName()
*/
String Romkan::getName()
{
return String("Romkan");
return String("Romkan") + postfix;
}
 
/*!
\fn Romkan::getPropertyName()
*/
String Romkan::getPropertyName()
{
return String(_("Roma"));
return String(_("Roma")) + postfix;
}
 
 
 
View
21
honoka/plugins/romkan.h
#include <map>
#include <scim.h>
#include <scim_iconv.h>
#include <scim_event.h>
#include "preeditor.h"
#include <honokamultiplepluginbase.h>
#include <preeditor.h>
 
using namespace std;
using namespace scim;
 
public:
WideString p;
};
 
class Romkan;
class RomkanPlugin : public HonokaMultiplePluginBase {
public:
RomkanPlugin(ConfigPointer cfg);
 
~RomkanPlugin();
virtual HonokaPluginBase * getPluginInstanceAt(int p);
virtual int getPluginCount();
virtual String getName();
 
protected:
vector<Romkan *> romkans;
};
 
 
class Romkan : public PreEditor {
public:
Romkan(ConfigPointer cfg);
Romkan(ConfigPointer cfg,String _postfix);
 
~Romkan();
virtual void clear();
virtual void setPos(int p);
set<String> keepTable;
map<String,String> tableConfig;
String hookp;
vector<RomkanKeyEventList> hookKey;
String postfix;
};
 
#endif