BayGUI
IMEの実装について
- 結局サーバー/クライアント型に落ち着いたのでUTF-8で入出力できるアプリなら比較的簡単にIME機能を追加できます。
- サーバーは「ローマ字→かな変換」と「かな→漢字変換」機能をもっています
- 空き容量の関係でCVS版は機能がオフになっています
- 下の添付のmona.zipは機能オン版が入っています
IMEクライアント
- IMEオン・オフ
- 変換
- スペース押下
- 候補が複数あった場合はスペースで次候補へ
- 1文字削除
- 候補確定

イベント | イベントタイプ | charcode |
IMEアクティブ | IME_SETCONTEXT | |
1文字 | IME_CHAR | 0-127 |
1文字(削除) | IME_CHAR | VKEY_BACKSPACE |
1文字(確定) | IME_CHAR | VKEY_ENTER |
確定 | IME_ENDCOMPOSITION | |
- 各部品で優先的に処理したいキーコードだけ処理して後はすべてIMEクライアントに横流しする
確定(親部品に通知)
- 確定文字列の幅分IMEクライアントの表示位置を後ろにずらす
1文字(削除)
- 1バイト文字
- IME_CHAR->IME_ENDCOMPOSITION
- 2バイト文字
- IME_CHAR->IME_CHAR->IME_ENDCOMPOSITION
- 3バイト文字
- IME_CHAR->IME_CHAR->IME_ENDCOMPOSITION
IMEオフ(直接入力)
- 1バイトごとに
- IME_CHAR->IME_ENDCOMPOSITION
IMEサーバー
int MonaMain(List<char*>* pekoe)
{
getKanji("あ");
getKanji("わんりょく");
getYomi("逢");
getYomi("腕力");
getKana("!");
getKana("zzyu");
getRoman("!");
getRoman("っじゅ");
return 0;
}

変換タイプ | メッセージ | arg1 | arg2 | arg3 | str |
ローマ字→かな変換 | MSG_IMESERVER_GETKANA | | 0-失敗 1-成功 | | かな |
かな→ローマ字逆変換 | MSG_IMESERVER_GETROMAN | | 0-失敗 1-成功 | | ローマ字 |
かな→漢字変換 | MSG_IMESERVER_GETKANJI | | ヒット数 | | |
変換結果開始 | MSG_IMESERVER_STARTKANJI | ヒット数 | | | |
変換結果(結果分複数回送信する) | MSG_IMESERVER_KANJI | ヒット数 | カウンタ | | 漢字 |
変換結果終了 | MSG_IMESERVER_ENDKANJI | ヒット数 | | | |
漢字→かな逆変換 | MSG_IMESERVER_GETYOMI | | 0-失敗 1-成功 | | よみ |
入力方式
- ローマ字入力
- /Mona/src/server/ime/rule_roma.h におく
以下保留
- かな入力
- 入力は決まっているので楽だが、使っている人が少ない
- /Mona/src/server/ime/rule_kana.h におく?
- その他
- 使っている人はかな入力よりさらに少ない
- /Mona/src/server/ime/rule_skk.h におく?
- /Mona/src/server/ime/rule_tcode.h におく?
- /Mona/src/server/ime/rule_oyayubi.h におく?
辞書
- public+の基本辞書をさらにシェイプアップ(24253語、132KB、tek5圧縮)
- /root/BASICDIC.TX5 におく
以下保留
コメント
- まずは既存のシステムの実装を勉強してみては。 -- 2004-11-06 (土) 20:12:03
- 辞書ができた。tek5圧縮で132KB。
かなりぎりぎり・・・もう134KBしか空きがないのでむりぽ。MonaFormsアプリを消して300KBほど確保成功。 -- bayside 2004-11-08 (月) 13:24:47
- 日本語キターーー!!! -- bayside 2004-11-11 (木) 12:47:39
- 日本語入力できないでつ。C-\おすと何も入力できなくなるぽ。(でもC-\で直接入力に戻れるし、enterは効いてる) -- inQEMU? 2004-11-12 (金) 17:36:39
- どちらのイメージをお試しですか?CVS版は上にも書いてあるとおりIMEオフになっています。↓のイメージですか? -- bayside 2004-11-12 (金) 17:39:06
- ごめんちゃい。ローカルな問題ですた。(win上のXKeymacsが悪さをしてwinIMEがかな入力になってた) -- inQEMU? 2004-11-12 (金) 17:48:37
- でもってあつかましく要望。切り替えはshift-spaceもサポートしてほしいな。(102キーボード使ってるから。。) -- inQEMU? 2004-11-12 (金) 17:52:11
- すごいIME きましたねー。使ってみました。ひとつ報告 一旦変換をはじめて確定させずに、BACKSPACEで入力を取り消し、その後別文字を入力して変換すると、前の候補が変換対象として表示されるようです。 -- Yamami 2004-11-13 (土) 01:28:59
- ホントだ。yamamiさんの現象は当方でも起きました。それにしても日本語が入るって感動ですね。 -- uchan? 2004-12-22 (水) 19:25:35
コメントはありません。 コメント/BayGUI/IME?