XGetDeviceKeyMapping, XChangeDeviceKeyMapping -
デバイスのキーのマッピングの問い合わせや変更を行なう
XChangeDeviceKeyMapping(display, device,
first_keycode, keysyms_per_keycode,
keysyms, keycode_count)
Display *display;
XDevice *device;
int first_keycode;
int keysyms_per_keycode;
KeySym *keysyms;
int keycode_count;
KeySym *XGetDeviceKeyMapping(display, device, first_keycode, keycode_count,
keysyms_per_keycode_return)
Display *display;
XDevice *device;
KeyCode first_keycode;
int keycode_count;
int *keysyms_per_keycode_return;
引き数¶
- display
- X
サーバへの接続を指定する。
- device
- キーマッピングの問い合わせあるいは変更の対象となるデバイスを指定する。
- first_keycode
- 返される最初のキーコードを指定する。
- keycode_count
- 返される、あるいは変更されるキーコードの数を指定する。
- keysyms_per_keycode
- キーコードあたりのキーシンボルの数を指定する。
- keysyms_per_keycode_return
- キーコードあたりのキーシンボルの数を返す先となる変数のアドレスを指定する。
- keysyms
- キーシンボルの配列のアドレスを指定する。
XGetDeviceKeyMapping
リクエストは、指定されたデバイスについて、
指定した数のキーコードに対するシンボルを返す。
キーコードは first_keycode
から始まる。 first_keycode
で指定される値は、
XListInputDevices が返す min_keycode
以上でなければならない。そうでない場合には、エラー
BadValue となる。
さらに、次の式は
XListInputDevices が返す max_keycode
以下でなけ
ればならない:
first_keycode + keycode_count - 1
そうでない場合は、エラー
BadValue となる。
キーシンボルのリスト中の要素の数は次のようになる:
keycode_count * keysyms_per_keycode_return
キーコード K
に対する、番号 N の
キーシンボル
(0から数える)は、
リスト中で(0から数えて)次のインデックスを持つ:
(K - first_code) * keysyms_per_code_return + N
X サーバは keysyms_per_keycode_return
の値として、要求された全ての
シンボルを知らせるために十分な長さを持つ任意の値を選ぶ。
特殊なキーシンボル値である
NoSymbol
は特定のキーコードの集合について、未使用の要素を埋めるために使われる。
XGetDeviceKeyMapping
が返した値を解放するには、
XFree を使用すること。
指定されたデバイスが入力クラス
key
をサポートしていない場合は、エラー
BadMatch となる。
XGetDeviceKeyMapping はエラー
BadDevice,
BadMatch,
BadValue
を起こすことがある。
XChangeDeviceKeyMapping
リクエストは、指定されたデバイスについて、
指定された数のキーコードに対するシンボルを定義する。
キーコードは first_keycode
から始まる。
この範囲に含まれないキーコードに対するシンボルは変化しない。
キーシンボル中の要素の数は次の数でなければならない:
num_codes * keysyms_per_keycode
指定された first_keycode は
XListInputDevices が返した min_keycode
以上の値でなければならない。そうでない場合には、エラー
BadValue となる。
さらに次の式は、
XListInputDevices が返した max_keycode
以下の
値でなければならず、そうでない場合にはエラー
BadValue となる:
first_keycode + num_codes - 1
キーコード K
に対する(0から数えて)N
番目のキーシンボルは、
キーシンボル中で0から数えて次のインデックスを持つ:
(K - first_keycode) * keysyms_per_keycode + N
クライアントは、指定する
keysyms_per_keycode
について、必要な全ての
シンボルを保持できる十分な長さである任意の数を選ぶことができる。
特別なキーシンボル値である
NoSymbol
は、特定のキーコードの集合に対して未使用の要素を埋めるために使われる。
NoSymbol
がキーコードに対する有効なリストの最後でない位置に現われるのは正しい。
XChangeDeviceKeyMapping
は、そのタイプのイベントを選択した全ての
クライアントに送られる
DeviceMappingNotify
イベントを生成する。
X
サーバは、このマッピングを解釈する必要はない。
X
サーバは、クライアントによる読み書きのために単に格納しているだけで
ある。
指定されたデバイスが入力クラス
key
をサポートしていない場合、エラー
BadMatch となる。
XChangeDeviceKeyMapping はエラー
BadDevice,
BadMatch,
BadAlloc,
BadValue
を起こすことがある。
返り値¶
- BadDevice
- 不正なデバイスが指定された。指定されたデバイスが存在しないか、
クライアントが
XOpenInputDevice
を使ってオープンしていない。
このエラーは指定したデバイスが、X
のキーボードデバイスや
X の
ポインタデバイスである場合にも起こる。
- BadMatch
- このエラーは、キーを持たないデバイスを指定して
XGetDeviceKeyMapping
リクエストか
XChangeDeviceKeyMapping
リクエストを行った場合に起こる。
- BadValue
- 指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範
囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが
ある。
- BadAlloc
- 要求されたリソースやサーバメモリの割り当てにサーバが失敗した。
関連項目¶
XSetDeviceButtonMapping(3X11)
XSetDeviceModifierMapping(3X11)
Programming with Xlib