XSendExtensionEvent
Section: X FUNCTIONS (3X11)
Updated: Release 6.6
索引
xjman
名前
XSendExtensionEvent - 拡張入力イベントをクライアントに送る
書式
Status XSendExtensionEvent(display, device, destination, propagate, event_count, event_list, event_send)
Display *display;
XDevice *device;
Window destination;
Bool propagate;
int event_count;
XEventClass *event_list;
XEvent *event_send;
引き数
- display
-
X サーバへの接続を指定する。
- device
-
イベントが送られてくるデバイスを指定する。
- destination
-
イベントが送られるウィンドウを指定する。
ウィンドウID,
PointerWindow,
InputFocus
のいずれかを指定する。
- propagate
-
True か Flase の真偽値を指定する。
- event_count
-
event_list 内の XEventClass の数を指定する。
- event_list
-
使用するイベントセレクションのリストを指定する。
- event_send
-
送られるイベントへのポインタを指定する。
説明
XSendExtensionEvent
リクエストは、対象のウィンドウを識別し、指定したイベントをどのクライア
ントが受け取るのかを決定し、全てのアクティブなグラブを無視する。
このリクエストにはイベントクラスのリストを渡す必要がある。
正しいイベントクラス名については、XOpenDevice(3X11) を参照するこ
と。
このリクエストは引き数 w を使い、以下に示すように対象ウィンドウを識別す
る。
- *
-
w が
PointerWindow
ならば、
対象ウィンドウはポインタを含むウィンドウである。
- *
-
w が
InputFocus
であり、フォーカスウィンドウがポインタを含む場合、対象ウィンドウはポイ
ンタを含むウィンドウである。
そうでない場合は、対象ウィンドウはフォーカスウィンドウである。
どのクライアントが指定したイベントを受け取るか決めるため、
XSendExtensionEvent
は引き数 propagete を以下のように利用する。
- *
-
evnet_list が空リストの場合、イベントは対象ウィンドウを作ったクライア
ントに送られる。
このクライアントが既に存在しなくなった場合には、イベントはどこにも送ら
れない。
- *
-
propagete が
False
ならば、イベントは event_list 配列で指定されるイベント型のいずれか
を対象ウィンドウ上で選択している全てのクライアントに送られる。
- *
-
propagete が
True
であり、event_list 配列で指定されるイベントのいずれかを対象ウィンドウ
上で選択しているクライアントがない場合には、対象ウィンドウは
次の条件を満たすウィンドウに置き換えられる。その条件とは、対象ウィンド
ウにできるだけ近い祖先ウィンドウであり、対象ウィンドウとのそのウィンド
ウの間のウィンドウがこのイベント型の伝播を止めるようなマスクを持っ
ていないことである。
そのようなウィンドウが存在しない場合や、そのウィンドウがフォーカスウィ
ンドウの祖先ウィンドウであり、元々
InputFocus
が対象ウィンドウとして指定されている場合、このイベントはいかなるクライ
アントにも送られない。
そうでない場合、イベントは最終的な対象ウィンドウ上で event_list 配列で
指定されているイベントのいずれかを選択しているウィンドウ全てに通知され
る。
X サーバが必要に応じて構造体の内容のバイト交換を正しく行えるよう、
XEvent
構造体が持つイベントは、入力機能拡張で定義されているイベントでなくてはなら
ない(そうでない場合には、エラー
BadValue
となる)。
そうでない場合、X サーバがイベントの内容の変更やチェックは行わない。
例外は、転送されるイベントの send_event メンバが
True
にされることと、イベントのシリアル番号が正しく設定されることである。
XSendExtensionEvent
は通信プロトコルフォーマットへの変換が失敗した場合には 0 を返し、そう
でない場合には 0 でない値を返す。
XSendExtensionEvent
はエラー
BadClass,
BadDevice,
BadValue,
BadWindow
を起こすことがある。
返り値
- BadDevice
-
不正なデバイスが指定された。指定したデバイスが存在しないか、クライアン
トの XOpenInputDevice によってオープンされていない。このエラーは
指定されたデバイスが X のキーボードデバイスか X のポインタデバイスであ
る場合にも起こる。
- BadValue
-
数値の中にリクエストの許容範囲を越えるものがある。引き数に対して特定の範
囲が指定されない限り、引き数の型の全ての範囲が許される。選択肢として定義
された引き数は、このエラーを起こすことがある。
- BadWindow
-
引き数 Window の値が、定義されている Window を指していない。
関連項目
Programming with Xlib
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 返り値
-
- 関連項目
-
Time: 07:00:54 GMT, January 12, 2009