HP OpenVMS Systems Documentation |
[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]
この章は,X Window Systemバージョン11,リリース5のXlibルーチンを補足するためにDEC が提供するXlibルーチンについて説明します(ただし, これらのルーチンはDECのUNIXおよびWindows NTシステムでは使用できないことに注意してください)。
イベントが発生したときに呼び出す処理ルーチンおよび引数を指定します。
XSelectAsyncEvent(display, window_id, event_type, ast_routine, ast_userarg) Display *display; Window window_id; unsigned long event_type; int (*ast_routine)(); unsigned long ast_userarg;
Xlibは指定したイベントをイベント・キューに登録するときには,必ずクライアントの ast_routine 情報および ast_userarg 情報を使用してAST の実行要求を行います。ASTはイベント通知メカニズムとしてのみ機能します。 すなわち,アプリケーションがイベント・キューからイベントを実際に取り出して処理する場合は, 標準Xlibイベント・ルーチンを使用します。
クライアントが ast_routine を呼び出すと,ルーチンは ast_userarg 引数を値でクライアントに引き渡します。
クライアントはXSelectAsyncEventを何回も呼び出して,1つのウィンドウにおけるさまざまなイベント用に, ルーチンと引数のいくつかの組み合せを指定することができます。 常に最終呼び出しが最優先されます。クライアントが ast_routine 引数をゼロにしてXSelectAsyncEventを呼び出すと, 非同期通知は無効になりますが,指定したイベントに対する現在の選択状態は影響を受けません。
通知ASTは,イベントがXlibによってイベント・キューに登録される順序と同じ順序でキューに登録されます。 したがって,クライアントはキューにあるイベントと同じ順序で通知AST を受け取ることになります。
XSelectAsyncEventが1つのイベント・タイプを指定するのに対してXSelectAsyncInput が1つのイベント・マスクを指定すること以外は, XSelectAsyncEventはXSelectAsyncInputと類似しています。
イベントのサブセットが発生したときに呼び出す処理ルーチンおよび引数を指定します。
XSelectAsyncInput(display, window_id, event_mask, ast_routine, ast_userarg) Display *display; Window window_id; unsigned long event_mask; int (*ast_routine)(); unsigned long ast_userarg;
ビット | MIT C値 | 説明 |
---|---|---|
1 | KeyPressMask | (アプリケーションが)キーボード・ ダウン・イベントを必要としている。 |
2 | KeyReleaseMask | (アプリケーションが)キーボード・アップ・イベントを必要としている。 |
3 | ButtonPressMask | (アプリケーションが)ポインタ・ ボタン・ダウン・イベントを必要としている。 |
4 | ButtonReleaseMask | (アプリケーションが)ポインタ・ボタン・アップ・イベントを必要としている。 |
5 | EnterWindowMask | (アプリケーションが)ポインタ・ ウィンドウ・エントリ・イベントを必要としている。 |
6 | LeaveWindowMask | (アプリケーションが)ポインタ・ウィンドウ・リーブ・イベントを必要としている。 |
7 | PointerMotionMask | (アプリケーションが)ポインタ移動イベントを必要としている。 |
8 | PointerMotionHintMask | (アプリケーションが) ポインタ移動ヒントを必要としている。 |
9 | Button1MotionMask | ボタン1を押しながらポインタ移動。 |
10 | Button1MotionMask | ボタン2 を押しながらポインタ移動。 |
11 | Button3MotionMask | ボタン3を押しながらポインタ移動。 |
12 | Button4MotionMask | ボタン4を押しながらポインタ移動。 |
13 | Button5MotionMask | ボタン5を押しながらポインタ移動。 |
14 | ButtonMotionMask | いずれかのボタンを押しながらポインタ移動。 |
15 | KeymapStateMask | ウィンドウ・エントリ,およびフォーカス・ インにおいて(アプリケーションが)キーボード状態を必要としている。 |
16 | ExposureMask | (アプリケーションが)いずれかのエクスポージャを必要としている。 |
17 | VisibilityChangeMask | (アプリケーションが) 見えている状態の変更を必要としている。 |
18 | StructureNotifyMask | (アプリケーションが)ウィンドウ構造体の変更を必要としている。 |
19 | ResizeRedirectMask | 現在のウィンドウのサイズ変更をリダイレクトする。 |
20 | SubstructureNotifyMask | (アプリケーションが) 副構造体の通知を必要としている。 |
21 | SubstructureRedirectMask | ウィンドウの副構造体をリダイレクトする。 |
22 | FocusChangeMask | (アプリケーションが) 入力フォーカスの変更を必要としている。 |
23 | PropertyChangeMask | (アプリケーションが) プロパティの変更を必要としている。 |
24 | ColormapChangeMask | (アプリケーションが) カラー・マップの変更を必要としている。 |
25 | OwnerGrabButtonMask | owner_eventsをTRUEに設定した状態で自動グラブを起動しなければならない。 |
Xlibは,指定した複数のイベントの1つをイベント・キューに登録するたびに, クライアントの ast_routine 情報および ast_userarg 情報を使用してAST の実行要求を行います。この ast_routine 引数およびast_userarg 引数により,指定したイベントの1つが発生したことをクライアントに対して通知するときに使用される処理ルーチンとパラメータの組み合せをクライアントが指定することができます。AST はイベント通知メカニズムとしてのみ機能します。 すなわち,アプリケーションがイベント・ キューからイベントを実際に取り出して処理する場合は,標準Xlibイベント・ ルーチンを使用します。
クライアントはXSelectAsyncInputを何回も呼び出して,1つのウィンドウにおけるさまざまなイベント用にルーチンと引数のいくつかの組み合せを指定できます。 常に最終呼び出しが最優先されます。 ast_routine 引数をゼロにして呼び出しを行うと非同期通知は無効になりますが, 指定したイベントに対する現在の選択は影響を受けません。
通知ASTは,イベントがXlibによってイベント・キューに登録される順序と同じ順序でキューに登録されます。 したがって,クライアントはキューにあるイベントと同じ順序で通知AST を受け取ることになります。
XSelectAsyncEventが1つのイベント・タイプを指定するのに対してXSelectAsyncInput が1つのイベント・マスクを指定すること以外は, XSelectAsyncInputはXSelectAsyncEventと類似しています。