ひらがな/カタカナ入力モード切り替えを実装。
1 parent ddb6afd commit 5f782867d8246c294c6b1cbd9eca143d012b5342
@tamra tamra authored on 23 Mar 2005
Showing 4 changed files
View
2
■■■
scim-wnn/data/like-msime.rkt
$Key/Ascii null
$Key/WideAscii null
# 全角/半角トグルキー
$Key/ToggleHalfOrWide Zenkaku_Hankaku
# かなトグルキー
$Key/ToggleHiraOrKata Hiragana_Katakana
 
!Shift+space  # 全角スペース
 
/
View
14
scim-wnn/m4/Makefile
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# 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
top_builddir = ..
LIBINTL =
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
PACKAGE = scim-wnn
USE_INCLUDED_LIBINTL = no
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++
ac_ct_F77 = g77
localstatedir = ${prefix}/var
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
sysconfdir = ${prefix}/etc
View
28
scim-wnn/src/romkan.cpp
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")));
View
4
scim-wnn/src/romkan.h
 
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<String,WideString> RomkanTable;
set<String> keepTable;
map<String,String> tableConfig;
String hookp;