Main Page   Modules   Data Structures   Globals   Appendix  

入力メソッド (GUI)
[GUI API]

ウィンドウシステム上の入力メソッドのサポート. [詳細]

データ構造

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"を名前として持つシンボル .
MInputDriver minput_xim_driver

説明

入力ドライバ minput_gui_driver は、 ウィンドウシステム上で用いられる内部入力メソッド用のドライバである。 このドライバは入力スポットに preedit テキストと status テキストを表示する。詳細については minput_gui_driver の説明を参照のこと。

m17n-X ライブラリは、Mxim と言う名前を持つ外部入力メソッドを提供している。これは XIM (X Input Method) をバックグラウンドの入力エンジンとして利用する。シンボル MximMinput_driver というプロパティを持っており、その値は入力ドライバ minput_xim_driver へのポインタである。 詳細については minput_xim_driver の説明を参照のこと。

ドライバ minput_xim_driverMxim を名前として持つ外部入力メソッド用であり、 XIM (X Input Methods) をバックグラウンドの入力エンジンとして使用する。

シンボル Mxim はこのドライバへのポインタを値とするプロパティ Minput_driver を持ち、LANGUAGE が Mnil で名前が Mxim である入力メソッドはこのドライバを利用する。

したがって、それらの入力メソッドでは、minput_ で始まる名前を持つ関数のドライバに依存する引数は次のようなものでなくてはならない。

関数 minput_open_im() の引数 arg は構造体 MInputXIMArgIM へのポインタでなくてはならない。詳細については MInputXIMArgIM の説明を参照。

関数 minput_create_ic() の引数 arg は構造体 MInputXIMArgIC へのポインタでなくてはならない。詳細については MInputXIMArgIC の説明を参照。

関数 minput_filter() の引数 arg は構造体 XEvent へのポインタでなくてはならない。引数 key は無視される。

関数 minput_lookup() の引数 arg は関数 function minput_filter() の引数 arg と同じものでなくてはならない。 引数 key は、無視される。


関数

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), "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() の引数 argMnil の場合、 argXEvent 型のオブジェクトへのポインタでなくてはならない。この場合 keyarg から生成される。

関数 minput_lookup() の引数 arg は関数 minput_filter() の引数 arg と同じでなくてはならない。

MSymbol Mxim

変数 Mxim は"xim"を名前として持つシンボルである。"xim" は入力メソッドドライバ minput_xim_driver の名前である。

MInputDriver minput_xim_driver

初期値:

  { xim_open_im, xim_close_im, xim_create_ic, xim_destroy_ic,
    xim_filter, xim_lookup, NULL }


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark