XSetDeviceButtonMapping(3XI) — NEWS-OS Programmer’s Manual
名称
XSetDeviceButtonMapping, XGetDeviceButtonMapping − デバイスボタンのマッピングを要求または変更する
形式
int XSetDeviceButtonMapping(display, device, map, nmap)
Display ∗display;
XDevice ∗device;
unsigned char map[];
int nmap; int XGetDeviceButtonMapping(display, device, map_return, nmap)
Display ∗display;
XDevice ∗device;
unsigned char map_return[];
int nmap;
引数
display X サーバとの接続を指定する。
device ボタンマッピングを要求または変更するデバイスを指定する。
map マッピングリストを変更する。
map_return マッピングリストを返す。
nmap マッピングリスト内の項目数を指定する。
解説
XSetDeviceButtonMapping リクエストは指定デバイスのマッピングを設定します。 成功した場合、 X サーバは DeviceMappingNotify イベントを生成し、 XSetDeviceButtonMapping は MappingSuccess を返します。 エレメント map[i] は物理的ボタン i+1 に対する論理ボタン ナンバを定義します。 リストの長さは XGetDeviceButtonMapping が返す長さと同じでなければなりません。 そうでなければ BadValue エラーとなります。 ゼロのエレメントはボタンを無効にし、 エレメントは物理的ボタンの数に制限されます。 ただし、二つのエレメントがゼロ以外で同一の値を 持つことはできません。 そでないと、BadValue エラーとなります。 変更するボタンが論理的には”押された"状態の場合、 XSetDeviceButtonMapping は MappingBusy を返します。 そして、マッピングは変更されません。
XSetDeviceButtonMapping は BadDevice、BadMatch および BadValue エラーを生成します。
XGetDeviceButtonMapping リクエストは 指定デバイスの現在のマッピングを返します。 ボタンはゼロからナンバリングされます。 XGetDeviceButtonMapping はデバイス上の実際の物理ボタンの数を返します。 デバイスの仮のマッピングは map[i]=i+1 です。 nmap 引数はデバイスマッピングが返される列の長さを指定し、 最初の nmap エレメントだけが map_return で返されます。
XGetDeviceButtonMapping は BadDevice または BadMatch エラーを生成します。
自己診断
BadDevice 無効デバイスが指定された。 指定デバイスが存在しない、 または XOpenInputDevice 経由で クライアントによってオープンされていない。 指定デバイスがX キーボードまたはX ポインタデバイスの場合、 このエラーが発生します。
BadMatch ボタンを持たないデバイスを指定することで、 XGetDeviceButtonMapping または XSetDeviceButtonMapping リクエスト が実行される場合、このエラーが発生します。
BadValue いくつかの数値が、 リクエストによって認められる範囲外である。 指定範囲が引数に対してでなければ、 引数のタイプで定義した範囲全てが認められます。 二者択一のセットで定義された引数の場合、 このエラーが発生します。
関連事項
XChangeDeviceKeyMapping(3XI)
XChangeDeviceModifierMapping(3XI) Programming With Xlib
NEWS-OSRelease 4.2.1R