Version 2.2
X Consortium Standard
Kieron Drake
UniSoft Ltd.
翻訳: T.Sato <VEF00200@nifty.com>
このエクステンションは、 ユーザーのアクションの一般的な記録と再生のサポートを意図したものではない。 合成されたユーザー・インタラクションとその影響を同期させようとすることから、 それは難しい領域にある [XTrap, 89]; それは完全にレキシカルなレベルではなく、より高いレベルの対話記録/再生にある。 我々は、上記の、より単純なケースにのみ興味を持つ。 このエクステンションの機能に関するより詳細な議論や弁明は、 [Drake, 91] に示されている。
我々は試験/検証問題の直接の解決のために必要な 最小限の機能のセットのみを提供しようとしている。 このテスト用エクステンションそのものが可能な範囲でのテストを必要とするので、 できる限り単純なものであるべきである。
我々は以下の点にも務めた:
残りの2つの要求は以下のものを可能とする:
全ての XTEST エクステンション関数や手続き、 そして全ての明示的な定数やマクロは、"XTest" という文字列で始まる。 全ての動作は、サーバー/クライアント (サーバー)、 あるいはクライアントのみ (クライアント) に分類される。 Status 型の戻り値を持つ全てのルーチンは、 「成功」に対して非ゼロの値を、「失敗」に対してゼロを返す。 XTEST エクステンションがサポートされているとしても、 サーバーがそれらの機能を独断で拒否する場合がある; そのような場合には、それらはゼロを返すことになるであろう。
このエクステンションのためのインクルード・ファイルは <X11/extensions/XTest.h> である。
Bool
XTestQueryExtension(display, event_base, error_base, major_version, minor_version)
Display *display;
int *event_base; /* RETURN */
int *error_base; /* RETURN */
int *major_version; /* RETURN */
int *minor_version; /* RETURN */
XTestQueryExtension は、指定されたディスプレイが
XTEST エクステンションをサポートしているならば True を、
さもなくば False を返す。
このエクステンションがサポートされていれば、
*event_base にはこのエクステンションのためのイベントの
最初のイベント番号が、
*error_base にはこのエクステンションのためのエラー番号の
最初のエラーが設定されるであろう。
このバージョンのエクステンションではエラーやイベントは規定されていないので、
ここで返される値は規定されない (有効ではない)。
このエクステンションがサポートされていれば、
*major_version、及び *minor_version は、
ディスプレイがサポートしている
メジャー、及びマイナー・バージョンに設定される。
さもなくば、いずれの引数も設定されない。
Bool
XTestCompareCursorWithWindow(display, window, cursor)
Display *display;
Window window;
Cursor cursor;
このエクステンションがサポートされていれば、
XTestCompareCursorWithWindow は
cursor (None かも知れない)
で指定された ID のカーソルと
window で指定されたウィンドウのカーソルとの比較を行ない、
それらが同一であれば True を、さもなくば False を返す。
このエクステンションがサポートされていなければ、
この要求は無視され、ゼロが返される。
Bool
XTestCompareCurrentCursorWithWindow(display, window)
Display *display;
Window window;
このエクステンションがサポートされていれば、
XTestCompareCurrentCursorWithWindow は
現在のカーソルと指定されたウィンドウのカーソルとを比較し、
それらが同一であれば True を、さもなくば False を返す。
このエクステンションがサポートされていなければ、
この要求は無視され、ゼロが返される。
XTestFakeKeyEvent(display, keycode, is_press, delay)
Display *display;
unsigned int keycode;
Bool is_press;
unsigned long delay;
このエクステンションがサポートされていれば、
XTestFakeKeyEvent は
keycode で指定されたキーの
KeyPress (is_press が True である場合)、
もしくは KeyRelease (is_press が False である場合)
のいずれかのシミュレートをサーバーに要求する;
さもなくば、その要求は無視される。
このエクステンションがサポートされていれば、 シミュレートされたイベントは その要求を受け取ってから delay ミリ秒後まで処理されない (delay が CurrentTime であれば、 全く遅延させないものと解釈される)。 このクライアントからの他の要求 (もしあれば) は、この遅延時間が経過し、 シミュレートされたイベントの処理が完了するまでは処理されない。
XTestFakeButtonEvent(display, button, is_press, delay)
Display *display;
unsigned int button;
Bool is_press;
unsigned long delay;
このエクステンションがサポートされていれば、
XTestFakeButtonEvent は
button で指定された番号の論理ボタンの
ButtonPress (is_press が True である場合)、
もしくは ButtonRelease (is_press が False である場合)
のいずれかのシミュレートをサーバーに要求する;
さもなくば、その要求は無視される。
このエクステンションがサポートされていれば、 シミュレートされたイベントは その要求を受け取ってから delay ミリ秒後まで処理されない (delay が CurrentTime であれば、 全く遅延させないものと解釈される)。 このクライアントからの他の要求 (もしあれば) は、この遅延時間が経過し、 シミュレートされたイベントの処理が完了するまでは処理されない。
XTestFakeMotionEvent(display, screen_number, x, y, delay)
Display *display;
int screen_number;
int x, y;
unsigned long delay;
このエクステンションがサポートされていれば、
XTestFakeMotionEvent は
screen_number のルート・ウィンドウ上での
指定された座標 (x, y) への
ポインタの移動のシミュレートをサーバーに要求する;
さもなくば、その要求は無視される。
もし screen_number が -1 であれば、
現在の (ポインタがある) スクリーン が用いられる。
このエクステンションがサポートされていれば、 シミュレートされたイベントは その要求を受け取ってから delay ミリ秒後まで処理されない (delay が CurrentTime であれば、 全く遅延させないものと解釈される)。 このクライアントからの他の要求 (もしあれば) は、この遅延時間が経過し、 シミュレートされたイベントの処理が完了するまでは処理されない。
XTestFakeRelativeMotionEvent(display, screen_number, x, y, delay)
Display *display;
int screen_number;
int x, y;
unsigned long delay;
このエクステンションがサポートされていれば、
XTestFakeRelativeMotionEvent は
現在のポインタの位置から指定されたオフセット (x, y)
だけのポインタの移動のシミュレートをサーバーに要求する;
さもなくば、その要求は無視される。
もし screen_number が -1 であれば、
現在の (ポインタがある) スクリーン が用いられる。
このエクステンションがサポートされていれば、 シミュレートされたイベントは その要求を受け取ってから delay ミリ秒後まで処理されない (delay が CurrentTime であれば、 全く遅延させないものと解釈される)。 このクライアントからの他の要求 (もしあれば) は、この遅延時間が経過し、 シミュレートされたイベントの処理が完了するまでは処理されない。
XTestGrabControl(display, impervious)
Display *display;
Bool impervious;
impervious が True であれば、
これを実行したクライアントはサーバー・グラブに影響されなくなる。
impervious が False であれば、
これを実行したクライアントはサーバー・グラブの影響を受ける
通常の状態に戻る。
Bool
XTestSetGContextOfGC(gc, gid)
GC gc;
GContext gid;
XTestSetGContextOfGC は
gc で参照される隠蔽データ型内の GContext を
gid で指定されたものに設定する。
XTestSetVisualIDOfVisual(visual, visualid)
Visual *visual;
VisualID visualid;
XTestSetVisualIDOfVisual は
visual で参照される隠蔽データ型内の VisualID を
visualid で指定されたものに設定する。
Bool
XTestDiscard(display)
Display *display;
XTestDiscard は
指定されたディスプレイの出力バッファ内にある全ての要求を破棄する。
これは何らかの要求が破棄されたならば True を返す;
さもなくば、これは False を返す。
Drake, K. J., Some Proposals for a Minimum X11 Testing Extension. UniSoft Ltd., June 1991.
Last update: 2001-02-28