1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * Copyright (C) 2004-2005 Takuro Ashie
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #define Uses_SCIM_EVENT
22 #include "scim_anthy_default_tables.h"
27 ConvRule scim_anthy_romaji_typing_rule[] = {
245 #if 0 /* emulate dead key */
260 ConvRule scim_anthy_romaji_double_consonant_rule[] = {
282 ConvRule scim_anthy_half_symbol_rule[] = {
318 ConvRule scim_anthy_wide_symbol_rule[] = {
354 ConvRule scim_anthy_half_number_rule[] = {
369 ConvRule scim_anthy_wide_number_rule[] = {
383 ConvRule scim_anthy_kana_typing_rule[] = {
436 // shift modifiered keys
494 ConvRule scim_anthy_kana_voiced_consonant_rule[] = {
543 ConvRule scim_anthy_romaji_ja_period_rule[] = {
548 ConvRule scim_anthy_romaji_ja_comma_rule[] = {
553 ConvRule scim_anthy_romaji_wide_period_rule[] = {
558 ConvRule scim_anthy_romaji_wide_comma_rule[] = {
563 ConvRule scim_anthy_romaji_half_period_rule[] = {
568 ConvRule scim_anthy_romaji_half_comma_rule[] = {
573 ConvRule scim_anthy_kana_ja_period_rule[] = {
578 ConvRule scim_anthy_kana_ja_comma_rule[] = {
583 ConvRule scim_anthy_kana_wide_period_rule[] = {
588 ConvRule scim_anthy_kana_wide_comma_rule[] = {
593 ConvRule scim_anthy_kana_half_period_rule[] = {
598 ConvRule scim_anthy_kana_half_comma_rule[] = {
603 ConvRule scim_anthy_romaji_ja_bracket_rule[] = {
609 ConvRule scim_anthy_romaji_wide_bracket_rule[] = {
615 ConvRule scim_anthy_kana_ja_bracket_rule[] = {
621 ConvRule scim_anthy_kana_wide_bracket_rule[] = {
627 ConvRule scim_anthy_romaji_ja_slash_rule[] = {
632 ConvRule scim_anthy_romaji_wide_slash_rule[] = {
637 ConvRule scim_anthy_kana_ja_slash_rule[] = {
642 ConvRule scim_anthy_kana_wide_slash_rule[] = {
647 HiraganaKatakanaRule scim_anthy_hiragana_katakana_table[] = {
782 WideRule scim_anthy_wide_table[] = {
880 VoicedConsonantRule scim_anthy_voiced_consonant_table[] = {
904 KeyCodeToCharRule scim_anthy_keypad_table[] = {
905 {SCIM_KEY_KP_Equal, "="},
906 {SCIM_KEY_KP_Multiply, "*"},
907 {SCIM_KEY_KP_Add, "+"},
908 {SCIM_KEY_KP_Separator, ","},
909 {SCIM_KEY_KP_Subtract, "-"},
910 {SCIM_KEY_KP_Decimal, "."},
911 {SCIM_KEY_KP_Divide, "/"},
912 {SCIM_KEY_KP_0, "0"},
913 {SCIM_KEY_KP_1, "1"},
914 {SCIM_KEY_KP_2, "2"},
915 {SCIM_KEY_KP_3, "3"},
916 {SCIM_KEY_KP_4, "4"},
917 {SCIM_KEY_KP_5, "5"},
918 {SCIM_KEY_KP_6, "6"},
919 {SCIM_KEY_KP_7, "7"},
920 {SCIM_KEY_KP_8, "8"},
921 {SCIM_KEY_KP_9, "9"},
925 KeyCodeToCharRule scim_anthy_kana_table[] = {
926 {SCIM_KEY_kana_fullstop, "。"},
927 {SCIM_KEY_kana_openingbracket, "「"},
928 {SCIM_KEY_kana_closingbracket, "」"},
929 {SCIM_KEY_kana_comma, "、"},
930 {SCIM_KEY_kana_conjunctive, "・"},
931 {SCIM_KEY_kana_middledot, "・"},
932 {SCIM_KEY_kana_WO, "を"},
933 {SCIM_KEY_kana_a, "ぁ"},
934 {SCIM_KEY_kana_i, "ぃ"},
935 {SCIM_KEY_kana_u, "ぅ"},
936 {SCIM_KEY_kana_e, "ぇ"},
937 {SCIM_KEY_kana_o, "ぉ"},
938 {SCIM_KEY_kana_ya, "ゃ"},
939 {SCIM_KEY_kana_yu, "ゅ"},
940 {SCIM_KEY_kana_yo, "ょ"},
941 {SCIM_KEY_kana_tsu, "っ"},
942 {SCIM_KEY_kana_tu, "っ"},
943 {SCIM_KEY_prolongedsound, "ー"},
944 {SCIM_KEY_kana_A, "あ"},
945 {SCIM_KEY_kana_I, "い"},
946 {SCIM_KEY_kana_U, "う"},
947 {SCIM_KEY_kana_E, "え"},
948 {SCIM_KEY_kana_O, "お"},
949 {SCIM_KEY_kana_O, "お"},
950 {SCIM_KEY_kana_KA, "か"},
951 {SCIM_KEY_kana_KI, "き"},
952 {SCIM_KEY_kana_KU, "く"},
953 {SCIM_KEY_kana_KE, "け"},
954 {SCIM_KEY_kana_KO, "こ"},
955 {SCIM_KEY_kana_SA, "さ"},
956 {SCIM_KEY_kana_SHI, "し"},
957 {SCIM_KEY_kana_SU, "す"},
958 {SCIM_KEY_kana_SE, "せ"},
959 {SCIM_KEY_kana_SO, "そ"},
960 {SCIM_KEY_kana_TA, "た"},
961 {SCIM_KEY_kana_CHI, "ち"},
962 {SCIM_KEY_kana_TI, "ち"},
963 {SCIM_KEY_kana_TSU, "つ"},
964 {SCIM_KEY_kana_TU, "つ"},
965 {SCIM_KEY_kana_TE, "て"},
966 {SCIM_KEY_kana_TO, "と"},
967 {SCIM_KEY_kana_NA, "な"},
968 {SCIM_KEY_kana_NI, "に"},
969 {SCIM_KEY_kana_NU, "ぬ"},
970 {SCIM_KEY_kana_NE, "ね"},
971 {SCIM_KEY_kana_NO, "の"},
972 {SCIM_KEY_kana_HA, "は"},
973 {SCIM_KEY_kana_HI, "ひ"},
974 {SCIM_KEY_kana_FU, "ふ"},
975 {SCIM_KEY_kana_HU, "ふ"},
976 {SCIM_KEY_kana_HE, "へ"},
977 {SCIM_KEY_kana_HO, "ほ"},
978 {SCIM_KEY_kana_MA, "ま"},
979 {SCIM_KEY_kana_MI, "み"},
980 {SCIM_KEY_kana_MU, "む"},
981 {SCIM_KEY_kana_ME, "め"},
982 {SCIM_KEY_kana_MO, "も"},
983 {SCIM_KEY_kana_YA, "や"},
984 {SCIM_KEY_kana_YU, "ゆ"},
985 {SCIM_KEY_kana_YO, "よ"},
986 {SCIM_KEY_kana_RA, "ら"},
987 {SCIM_KEY_kana_RI, "り"},
988 {SCIM_KEY_kana_RU, "る"},
989 {SCIM_KEY_kana_RE, "れ"},
990 {SCIM_KEY_kana_RO, "ろ"},
991 {SCIM_KEY_kana_WA, "わ"},
992 {SCIM_KEY_kana_N, "ん"},
993 {SCIM_KEY_voicedsound, "゛"},
994 {SCIM_KEY_semivoicedsound, "゜"},
998 NicolaRule scim_anthy_nicola_table[] = {
999 // no modifiered keys
1000 {"1", "1", "?", "!"},
1001 {"2", "2", "/", "゛"},
1002 {"3", "3", "〜", "#"},
1003 {"4", "4", "「", "$"},
1004 {"5", "5", "」", "%"},
1005 {"6", "6", "&", "["},
1006 {"7", "7", "’", "]"},
1007 {"8", "8", "(", "("},
1008 {"9", "9", ")", ")"},
1009 {"0", "0", "〜", "『"},
1010 {"-", "−", "=", "』"},
1012 {"\\", "¥", "", ""},
1014 {"q", "。", "ぁ", "ゐ"},
1015 {"w", "か", "え", "が"},
1016 {"e", "た", "り", "だ"},
1017 {"r", "こ", "ゃ", "ご"},
1018 {"t", "さ", "れ", "ざ"},
1019 {"y", "ら", "ぱ", "よ"},
1020 {"u", "ち", "ぢ", "に"},
1021 {"i", "く", "ぐ", "る"},
1022 {"o", "つ", "づ", "ま"},
1023 {"p", ",", "ぴ", "ぇ"},
1025 {"[", "゛", "゜", "゜"},
1027 {"a", "う", "を", "ヴ"},
1028 {"s", "し", "あ", "じ"},
1029 {"d", "て", "な", "で"},
1030 {"f", "け", "ゅ", "げ"},
1031 {"g", "せ", "も", "ぜ"},
1032 {"h", "は", "ば", "み"},
1033 {"j", "と", "ど", "お"},
1034 {"k", "き", "ぎ", "の"},
1035 {"l", "い", "ぽ", "ょ"},
1036 {";", "ん", "", "っ"},
1040 {"z", ".", "ぅ", "ゑ"},
1041 {"x", "ひ", "ー", "び"},
1042 {"c", "す", "ろ", "ず"},
1043 {"v", "ふ", "や", "ぶ"},
1044 {"b", "へ", "ぃ", "べ"},
1045 {"n", "め", "ぷ", "ぬ"},
1046 {"m", "そ", "ぞ", "ゆ"},
1047 {",", "ね", "ぺ", "む"},
1048 {".", "ほ", "ぼ", "わ"},
1049 {"/", "・", "ゎ", "ぉ"},
1051 // normal shift modifiered keys
1053 {"\"", "”", "", ""},
1077 {"Q", "。", "ぁ", "ゐ"},
1078 {"W", "が", "え", "が"},
1079 {"E", "だ", "り", "だ"},
1080 {"R", "ご", "ゃ", "ご"},
1081 {"T", "ざ", "れ", "ざ"},
1082 {"Y", "ぱ", "ぱ", "よ"},
1083 {"U", "ぢ", "ぢ", "に"},
1084 {"I", "ぐ", "ぐ", "る"},
1085 {"O", "づ", "づ", "ま"},
1086 {"P", "ぴ", "ぴ", "ぇ"},
1088 {"{", "゛", "゜", "゜"},
1090 {"A", "ヴ", "を", "ヴ"},
1091 {"S", "じ", "あ", "じ"},
1092 {"D", "で", "な", "で"},
1093 {"F", "げ", "ゅ", "げ"},
1094 {"G", "ぜ", "も", "ぜ"},
1095 {"H", "ば", "ば", "み"},
1096 {"J", "ど", "ど", "お"},
1097 {"K", "ぎ", "ぎ", "の"},
1098 {"L", "ぽ", "ぽ", "ょ"},
1099 {"+", "ん", "", "っ"},
1103 {"Z", ".", "ぅ", "ゑ"},
1104 {"X", "び", "ー", "び"},
1105 {"C", "ず", "ろ", "ず"},
1106 {"V", "ぶ", "や", "ぶ"},
1107 {"B", "べ", "ぃ", "べ"},
1108 {"N", "ぷ", "ぷ", "ぬ"},
1109 {"M", "ぞ", "ぞ", "ゆ"},
1110 {"<", "ぺ", "ぺ", "む"},
1111 {">", "ぽ", "ぼ", "わ"},
1112 {"?", "・", "ゎ", "ぉ"},
1114 {NULL, NULL, NULL, NULL},