jpayne@68
|
1 <?xml version="1.0" encoding="UTF-8" ?>
|
jpayne@68
|
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
jpayne@68
|
3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
jpayne@68
|
4 [
|
jpayne@68
|
5 <!ENTITY % defs SYSTEM "defs.ent"> %defs;
|
jpayne@68
|
6 ]>
|
jpayne@68
|
7
|
jpayne@68
|
8
|
jpayne@68
|
9 <!-- lifted from troff+ms+XMan by doclifter -->
|
jpayne@68
|
10 <book id="xtestlib">
|
jpayne@68
|
11
|
jpayne@68
|
12 <bookinfo>
|
jpayne@68
|
13 <title>XTEST Extension Library</title>
|
jpayne@68
|
14 <subtitle>X Consortium Standard</subtitle>
|
jpayne@68
|
15 <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo>
|
jpayne@68
|
16 <releaseinfo>Version 2.2</releaseinfo>
|
jpayne@68
|
17 <authorgroup>
|
jpayne@68
|
18 <author>
|
jpayne@68
|
19 <firstname>Kieron</firstname><surname>Drake</surname>
|
jpayne@68
|
20 <affiliation><orgname>UniSoft Ltd.</orgname></affiliation>
|
jpayne@68
|
21 </author>
|
jpayne@68
|
22 </authorgroup>
|
jpayne@68
|
23 <copyright><year>1992</year><holder>UniSoft Group Ltd.</holder></copyright>
|
jpayne@68
|
24
|
jpayne@68
|
25 <legalnotice>
|
jpayne@68
|
26 <para>
|
jpayne@68
|
27 Permission to use, copy, modify, and distribute this documentation for
|
jpayne@68
|
28 any purpose and without fee is hereby granted, provided that the above
|
jpayne@68
|
29 copyright notice and this permission notice appear in all copies. UniSoft
|
jpayne@68
|
30 makes no representations about the suitability for any purpose of the
|
jpayne@68
|
31 information in this document. This documentation is provided
|
jpayne@68
|
32 “as is” without express or implied warranty.
|
jpayne@68
|
33 </para>
|
jpayne@68
|
34 </legalnotice>
|
jpayne@68
|
35
|
jpayne@68
|
36 <legalnotice>
|
jpayne@68
|
37 <para role="multiLicensing">Copyright © 1992,1994 X Consortium</para>
|
jpayne@68
|
38 <para>
|
jpayne@68
|
39 Permission is hereby granted, free of charge, to any person obtaining a copy
|
jpayne@68
|
40 of this software and associated documentation files
|
jpayne@68
|
41 (the “Software”), to deal in the Software without restriction,
|
jpayne@68
|
42 including without limitation the rights to use, copy, modify, merge, publish,
|
jpayne@68
|
43 distribute, sublicense, and/or sell copies of the Software, and to permit
|
jpayne@68
|
44 persons to whom the Software is furnished to do so, subject to the following
|
jpayne@68
|
45 conditions:
|
jpayne@68
|
46 </para>
|
jpayne@68
|
47 <para>
|
jpayne@68
|
48 The above copyright notice and this permission notice shall be included in all
|
jpayne@68
|
49 copies or substantial portions of the Software.
|
jpayne@68
|
50 </para>
|
jpayne@68
|
51 <para>
|
jpayne@68
|
52 THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
jpayne@68
|
53 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
jpayne@68
|
54 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
jpayne@68
|
55 NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
jpayne@68
|
56 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
jpayne@68
|
57 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
jpayne@68
|
58 THE SOFTWARE.
|
jpayne@68
|
59 </para>
|
jpayne@68
|
60 <para>
|
jpayne@68
|
61 Except as contained in this notice, the name of the X Consortium shall not
|
jpayne@68
|
62 be used in advertising or otherwise to promote the sale, use or other dealings
|
jpayne@68
|
63 in this Software without prior written authorization from the X Consortium.
|
jpayne@68
|
64 </para>
|
jpayne@68
|
65 <para>X Window System is a trademark of The Open Group.</para>
|
jpayne@68
|
66 </legalnotice>
|
jpayne@68
|
67 </bookinfo>
|
jpayne@68
|
68
|
jpayne@68
|
69 <chapter id='Overview'>
|
jpayne@68
|
70 <title>Overview</title>
|
jpayne@68
|
71
|
jpayne@68
|
72 <para>
|
jpayne@68
|
73 This extension is a minimal set of client and server extensions
|
jpayne@68
|
74 required to completely test the X11 server with no user intervention.
|
jpayne@68
|
75 </para>
|
jpayne@68
|
76
|
jpayne@68
|
77 <para>
|
jpayne@68
|
78 This extension is not intended to support general journaling and
|
jpayne@68
|
79 playback of user actions. This is a difficult area [XTrap, 89] as it attempts
|
jpayne@68
|
80 to synchronize synthetic user interactions with their effects; it is at the
|
jpayne@68
|
81 higher level of dialogue recording/playback rather than at the strictly lexical
|
jpayne@68
|
82 level. We are interested only in the latter, simpler, case. A more detailed
|
jpayne@68
|
83 discussion and justification of the extension functionality is given in
|
jpayne@68
|
84 [Drake, 91].
|
jpayne@68
|
85 </para>
|
jpayne@68
|
86
|
jpayne@68
|
87 <para>
|
jpayne@68
|
88 We are aiming only to provide a minimum set of facilities that
|
jpayne@68
|
89 solve immediate testing and validation problems. The testing extension
|
jpayne@68
|
90 itself needs testing, where possible, and so should be as simple as possible.
|
jpayne@68
|
91 </para>
|
jpayne@68
|
92
|
jpayne@68
|
93 <para>We have also tried to:</para>
|
jpayne@68
|
94 <itemizedlist mark='bullet'>
|
jpayne@68
|
95 <listitem>
|
jpayne@68
|
96 <para>
|
jpayne@68
|
97 Confine the extension to an appropriate high level
|
jpayne@68
|
98 within the server to minimize portability problems. In practice this
|
jpayne@68
|
99 means that the extension should be at the DIX level or use the
|
jpayne@68
|
100 DIX/DDX interface, or both. This has effects, in particular, on the
|
jpayne@68
|
101 level at which "input synthesis" can occur.
|
jpayne@68
|
102 </para>
|
jpayne@68
|
103 </listitem>
|
jpayne@68
|
104 <listitem>
|
jpayne@68
|
105 <para>
|
jpayne@68
|
106 Minimize the changes required in the rest of the server.
|
jpayne@68
|
107 </para>
|
jpayne@68
|
108 </listitem>
|
jpayne@68
|
109 <listitem>
|
jpayne@68
|
110 <para>
|
jpayne@68
|
111 Minimize performance penalties on normal server operation.
|
jpayne@68
|
112 </para>
|
jpayne@68
|
113 </listitem>
|
jpayne@68
|
114 </itemizedlist>
|
jpayne@68
|
115 </chapter>
|
jpayne@68
|
116
|
jpayne@68
|
117 <chapter id='Description'>
|
jpayne@68
|
118 <title>Description</title>
|
jpayne@68
|
119
|
jpayne@68
|
120 <para>The functions provided by this extension fall into two groups:</para>
|
jpayne@68
|
121
|
jpayne@68
|
122 <itemizedlist>
|
jpayne@68
|
123 <listitem>
|
jpayne@68
|
124 <para>Client Operations</para>
|
jpayne@68
|
125 <para>
|
jpayne@68
|
126 These routines manipulate otherwise hidden client-side behavior.
|
jpayne@68
|
127 The actual implementation will depend on the details of the actual language
|
jpayne@68
|
128 binding and what degree of request buffering, GContext caching, and so on, is
|
jpayne@68
|
129 provided. In the C binding, defined in section 7, routines are provided
|
jpayne@68
|
130 to access the internals of two opaque data structures -
|
jpayne@68
|
131 <symbol role='Pn'>GC</symbol>s
|
jpayne@68
|
132 and
|
jpayne@68
|
133 <function>Visual</function>s - and to discard any requests pending within the
|
jpayne@68
|
134 output buffer of a connection. The exact details can be expected to differ for
|
jpayne@68
|
135 other language bindings.
|
jpayne@68
|
136 </para>
|
jpayne@68
|
137 </listitem>
|
jpayne@68
|
138 <listitem>
|
jpayne@68
|
139 <para>Server Requests</para>
|
jpayne@68
|
140 <para>
|
jpayne@68
|
141 The first of these requests is similar to that provided in most
|
jpayne@68
|
142 extensions: it allows a client to specify a major and minor version
|
jpayne@68
|
143 number to the server and for the server to respond with major and minor
|
jpayne@68
|
144 versions of its own. The remaining two requests allow the following:
|
jpayne@68
|
145 </para>
|
jpayne@68
|
146 </listitem>
|
jpayne@68
|
147 <listitem>
|
jpayne@68
|
148 <itemizedlist>
|
jpayne@68
|
149 <listitem>
|
jpayne@68
|
150 <para>
|
jpayne@68
|
151 Access to an otherwise "write-only" server resource: the
|
jpayne@68
|
152 cursor associated with a given window
|
jpayne@68
|
153 </para>
|
jpayne@68
|
154 </listitem>
|
jpayne@68
|
155 <listitem>
|
jpayne@68
|
156 <para>
|
jpayne@68
|
157 Perhaps most importantly, limited synthesis of input
|
jpayne@68
|
158 device events, almost as if a cooperative user had moved the pointing device
|
jpayne@68
|
159 or pressed a key or button.
|
jpayne@68
|
160 </para>
|
jpayne@68
|
161 </listitem>
|
jpayne@68
|
162 </itemizedlist>
|
jpayne@68
|
163 </listitem>
|
jpayne@68
|
164 </itemizedlist>
|
jpayne@68
|
165 </chapter>
|
jpayne@68
|
166
|
jpayne@68
|
167 <chapter id='C_Language_Binding'>
|
jpayne@68
|
168 <title>C Language Binding</title>
|
jpayne@68
|
169
|
jpayne@68
|
170 <para>
|
jpayne@68
|
171 The C functions either provide direct access to the protocol and add no
|
jpayne@68
|
172 additional semantics to those defined in section 5 or they correspond
|
jpayne@68
|
173 directly to the abstract descriptions of client operations in section 4.
|
jpayne@68
|
174 </para>
|
jpayne@68
|
175
|
jpayne@68
|
176 <para>
|
jpayne@68
|
177 All XTEST extension functions and procedures, and all manifest constants
|
jpayne@68
|
178 and macros, will start with the string "XTest". All operations are
|
jpayne@68
|
179 classified as server/client (Server) or client-only (Client).
|
jpayne@68
|
180 All routines that have return type Status will return nonzero for
|
jpayne@68
|
181 "success" and zero for "failure." Even if the XTEST extension is
|
jpayne@68
|
182 supported, the server may withdraw such facilities arbitrarily; in which case
|
jpayne@68
|
183 they will subsequently return zero.
|
jpayne@68
|
184 </para>
|
jpayne@68
|
185
|
jpayne@68
|
186 <para>
|
jpayne@68
|
187 The include file for this extension is
|
jpayne@68
|
188 <<symbol role='Pn'>X11/extensions/XTest.h</symbol>>.
|
jpayne@68
|
189 </para>
|
jpayne@68
|
190
|
jpayne@68
|
191 <funcsynopsis id='XTestQueryExtension'>
|
jpayne@68
|
192 <funcprototype>
|
jpayne@68
|
193 <funcdef>Bool<function> XTestQueryExtension</function></funcdef>
|
jpayne@68
|
194 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
195 <paramdef>int<parameter> *event_base</parameter></paramdef>
|
jpayne@68
|
196 <paramdef>int<parameter> *error_base</parameter></paramdef>
|
jpayne@68
|
197 <paramdef>int<parameter> *major_version</parameter></paramdef>
|
jpayne@68
|
198 <paramdef>int<parameter> *minor_version</parameter></paramdef>
|
jpayne@68
|
199 </funcprototype>
|
jpayne@68
|
200 </funcsynopsis>
|
jpayne@68
|
201
|
jpayne@68
|
202 <para>
|
jpayne@68
|
203 <xref linkend='XTestQueryExtension' xrefstyle='select: title'/>
|
jpayne@68
|
204 returns
|
jpayne@68
|
205 <function>True</function>
|
jpayne@68
|
206 if the specified display supports the XTEST extension, else
|
jpayne@68
|
207 <function>False</function>
|
jpayne@68
|
208 If the extension is supported, *event_base would be set to the event number
|
jpayne@68
|
209 for the first event for this extension and *error_base would be set to the
|
jpayne@68
|
210 error number for the first error for this extension. As no errors or
|
jpayne@68
|
211 events are defined for this version of the extension, the values returned
|
jpayne@68
|
212 here are not defined (nor useful). If the extension is supported,
|
jpayne@68
|
213 *major_version and *minor_version are set to the major and minor version
|
jpayne@68
|
214 numbers of the extension supported by the display. Otherwise, none of
|
jpayne@68
|
215 the arguments are set.
|
jpayne@68
|
216 </para>
|
jpayne@68
|
217
|
jpayne@68
|
218 <funcsynopsis id='XTestCompareCursorWithWindow'>
|
jpayne@68
|
219 <funcprototype>
|
jpayne@68
|
220 <funcdef>Bool<function> XTestCompareCursorWithWindow</function></funcdef>
|
jpayne@68
|
221 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
222 <paramdef>Window<parameter> *window</parameter></paramdef>
|
jpayne@68
|
223 <paramdef>Cursor<parameter> cursor</parameter></paramdef>
|
jpayne@68
|
224 </funcprototype>
|
jpayne@68
|
225 </funcsynopsis>
|
jpayne@68
|
226
|
jpayne@68
|
227 <para>If the extension is supported,
|
jpayne@68
|
228 <xref linkend='XTestCompareCursorWithWindow' xrefstyle='select: title'/>
|
jpayne@68
|
229 performs a comparison of the cursor whose ID is specified by cursor (which
|
jpayne@68
|
230 may be
|
jpayne@68
|
231 <function>None</function>
|
jpayne@68
|
232 with the cursor of the window specified by window returning
|
jpayne@68
|
233 <function>True</function>
|
jpayne@68
|
234 if they are the same and
|
jpayne@68
|
235 <function>False</function>
|
jpayne@68
|
236 otherwise. If the extension is not supported, then the request is ignored and
|
jpayne@68
|
237 zero is returned.
|
jpayne@68
|
238 </para>
|
jpayne@68
|
239
|
jpayne@68
|
240 <funcsynopsis id='XTestCompareCurrentCursorWithWindow'>
|
jpayne@68
|
241 <funcprototype>
|
jpayne@68
|
242 <funcdef>Bool<function>XTestCompareCurrentCursorWithWindow</function></funcdef>
|
jpayne@68
|
243 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
244 <paramdef>Window<parameter> window</parameter></paramdef>
|
jpayne@68
|
245 </funcprototype>
|
jpayne@68
|
246 </funcsynopsis>
|
jpayne@68
|
247
|
jpayne@68
|
248 <para>If the extension is supported,
|
jpayne@68
|
249 <xref linkend='XTestCompareCurrentCursorWithWindow' xrefstyle='select: title'/>
|
jpayne@68
|
250 performs a comparison of the current cursor with the cursor of the specified
|
jpayne@68
|
251 window returning
|
jpayne@68
|
252 <function>True</function>
|
jpayne@68
|
253 if they are the same and
|
jpayne@68
|
254 <function>False</function>
|
jpayne@68
|
255 otherwise. If the extension is not supported, then the request is ignored and
|
jpayne@68
|
256 zero is returned.
|
jpayne@68
|
257 </para>
|
jpayne@68
|
258
|
jpayne@68
|
259 <funcsynopsis id='XTestFakeKeyEvent'>
|
jpayne@68
|
260 <funcprototype>
|
jpayne@68
|
261 <funcdef><function>XTestFakeKeyEvent</function></funcdef>
|
jpayne@68
|
262 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
263 <paramdef>unsigned int<parameter> keycode</parameter></paramdef>
|
jpayne@68
|
264 <paramdef>Bool<parameter> is_press</parameter></paramdef>
|
jpayne@68
|
265 <paramdef>unsigned long<parameter> delay</parameter></paramdef>
|
jpayne@68
|
266 </funcprototype>
|
jpayne@68
|
267 </funcsynopsis>
|
jpayne@68
|
268
|
jpayne@68
|
269 <para>If the extension is supported,
|
jpayne@68
|
270 <xref linkend='XTestFakeKeyEvent' xrefstyle='select: title'/>
|
jpayne@68
|
271 requests the server to simulate either a
|
jpayne@68
|
272 <function>KeyPress</function>
|
jpayne@68
|
273 (if is_press is
|
jpayne@68
|
274 <function>True</function>
|
jpayne@68
|
275 or a
|
jpayne@68
|
276 <function>KeyRelease</function>
|
jpayne@68
|
277 (if is_press is
|
jpayne@68
|
278 <function>False</function>
|
jpayne@68
|
279 of the key with the specified keycode; otherwise, the request is ignored.
|
jpayne@68
|
280 </para>
|
jpayne@68
|
281
|
jpayne@68
|
282 <para>
|
jpayne@68
|
283 If the extension is supported, the simulated event will not be processed
|
jpayne@68
|
284 until delay milliseconds after the request is received (if delay is
|
jpayne@68
|
285 <function>CurrentTime</function>
|
jpayne@68
|
286 then this is interpreted as no delay at all). No other requests from
|
jpayne@68
|
287 this client will be processed until this delay, if any, has expired
|
jpayne@68
|
288 and subsequent processing of the simulated event has been completed.
|
jpayne@68
|
289 </para>
|
jpayne@68
|
290
|
jpayne@68
|
291 <funcsynopsis id='XTestFakeButtonEvent'>
|
jpayne@68
|
292 <funcprototype>
|
jpayne@68
|
293 <funcdef><function>XTestFakeButtonEvent</function></funcdef>
|
jpayne@68
|
294 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
295 <paramdef>unsigned int<parameter> button</parameter></paramdef>
|
jpayne@68
|
296 <paramdef>Bool<parameter> is_press</parameter></paramdef>
|
jpayne@68
|
297 <paramdef>unsigned long<parameter> delay</parameter></paramdef>
|
jpayne@68
|
298 </funcprototype>
|
jpayne@68
|
299 </funcsynopsis>
|
jpayne@68
|
300
|
jpayne@68
|
301 <para>If the extension is supported,
|
jpayne@68
|
302 <xref linkend='XTestFakeButtonEvent' xrefstyle='select: title'/>
|
jpayne@68
|
303 requests the server to simulate either a
|
jpayne@68
|
304 <function>ButtonPress</function>
|
jpayne@68
|
305 (if is_press is
|
jpayne@68
|
306 <function>True</function>
|
jpayne@68
|
307 or a
|
jpayne@68
|
308 <function>ButtonRelease</function>
|
jpayne@68
|
309 (if is_press is
|
jpayne@68
|
310 <function>False</function>
|
jpayne@68
|
311 of the logical button numbered by the specified button; otherwise, the
|
jpayne@68
|
312 request is ignored.
|
jpayne@68
|
313 </para>
|
jpayne@68
|
314
|
jpayne@68
|
315 <para>If the extension is supported,
|
jpayne@68
|
316 the simulated event will not be processed until delay milliseconds
|
jpayne@68
|
317 after the request is received (if delay is
|
jpayne@68
|
318 <function>CurrentTime</function>
|
jpayne@68
|
319 then this is interpreted as no delay at all). No other requests from
|
jpayne@68
|
320 this client will be processed until this delay, if any, has expired
|
jpayne@68
|
321 and subsequent processing of the simulated event has been completed.
|
jpayne@68
|
322 </para>
|
jpayne@68
|
323
|
jpayne@68
|
324 <funcsynopsis id='XTestFakeMotionEvent'>
|
jpayne@68
|
325 <funcprototype>
|
jpayne@68
|
326 <funcdef><function>XTestFakeMotionEvent</function></funcdef>
|
jpayne@68
|
327 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
328 <paramdef>int<parameter> screen_number</parameter></paramdef>
|
jpayne@68
|
329 <paramdef>int<parameter> x</parameter></paramdef>
|
jpayne@68
|
330 <paramdef>int<parameter> y</parameter></paramdef>
|
jpayne@68
|
331 <paramdef>unsigned long<parameter> delay</parameter></paramdef>
|
jpayne@68
|
332 </funcprototype>
|
jpayne@68
|
333 </funcsynopsis>
|
jpayne@68
|
334
|
jpayne@68
|
335 <para>If the extension is supported,
|
jpayne@68
|
336 <xref linkend='XTestFakeMotionEvent' xrefstyle='select: title'/>
|
jpayne@68
|
337 requests the server to simulate a movement of the pointer to the specified
|
jpayne@68
|
338 position (x, y) on the root window of screen_number; otherwise, the request
|
jpayne@68
|
339 is ignored. If screen_number is -1, the current screen (that the pointer
|
jpayne@68
|
340 is on) is used.
|
jpayne@68
|
341 </para>
|
jpayne@68
|
342
|
jpayne@68
|
343 <para>
|
jpayne@68
|
344 If the extension is supported, the simulated event will not be processed
|
jpayne@68
|
345 until delay milliseconds after the request is received (if delay is
|
jpayne@68
|
346 <function>CurrentTime</function>
|
jpayne@68
|
347 then this is interpreted as no delay at all). No other requests from
|
jpayne@68
|
348 this client will be processed until this delay, if any, has expired
|
jpayne@68
|
349 and subsequent processing of the simulated event has been completed.
|
jpayne@68
|
350 </para>
|
jpayne@68
|
351
|
jpayne@68
|
352 <funcsynopsis id='XTestFakeRelativeMotionEvent'>
|
jpayne@68
|
353 <funcprototype>
|
jpayne@68
|
354 <funcdef><function>XTestFakeRelativeMotionEvent</function></funcdef>
|
jpayne@68
|
355 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
356 <paramdef>int<parameter> screen_number</parameter></paramdef>
|
jpayne@68
|
357 <paramdef>int<parameter> x</parameter></paramdef>
|
jpayne@68
|
358 <paramdef>int<parameter> y</parameter></paramdef>
|
jpayne@68
|
359 <paramdef>unsigned long<parameter> delay</parameter></paramdef>
|
jpayne@68
|
360 </funcprototype>
|
jpayne@68
|
361 </funcsynopsis>
|
jpayne@68
|
362
|
jpayne@68
|
363 <para>
|
jpayne@68
|
364 If the extension is supported,
|
jpayne@68
|
365 <xref linkend='XTestFakeRelativeMotionEvent' xrefstyle='select: title'/>
|
jpayne@68
|
366 requests the server to simulate a movement of the pointer by the specified
|
jpayne@68
|
367 offsets (x, y) relative to the current pointer position on screen_number;
|
jpayne@68
|
368 otherwise, the request is ignored. If screen_number is -1, the
|
jpayne@68
|
369 current screen (that the pointer is on) is used.
|
jpayne@68
|
370 </para>
|
jpayne@68
|
371
|
jpayne@68
|
372 <para>
|
jpayne@68
|
373 If the extension is supported, the simulated event will not be processed
|
jpayne@68
|
374 until delay milliseconds after the request is received (if delay is
|
jpayne@68
|
375 <function>CurrentTime</function>
|
jpayne@68
|
376 then this is interpreted as no delay at all). No other requests from
|
jpayne@68
|
377 this client will be processed until this delay, if any, has expired
|
jpayne@68
|
378 and subsequent processing of the simulated event has been completed.
|
jpayne@68
|
379 </para>
|
jpayne@68
|
380
|
jpayne@68
|
381 <funcsynopsis id='XTestGrabControl'>
|
jpayne@68
|
382 <funcprototype>
|
jpayne@68
|
383 <funcdef><function>XTestGrabControl</function></funcdef>
|
jpayne@68
|
384 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
385 <paramdef>Bool<parameter> impervious</parameter></paramdef>
|
jpayne@68
|
386 </funcprototype>
|
jpayne@68
|
387 </funcsynopsis>
|
jpayne@68
|
388
|
jpayne@68
|
389 <para>If impervious is
|
jpayne@68
|
390 <function>True</function>
|
jpayne@68
|
391 then the executing client becomes impervious to server grabs. If impervious is
|
jpayne@68
|
392 <function>False</function>
|
jpayne@68
|
393 then the executing client returns to the normal state of being susceptible
|
jpayne@68
|
394 to server grabs.
|
jpayne@68
|
395 </para>
|
jpayne@68
|
396
|
jpayne@68
|
397 <funcsynopsis id='XTestSetGContextOfGC'>
|
jpayne@68
|
398 <funcprototype>
|
jpayne@68
|
399 <funcdef>Bool<function> XTestSetGContextOfGC</function></funcdef>
|
jpayne@68
|
400 <paramdef>GC<parameter> gc</parameter></paramdef>
|
jpayne@68
|
401 <paramdef>GContext<parameter> gid</parameter></paramdef>
|
jpayne@68
|
402 </funcprototype>
|
jpayne@68
|
403 </funcsynopsis>
|
jpayne@68
|
404
|
jpayne@68
|
405 <para>
|
jpayne@68
|
406 <xref linkend='XTestSetGContextOfGC' xrefstyle='select: title'/>
|
jpayne@68
|
407 sets the GContext within the opaque datatype referenced by gc to
|
jpayne@68
|
408 be that specified by gid.
|
jpayne@68
|
409 </para>
|
jpayne@68
|
410
|
jpayne@68
|
411 <funcsynopsis id='XTestSetVisualIDOfVisual'>
|
jpayne@68
|
412 <funcprototype>
|
jpayne@68
|
413 <funcdef><function>XTestSetVisualIDOfVisual</function></funcdef>
|
jpayne@68
|
414 <paramdef>Visual<parameter> *visual</parameter></paramdef>
|
jpayne@68
|
415 <paramdef>VisualID<parameter> visualid</parameter></paramdef>
|
jpayne@68
|
416 </funcprototype>
|
jpayne@68
|
417 </funcsynopsis>
|
jpayne@68
|
418
|
jpayne@68
|
419 <para>
|
jpayne@68
|
420 <xref linkend='XTestSetVisualIDOfVisual' xrefstyle='select: title'/>
|
jpayne@68
|
421 sets the VisualID within the opaque datatype referenced by visual to
|
jpayne@68
|
422 be that specified by visualid.
|
jpayne@68
|
423 </para>
|
jpayne@68
|
424
|
jpayne@68
|
425 <funcsynopsis id='XTestDiscard'>
|
jpayne@68
|
426 <funcprototype>
|
jpayne@68
|
427 <funcdef>Bool<function> XTestDiscard</function></funcdef>
|
jpayne@68
|
428 <paramdef>Display<parameter> *display</parameter></paramdef>
|
jpayne@68
|
429 </funcprototype>
|
jpayne@68
|
430 </funcsynopsis>
|
jpayne@68
|
431
|
jpayne@68
|
432 <para>
|
jpayne@68
|
433 <xref linkend='XTestDiscard' xrefstyle='select: title'/>
|
jpayne@68
|
434 discards any requests within the output buffer for the specified display.
|
jpayne@68
|
435 It returns
|
jpayne@68
|
436 <function>True</function>
|
jpayne@68
|
437 if any requests were discarded; otherwise, it returns
|
jpayne@68
|
438 <function>False</function>
|
jpayne@68
|
439 </para>
|
jpayne@68
|
440 </chapter>
|
jpayne@68
|
441
|
jpayne@68
|
442 <chapter id='References'>
|
jpayne@68
|
443 <title>References</title>
|
jpayne@68
|
444
|
jpayne@68
|
445 <para>
|
jpayne@68
|
446 Annicchiarico, D., et al., <emphasis remap='I'>XTrap: The XTrap
|
jpayne@68
|
447 Architecture</emphasis>.
|
jpayne@68
|
448 Digital Equipment Corporation, July 1991.
|
jpayne@68
|
449 </para>
|
jpayne@68
|
450
|
jpayne@68
|
451 <para>
|
jpayne@68
|
452 Drake, K. J., <emphasis remap='I'>Some Proposals for a Minimum X11
|
jpayne@68
|
453 Testing Extension</emphasis>.
|
jpayne@68
|
454 UniSoft Ltd., June 1991.
|
jpayne@68
|
455 </para>
|
jpayne@68
|
456
|
jpayne@68
|
457 </chapter>
|
jpayne@68
|
458 </book>
|