かな入力をちょっとだけスピードアップ。
1 parent 3c3c6be commit f611786790f266676a8b8e6832aff73a4eb7a6ab
@tamra tamra authored on 12 Nov 2005
Showing 2 changed files
View
27
honoka/plugins/kanainput.cpp
 
KanaInput::KanaInput(ConfigPointer cfg) : PreEditor(cfg)
{
fakeKanaInput = cfg->read(HONOKA_CONFIG_KANAINPUT_FAKEKANA,HONOKA_DEFAULT_KANAINPUT_FAKEKANA);
iconvert.convert(vs1,String("かきくけこさしすせそたちつてとはひふへほぱぴぷぺぽ"));
iconvert.convert(vs2,String("がぎぐげござじずぜぞだぢづでどばびぶべぼばびぶべぼ"));
iconvert.convert(svs1,String("はひふへほばびぶべぼ"));
iconvert.convert(svs2,String("ぱぴぷぺぽぱぴぷぺぽ"));
f1 = "1234567890-^qwertyuiopasdfghjkl;:]zxcvbnm,./\\!\"#$%&'()~=~|QWERTYUIOP`{ASDFGHJKL+*}ZXCVBNM<>?_";
iconvert.convert(f2,String("ぬふあうえおやゆよわほへたていすかんなにらせちとしはきくまのりれけむつさそひこみもねるめろ!”ぁぅぇぉゃゅょを=〜ーたていすかんなにらせ`「ちとしはきくまのり+*」っさそひこみも、。・_"));
}
 
 
KanaInput::~KanaInput()
return true;
}
}
if ((((key.get_ascii_code() == '@') && (fakeKanaInput)) || (key.code == SCIM_KEY_voicedsound )) && (pos > 0)) {
WideString vs1,vs2;
iconvert.convert(vs1,String("かきくけこさしすせそたちつてとはひふへほぱぴぷぺぽ"));
iconvert.convert(vs2,String("がぎぐげござじずぜぞだぢづでどばびぶべぼばびぶべぼ"));
for(unsigned int i = 0;i < vs1.length();i ++) {
if (vs1[i] == text[pos - 1]) text = text.substr(0,pos - 1) + vs2[i] + text.substr(pos);
}
return true;
}
if ((((key.get_ascii_code() == '[') && (fakeKanaInput)) || (key.code == SCIM_KEY_semivoicedsound )) && (pos > 0)) {
WideString vs1,vs2;
iconvert.convert(vs1,String("はひふへほばびぶべぼ"));
iconvert.convert(vs2,String("ぱぴぷぺぽぱぴぷぺぽ"));
for(unsigned int i = 0;i < vs1.length();i ++) {
if (vs1[i] == text[pos - 1]) text = text.substr(0,pos - 1) + vs2[i] + text.substr(pos);
for(unsigned int i = 0;i < svs1.length();i ++) {
if (svs1[i] == text[pos - 1]) text = text.substr(0,pos - 1) + svs2[i] + text.substr(pos);
}
return true;
}
if (fakeKanaInput) {
char f1[] = "1234567890-^qwertyuiopasdfghjkl;:]zxcvbnm,./\\!\"#$%&'()~=~|QWERTYUIOP`{ASDFGHJKL+*}ZXCVBNM<>?_";
WideString f2;
iconvert.convert(f2,String("ぬふあうえおやゆよわほへたていすかんなにらせちとしはきくまのりれけむつさそひこみもねるめろ!”ぁぅぇぉゃゅょを=〜ーたていすかんなにらせ`「ちとしはきくまのり+*」っさそひこみも、。・_"));
for(unsigned i = 0;f1[i] != 0;i ++) {
for(unsigned i = 0;i < f1.length();i ++) {
if (key.get_ascii_code() == f1[i]) {
text = text.substr(0,pos) + f2[i] + text.substr(pos);
pos ++;
return true;
View
6
honoka/plugins/kanainput.h
virtual String getPropertyName();
 
protected:
bool fakeKanaInput;
WideString vs1;
WideString vs2;
WideString svs1;
WideString svs2;
String f1;
WideString f2;
};
 
}
#endif