[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

7 KEYBINDファイル作成例

この章ではJVMSキーのKEYBINDファイルを例にして,KEYBINDファイルを作るときの注意点について書かれています。

JVMSキーのKEYBINDファイルを例 7-1に示します。 説明のため実際に提供されているものと違っている部分があります。

例 7-1 JVMSキーのKEYBINDファイル

!
! JVMS変換キー定義ファイル(システムテンプレート)
!
gold            = CTRL_G; (1)
kakutei         = CTRL_N;
kanji_henkan    = NULL, gold + CTRL_K; (2)
hiragana_henkan = CTRL_L;
katakana_henkan = CTRL_K;
zenkaku_henkan  = CTRL_F;
hankaku_henkan  = gold + CTRL_F;
kigou_henkan    = GS;
oomoji          = VOID; (3)
komoji          = VOID;
ji_bunsetsu     = CTRL_P;
zen_bunsetsu    = gold + CTRL_P;
tansyuku        = US;
sintyou         = gold + US;
zen_kouho       = gold + (NULL, CTRL_L); (4)
kaijo           = CTRL_N;
sakujo          = DEL;
hidari          = LEFT;
migi            = RIGHT;

%INCLUDE (IM$KEY_COMMON_BODY.DAT) (5)

  1. CTRL_Gをgoldというマクロ名に定義します。

  2. NULLまたはgold + CTRL_Kをkanji_henkanというマクロ名に定義します。

  3. VOIDはどのキーにもマッチしないキーのシンボルです。 JVMSキーには oomojiや komojiに対応するキーが定義されていないので,VOIDを使います。 oomoji, komojiは本体で使われているので,ここでこの行を省略することはできません。

  4. zen_kouhoというマクロ名はgold + NULLまたはgold + CTRL_Lを意味します。

  5. ディレクティブ%INCLUDEによってキー定義ファイルの本体 (IM$KEY_COMMON_BODY.DAT)を読み込みます。

IM$KEY_COMMON_BODY.DAT の内容を例 7-2 に示します。

例 7-2 IM$KEY_COMMON_BODY.DAT の内容

!
! JVMS/EVEJ/LEIA変換キー定義ファイル本体(システムテンプレート)
!
!
! 初期状態
!
STATE "initial" =
 TYPING_KEYS : START, ECHO, GOTO "inputting"; (1)
END;
!
! 入力状態
!
STATE "inputting" =
 kanji_henkan : CONVERT, GOTO "kk_converting"; (2)
 hiragana_henkan : HIRAGANA, GOTO "converting"; (3)
 katakana_henkan : KATAKANA, GOTO "converting";
 zenkaku_henkan : ZENKAKU, GOTO "converting";
 hankaku_henkan : HANKAKU, GOTO "converting";
 kigou_henkan : SYMBOL, GOTO "converting";
 oomoji  : UPPER, GOTO "converting";
 komoji  : LOWER, GOTO "converting";
 kakutei  : DONE, GOTO "initial";
 sakujo  : DELETE;
 hidari  : MOVE_LEFT; (4)
 migi  : MOVE_RIGHT;
 TYPING_KEYS : ECHO;
END;
!
! かな変換状態
!
STATE "converting" =
 kanji_henkan : CONVERT, GOTO "kk_converting";
 hiragana_henkan : HIRAGANA;
 katakana_henkan : KATAKANA;
 zenkaku_henkan : ZENKAKU;
 hankaku_henkan : HANKAKU;
 kigou_henkan : SYMBOL;
 oomoji  : UPPER;
 komoji  : LOWER;
 kaijo  : RESTORE_STRING, GOTO "inputting"; (5)
 TYPING_KEYS : DONE, START, ECHO, GOTO "inputting"; (6)
END;
!
! 漢字変換状態
!
STATE "kk_converting" =
 kanji_henkan : NEXT_CANDIDATE;
 hiragana_henkan : CLA_HIRAGANA;
 katakana_henkan : CLA_KATAKANA;
 zenkaku_henkan : ZENKAKU;
 hankaku_henkan : HANKAKU;
 kigou_henkan : SYMBOL;
 oomoji  : UPPER;
 komoji  : LOWER;
 ji_bunsetsu : NEXT_CLAUSE;
 zen_bunsetsu : PREV_CLAUSE;
 tansyuku : SHORTEN_CLAUSE;
 sintyou  : EXTEND_CLAUSE;
 zen_kouho : PREV_CANDIDATE;
 kaijo  : RESTORE_STRING, GOTO "inputting";
 TYPING_KEYS : DONE, START, ECHO, GOTO "inputting";
END;

  1. STATE"initial"にはTYPING_KEYSだけしか定義されていません。 画面に表示されるキー以外が入力されるとアプリケーションが動作を決めます。 画面に表示されるキーが入力されると入力をSTARTし,入力されたキーをECHOして, STATEは"inputting"に移ります。

  2. マクロkanji_henkanに定義されたキーが入力されると CONVERTによってかな漢字変換を行ない,STATEは"kk_converting"に移ります。

  3. マクロhiragana_henkan, katakana_henkan などに定義されたキーが入力されるとそれぞれの動作を行ない, STATEは"converting"に移ります。

  4. ここで,定義されているMOVE_LEFT, MOVE_RIGHTは入力文字列の編集時のキー定義です。 通常の編集時のカーソルの移動はアプリケーションが定義するので, ユーザはキー定義を行ないません。

  5. RESTORE_STRINGは,一度変換を始めた文字列をもう一度入力文字列に戻します。 STATEも"inputting"に戻すことで,文字列の編集関係のキーが使えるようになります。

  6. STATEが"converting"の時にTYPING_KEYSが入力されると現在の状態が確定して 新規に文字列が入力されます。DONEによって変換は確定し,初期状態に戻りますので, DONEを省略することはできません。DONEを省略するとSTARTがエラーになります。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]