ローマ字入力モードからかな入力処理を除去。
1 parent e93b137 commit 134c4e348616b83867605da91c23aa7e1b6e7fcb
@tamra tamra authored on 15 Dec 2004
Showing 2 changed files
View
40
scim-wnn/src/romkan.cpp
if (k == 'q') {
mode = LATIN;
buf.clear();
return(text);
break;
} else if (k == 'Q') {
mode = WLATIN;
buf.clear();
return(text);
break;
}
buf += k;
}
buf += s;
text = text.substr(0,pos) + utf8_mbstowcs(s) + text.substr(pos);
pos ++;
return(eval());
break;
}
i += 2;
}
if (buf.length()) buf = buf.substr(1);
 
return(text);
}
 
 
*/
bool Romkan::keyEventHook(const KeyEvent &key)
{
if ((isprint(key.code)) && ((mode == LATIN) || (mode == WLATIN))) {
if (!(key.mask & (SCIM_KEY_AltMask | SCIM_KEY_ControlMask))) {
if ((!key.is_alt_down()) && (!key.is_control_down())) {
insert(key.get_ascii_code());
return(true);
}
}
\fn Romkan::inputEvent(const KeyEvent &key)
*/
bool Romkan::inputEvent(const KeyEvent &key)
{
// かな入力対応。えげつないコードでスミマセン。
for(unsigned int i = 0;KanaInputTable[i].code != 0;++ i) {
if (key.code == KanaInputTable[i].code) {
WideString w;
iconvert.convert(w,String(KanaInputTable[i].kana));
text = text.substr(0,pos) + w + text.substr(pos);
pos ++;
return(true);
}
}
if ((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.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);
}
return(true);
}
 
 
if (isprint(key.code) && (!key.is_alt_down()) && (!key.is_control_down())) {
if (key.get_ascii_code() == ' ') return(false);
insert(key.get_ascii_code());
return(true);
View
82
scim-wnn/src/romkan_table.h
"xe", "之",
"xo", "予",
"xt", "",
"xtu", "勻",
"xy", "",
"xya", "扎",
"xyu", "文",
"xyo", "斤",
"g", "",
"ga", "互",
"gi", "亢",
"gu", "什",
"Z*", "←",
"Z+", "≒",
"Z/", "▼",
"Z\\", "∴",
"Z ", "﹛"
"Z ", "﹛",
 
""
};
struct KanaInputKey {
int code;
const char kana[6];
};
 
const KanaInputKey KanaInputTable[] = {
{SCIM_KEY_kana_fullstop, "﹝"},
{SCIM_KEY_kana_openingbracket, ">"},
{SCIM_KEY_kana_closingbracket, "="},
{SCIM_KEY_kana_comma, "﹜"},
{SCIM_KEY_kana_conjunctive, "’"},
{SCIM_KEY_kana_middledot, "’"},
{SCIM_KEY_kana_WO, "毛"},
{SCIM_KEY_kana_a, "丑"},
{SCIM_KEY_kana_i, "不"},
{SCIM_KEY_kana_u, "丰"},
{SCIM_KEY_kana_e, "之"},
{SCIM_KEY_kana_o, "予"},
{SCIM_KEY_kana_ya, "扎"},
{SCIM_KEY_kana_yu, "文"},
{SCIM_KEY_kana_yo, "斤"},
{SCIM_KEY_kana_tsu, "勻"},
{SCIM_KEY_kana_tu, "勻"},
{SCIM_KEY_prolongedsound, "□"},
{SCIM_KEY_kana_A, "丐"},
{SCIM_KEY_kana_I, "中"},
{SCIM_KEY_kana_U, "丹"},
{SCIM_KEY_kana_E, "尹"},
{SCIM_KEY_kana_O, "云"},
{SCIM_KEY_kana_KA, "井"},
{SCIM_KEY_kana_KI, "五"},
{SCIM_KEY_kana_KU, "仁"},
{SCIM_KEY_kana_KE, "仃"},
{SCIM_KEY_kana_KO, "仇"},
{SCIM_KEY_kana_SA, "今"},
{SCIM_KEY_kana_SHI, "仄"},
{SCIM_KEY_kana_SU, "允"},
{SCIM_KEY_kana_SE, "六"},
{SCIM_KEY_kana_SO, "公"},
{SCIM_KEY_kana_TA, "凶"},
{SCIM_KEY_kana_CHI, "切"},
{SCIM_KEY_kana_TI, "切"},
{SCIM_KEY_kana_TSU, "勾"},
{SCIM_KEY_kana_TU, "勾"},
{SCIM_KEY_kana_TE, "化"},
{SCIM_KEY_kana_TO, "午"},
{SCIM_KEY_kana_NA, "卅"},
{SCIM_KEY_kana_NI, "卞"},
{SCIM_KEY_kana_NU, "厄"},
{SCIM_KEY_kana_NE, "友"},
{SCIM_KEY_kana_NO, "及"},
{SCIM_KEY_kana_HA, "反"},
{SCIM_KEY_kana_HI, "夫"},
{SCIM_KEY_kana_FU, "孔"},
{SCIM_KEY_kana_HU, "孔"},
{SCIM_KEY_kana_HE, "尺"},
{SCIM_KEY_kana_HO, "幻"},
{SCIM_KEY_kana_MA, "引"},
{SCIM_KEY_kana_MI, "心"},
{SCIM_KEY_kana_MU, "戈"},
{SCIM_KEY_kana_ME, "戶"},
{SCIM_KEY_kana_MO, "手"},
{SCIM_KEY_kana_YA, "支"},
{SCIM_KEY_kana_YU, "斗"},
{SCIM_KEY_kana_YO, "方"},
{SCIM_KEY_kana_RA, "日"},
{SCIM_KEY_kana_RI, "曰"},
{SCIM_KEY_kana_RU, "月"},
{SCIM_KEY_kana_RE, "木"},
{SCIM_KEY_kana_RO, "欠"},
{SCIM_KEY_kana_WA, "歹"},
{SCIM_KEY_kana_N, "氏"},
 
{0,""}
};