XmbLookupString(3X11)

名前
XmbLookupString, XwcLookupString - 入力メソッド(input method)から変換処理された入力を得る

書式
int XmbLookupString(ic, event, buffer_return, bytes_buffer, keysym_return, status_return)
      XIC ic;
      XKeyPressedEvent *event;
      char *buffer_return;
      int bytes_buffer;
      KeySym *keysym_return;
      Status *status_return;

int XwcLookupString(ic, event, buffer_return, bytes_buffer, keysym_return, status_return)
      XIC ic;
      XKeyPressedEvent *event;
      wchar_t *buffer_return;
      int wchars_buffer;
      KeySym *keysym_return;
      Status *status_return;

引き数

buffer_return
    (存在するならば)入力メソッドからのマルチバイト文字列かワ イドキャラクタ文字列が返される。

bytes_buffer

wchars_buffer
    リターンバッファの容量を指定。

event
    使用されるキーイベント を指定。

ic  入力コンテクスト(input context)を指定。

keysym_return
    この引き数が NULL でない場合には、イベントから計算した KeySym が返される。

status_return
    返されたデータの種類を示す値が返される。

説明
関数 及び は、指定した入力メソッドから返された文字列を引き数 buffer_return に与え る。文字列が返されなければ、引き数 buffer_return の内容は変化しない。

引き数 keysym_return が NULL でなく、かつ、引き数 status_return が KeySym が返されることを示している場合には、KeySym は、引き数 keysym_return に返 される。KeySym にはイベントから得られた KeyCode がマッピングされている。 文字列と KeySym の両方が返されている場合、KeySym が必ず文字列に一致す るとは限らない。

は文字列の長さをバイト数で返し、 は文字列の長さをキャラクタ数で返す。 と のいずれも、指定した入力コンテクストの入力メソッドにバインドされたロケー ルのエンコーディングで文字列を返す。

と によって返された文字列は、ロケールのエンコーディングの初期状態で始まる (ロケールのエンコーディングが状態依存の場合)。 正しい入力処理を保証するためには、クライアントは イベントのみを 及び に送ることが重要である。 クライアントが イベントを送った場合の動作は未定義である。

クライアントは、まず引き数 status_return をチェックしてから他の返り値を 使用すべきである。 いずれの関数も、他の引き数に何が返されたかを示す引き数 status_return に値 を返す。 返される値を以下に示す。
 | 返されるべき入力文字列が、与えられた buffer_return よりも大きい。 必要なサイズ の場合はバイト数、 の場合はキャラクタ数)は、関数の値として返され、buffer_return 及び keysym_return の内容は変更されない。 文字列を得るためには、クライアントは適切な大きさのバッファを用意して、 同じイベントに対してこれらの関数を再呼び出しする。
 | 正しい入力が今のところ構成されていない。 buffer_return 及び keysym_return の内容は変更されず、関数はゼロを返す。
 | 入力キャラクタが構成されている。 これらは引き数 buffer_return に格納され、文字列の長さが関数の値として返 される。 文字列は入力コンテキストにバインドされたロケールでエンコードされている。 引き数 keysym_return の内容は変更されない。
 | 文字列ではなく KeySym が返され、この KeySym は keysym_return に返され る。 引き数 buffer_return の内容は変更されず、関数はゼロを返す。
 | KeySym と文字列の両方が返された。 と が同時に起こる。

と に引き数として渡された入力コンテクストが現在フォーカスを所有していてもそ うでなくても、結果に違いは生じない。 入力はフォーカスを失う前に入力コンテクスト内で構成され、もはやキーボー ドフォーカスを持たなくなっていても、その入力はこれに続く か、あるいは の呼び出しで返される。

関連項目
XLookupKeysym(3X11)
Xlib - C Language X Interface