diff --git a/scim-wnn/src/romkan.cpp b/scim-wnn/src/romkan.cpp index 8be5223..332384c 100644 --- a/scim-wnn/src/romkan.cpp +++ b/scim-wnn/src/romkan.cpp @@ -314,6 +314,36 @@ */ 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()); diff --git a/scim-wnn/src/romkan_table.h b/scim-wnn/src/romkan_table.h index 63a68a9..a3a62c1 100644 --- a/scim-wnn/src/romkan_table.h +++ b/scim-wnn/src/romkan_table.h @@ -334,3 +334,79 @@ "" }; + +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,""} +};