XIfEvent(3) 述語手続きを使ってイベントキューを確認する

Other Alias

XCheckIfEvent, XPeekIfEvent

書式

XIfEvent(display, event_return, predicate, arg)

      Display *display;

      XEvent *event_return;

      Bool (*predicate)();

      XPointer arg;

Bool XCheckIfEvent(display, event_return, predicate, arg)

      Display *display;

      XEvent *event_return;

      Bool (*predicate)();

      XPointer arg;

XPeekIfEvent(display, event_return, predicate, arg)

      Display *display;

      XEvent *event_return;

      Bool (*predicate)();

      XPointer arg;

引き数

arg
述語手続きに渡すユーザ指定の引き数を指定する。
display
X サーバへの接続を指定する。
event_return
マッチしたイベント関連構造体かそのコピーが返される。
predicate
キューの中の次のイベントが必要なものか決定するために呼ばれる手続きを 指定する。

説明

関数 XIfEvent は、指定した述語手続きがイベントに対して True を返したときに限り完了する。 これはキューに入っているイベントにマッチしたことを示す。 XIfEvent は、追加のイベントを待ってブロックしていた場合、出力バッファをフラッシュ する。 XIfEvent はマッチするイベントをイベントキューから削除し、これをクライアントが与 えた XEvent 構造体にコピーする。

述語手続きがマッチした場合、 XCheckIfEvent はマッチしたイベントをクライアントが与えた XEvent にコピーし、 True を返す。 (このイベントはキューから削除される。) 述語手続きがマッチしなかった場合は、 XCheckIfEvent は False を返す。 キューに入っているこれ以前のイベントは全く破棄されない。

関数 XPeekIfEvent は、指定した述語手続きがイベントに対して True を返したときに限り、 True を返す。 述語手続きがマッチした後で、 XPeekIfEvent はマッチしたイベントをクライアントが与えた XEvent にコピーするが、そのイベントをキューからは削除しない。 XPeekIfEvent は追加のイベントを待ってブロックしていた場合には、出力バッファの内容を 全て出力する。