| |
---|
| | if (tableConfig.find("Key/WideAscii") != tableConfig.end()) |
---|
| | scim_string_to_key_list(key_wascii_mode,tableConfig["Key/WideAscii"]); |
---|
| | if (tableConfig.find("Key/ToggleHalfOrWide") != tableConfig.end()) |
---|
| | scim_string_to_key_list(key_toggle_hw,tableConfig["Key/ToggleHalfOrWide"]); |
---|
| | if (tableConfig.find("Key/ToggleHiraOrKata") != tableConfig.end()) |
---|
| | scim_string_to_key_list(key_toggle_hk,tableConfig["Key/ToggleHiraOrKata"]); |
---|
| | if (tableConfig.find("Hook") != tableConfig.end()) |
---|
| | hookp = tableConfig["Hook"]; |
---|
| | else hookp = ""; |
---|
| | |
---|
| |
---|
| | pos ++; |
---|
| | return(eval()); |
---|
| | break; |
---|
| | } |
---|
| | case KROMA: { |
---|
| | buf += s; |
---|
| | text = text.substr(0,pos) + utf8_mbstowcs(s) + text.substr(pos); |
---|
| | pos ++; |
---|
| | return(eval()); |
---|
| | break; |
---|
| | } |
---|
| | case HROMA: { |
---|
| | buf += s; |
---|
| | text = text.substr(0,pos) + utf8_mbstowcs(s) + text.substr(pos); |
---|
| | pos ++; |
---|
| |
---|
| | if (!boin) { |
---|
| | WideString r; |
---|
| | r += convChars[KANA_N]; |
---|
| | if (mode == HROMA) convZenHan(r,0); |
---|
| | else if (mode == KROMA) convHiraKata(r); |
---|
| | text = text.substr(0,pos - 2) + r + text.substr(pos - 1); |
---|
| | buf = buf.substr(buf.length() - 1,1); |
---|
| | } |
---|
| | } |
---|
| |
---|
| | else if (buf[0] == buf[1]) { |
---|
| | WideString r; |
---|
| | r += convChars[KANA_XTU]; |
---|
| | if (mode == HROMA) convZenHan(r,0); |
---|
| | else if (mode == KROMA) convHiraKata(r); |
---|
| | text = text.substr(0,pos - 2) + r + text.substr(pos - 1); |
---|
| | buf = buf.substr(buf.length() - 1,1); |
---|
| | return(text); |
---|
| | } |
---|
| |
---|
| | if (it != RomkanTable.end()) { |
---|
| | WideString r; |
---|
| | r += it->second; |
---|
| | if (mode == HROMA) convZenHan(r,0); |
---|
| | else if (mode == KROMA) convHiraKata(r); |
---|
| | text = text.substr(0,pos - buf.length()) + r + text.substr(pos); |
---|
| | pos = pos - buf.length() + r.length(); |
---|
| | buf.clear(); |
---|
| | return(text); |
---|
| |
---|
| | } |
---|
| | } |
---|
| | return(true); |
---|
| | } |
---|
| | |
---|
| | if (key_toggle_hk.comp(key)) { |
---|
| | if (mode == ROMA) mode = KROMA; |
---|
| | else if (mode == KROMA) mode = ROMA; |
---|
| | return(true); |
---|
| | } |
---|
| | |
---|
| | if ((isprint(key.code)) && ((mode == ASCII) || (mode == WASCII))) { |
---|
| | if ((!key.is_alt_down()) && (!key.is_control_down())) { |
---|
| | insert(key.get_ascii_code()); |
---|
| | return(true); |
---|
| |
---|
| | { |
---|
| | switch(mode) { |
---|
| | case ROMA: { |
---|
| | return(String(_("Roma-Kana"))); |
---|
| | break; |
---|
| | } |
---|
| | case KROMA: { |
---|
| | return(String(_("Roma-Katakana"))); |
---|
| | break; |
---|
| | } |
---|
| | case HROMA: { |
---|
| | return(String(_("Half Roma-Kana"))); |
---|
| |
---|
| | |