diff --git a/scim-wnn/data/like-msime.rkt b/scim-wnn/data/like-msime.rkt index 7295dce..1414c0d 100644 --- a/scim-wnn/data/like-msime.rkt +++ b/scim-wnn/data/like-msime.rkt @@ -10,6 +10,8 @@ $Key/WideAscii null # 全角/半角トグルキー $Key/ToggleHalfOrWide Zenkaku_Hankaku +# かなトグルキー +$Key/ToggleHiraOrKata Hiragana_Katakana !Shift+space  # 全角スペース diff --git a/scim-wnn/m4/Makefile b/scim-wnn/m4/Makefile index 8e1531e..fa8a425 100644 --- a/scim-wnn/m4/Makefile +++ b/scim-wnn/m4/Makefile @@ -13,9 +13,9 @@ # PARTICULAR PURPOSE. -srcdir = . -top_srcdir = .. - +srcdir = /home/tamra/ANef/scim-wnn/m4 +top_srcdir = /home/tamra/ANef/scim-wnn +VPATH = /home/tamra/ANef/scim-wnn/m4 pkgdatadir = $(datadir)/scim-wnn pkglibdir = $(libdir)/scim-wnn pkgincludedir = $(includedir)/scim-wnn @@ -122,13 +122,13 @@ LIBOBJS = LIBS = -lwnn -lcrypt LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIBTOOL_DEPS = ./ltmain.sh +LIBTOOL_DEPS = /home/tamra/ANef/scim-wnn/ltmain.sh LN_S = ln -s LTLIBICONV = LTLIBINTL = LTLIBOBJS = MAKEINFO = ${SHELL} /home/tamra/ANef/scim-wnn/missing --run makeinfo -MKINSTALLDIRS = $(top_builddir)/./mkinstalldirs +MKINSTALLDIRS = /home/tamra/ANef/scim-wnn/mkinstalldirs MSGFMT = /usr/bin/msgfmt MSGMERGE = /usr/bin/msgmerge OBJEXT = o @@ -165,7 +165,7 @@ USE_NLS = yes VERSION = 0.2.3 XGETTEXT = /usr/bin/xgettext -ac_aux_dir = . +ac_aux_dir = /home/tamra/ANef/scim-wnn ac_ct_AR = ar ac_ct_CC = gcc ac_ct_CXX = g++ @@ -203,7 +203,7 @@ mandir = ${prefix}/man mkdir_p = mkdir -p -- oldincludedir = /usr/include -prefix = /usr +prefix = /usr/local program_transform_name = s,x,x, sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com diff --git a/scim-wnn/src/romkan.cpp b/scim-wnn/src/romkan.cpp index b144d83..a9b522b 100644 --- a/scim-wnn/src/romkan.cpp +++ b/scim-wnn/src/romkan.cpp @@ -175,6 +175,8 @@ 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 = ""; @@ -238,6 +240,13 @@ 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); @@ -272,6 +281,7 @@ 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); } @@ -282,6 +292,7 @@ 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); @@ -296,6 +307,7 @@ 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(); @@ -454,7 +466,12 @@ } 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()); @@ -488,6 +505,10 @@ return(String(_("Roma-Kana"))); break; } + case KROMA: { + return(String(_("Roma-Katakana"))); + break; + } case HROMA: { return(String(_("Half Roma-Kana"))); break; diff --git a/scim-wnn/src/romkan.h b/scim-wnn/src/romkan.h index a9bb03e..a946759 100644 --- a/scim-wnn/src/romkan.h +++ b/scim-wnn/src/romkan.h @@ -81,12 +81,12 @@ protected: String buf; String modeName; - enum inputMode {ROMA,HROMA,ASCII,WASCII}; + enum inputMode {ROMA,HROMA,KROMA,ASCII,WASCII}; inputMode mode; bool nnMode; bool asciiCancel; bool removeRemainder; - PreEditorKeyEventList key_ascii_mode,key_wascii_mode,key_toggle_hw; + PreEditorKeyEventList key_ascii_mode,key_wascii_mode,key_toggle_hw,key_toggle_hk; map RomkanTable; set keepTable; map tableConfig;