m17n ライブラリ 1.8.4
|
ウィンドウシステム上の入力メソッドのサポート. [詳解]
データ構造 | |
struct | MInputGUIArgIC |
関数 minput_create_ic() の引数の型宣言. [詳解] | |
struct | MInputXIMArgIM |
関数 minput_open_im() の引数 arg によって指される構造体. [詳解] | |
struct | MInputXIMArgIC |
関数 minput_create_ic() の引数 arg によって指される構造体. [詳解] | |
関数 | |
MSymbol | minput_event_to_key (MFrame *frame, void *event) |
イベントを入力キーに変換する. | |
変数 | |
MInputDriver | minput_gui_driver |
ウィンドウシステムの内部入力メソッド用入力ドライバ. | |
MSymbol | Mxim |
"xim"を名前として持つシンボル . | |
ウィンドウシステム上の入力メソッドのサポート.
入力ドライバ minput_gui_driver
は、 ウィンドウシステム上で用いられる内部入力メソッド用のドライバである。 このドライバは入力スポットに preedit テキストと status テキストを表示する。詳細については minput_gui_driver
の説明を参照のこと。
m17n-X ライブラリは、Mxim
と言う名前を持つ外部入力メソッドを提供している。これは XIM (X Input Method) をバックグラウンドの入力エンジンとして利用する。シンボル Mxim
は Minput_driver
というプロパティを持っており、その値は入力ドライバ minput_xim_driver
へのポインタである。 詳細については minput_xim_driver
の説明を参照のこと。
MSymbol minput_event_to_key | ( | MFrame * | frame, |
void * | event | ||
) |
イベントを入力キーに変換する.
関数 minput_event_to_key() は、frame のイベント event に対応する入力キーを返す。ここでの「対応」はウィンドウシステムに依存する。
m17n-X ライブラリの場合には、event は 構造体 XKeyEvent
へのポインタであり、次のように処理される。
まず、関数 XKeysymToString
によって、event の keysym 名を取得し、次いで以下の変更を加える。
名前が "a" .. "z" のいずれかであって event に Shift モディファイアがあれば、名前はそれぞれ "A" .. "Z" に変換され、Shift モディファイアは取り除かれる。
名前が1バイト長で event に Control モディファイアがあれば、名前と 0x1F とをビット単位で and 演算し、Control モディファイアは取り除かれる。
それでも event にまだモディファイアがあれば、名前の前にそれぞれ "S-" (Shift), "C-" (Control), "M-" (Meta), "A-" (Alt), , "G-" (AltGr), "s-" (Super), "H-" (Hyper)がこの順番で付く。
たとえば、keysym 名が "a" でイベントが Shift, Meta, and Hyper モディファイアを持てば、得られる名前は "M-H-A" である。
最後にその名前を持つシンボルを返す。
MInputDriver minput_gui_driver |
ウィンドウシステムの内部入力メソッド用入力ドライバ.
入力ドライバ minput_gui_driver
は、ウィンドウシステム上で用いられる入力メソッド用ドライバである。
このドライバは、関数 minput_set_spot() によって設定された入力スポットに preedit テキスト用のサブウィンドウと status テキスト用のサブウィンドウを作り、それぞれを表示する。
マクロ M17N_INIT() は変数 minput_driver
をこのドライバへのポインタに設定し、全ての内部入力メソッドがこのドライバを使うようにする。
したがって、minput_driver
がデフォルト値のままであれば、minput_ で始まる名前を持つ関数の引数のうちドライバ依存のものは以下のようになる。
関数 minput_open_im() の引数 arg は無視される。
関数 minput_create_ic() の引数 arg は構造体 MInputGUIArgIC
へのポインタでなくてはならない。詳細については MInputGUIArgIC
の説明を参照のこと。
関数 minput_filter() の引数 arg が Mnil
の場合、 arg は XEvent
型のオブジェクトへのポインタでなくてはならない。この場合 key は arg から生成される。
関数 minput_lookup() の引数 arg は関数 minput_filter() の引数 arg と同じでなくてはならない。
MSymbol Mxim |
"xim"を名前として持つシンボル .
変数 Mxim は"xim"を名前として持つシンボルである。"xim" は入力メソッドドライバ minput_xim_driver の名前である。