1 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
3 .\" Permission is hereby granted, free of charge, to any person obtaining
4 .\" a copy of this software and associated documentation files (the
5 .\" "Software"), to deal in the Software without restriction, including
6 .\" without limitation the rights to use, copy, modify, merge, publish,
7 .\" distribute, sublicense, and/or sell copies of the Software, and to
8 .\" permit persons to whom the Software is furnished to do so, subject to
9 .\" the following conditions:
11 .\" The above copyright notice and this permission notice shall be included
12 .\" in all copies or substantial portions of the Software.
14 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 .\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 .\" OTHER DEALINGS IN THE SOFTWARE.
22 .\" Except as contained in this notice, the name of the X Consortium shall
23 .\" not be used in advertising or otherwise to promote the sale, use or
24 .\" other dealings in this Software without prior written authorization
25 .\" from the X Consortium.
27 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
28 .\" Digital Equipment Corporation
30 .\" Portions Copyright \(co 1990, 1991 by
33 .\" Permission to use, copy, modify and distribute this documentation for
34 .\" any purpose and without fee is hereby granted, provided that the above
35 .\" copyright notice appears in all copies and that both that copyright notice
36 .\" and this permission notice appear in all copies, and that the names of
37 .\" Digital and Tektronix not be used in in advertising or publicity pertaining
38 .\" to this documentation without specific, written prior permission.
39 .\" Digital and Tektronix makes no representations about the suitability
40 .\" of this documentation for any purpose.
41 .\" It is provided ``as is'' without express or implied warranty.
44 .ds xT X Toolkit Intrinsics \- C Language Interface
45 .ds xW Athena X Widgets \- C Language X Toolkit Interface
46 .ds xL Xlib \- C Language X Interface
47 .ds xC Inter-Client Communication Conventions Manual
54 .\".if \\n(VS>=40 .vs \\n(VSu
55 .\".if \\n(VS<=39 .vs \\n(VSp
78 .de IN \" send an index entry to the stderr
85 .\" choose appropriate monospace font
86 .\" the imagen conditional, 480,
87 .\" may be changed to L if LB is too
88 .\" heavy for your eyes...
90 .ie "\\*(.T"480" .ft L
91 .el .ie "\\*(.T"300" .ft L
92 .el .ie "\\*(.T"202" .ft PO
93 .el .ie "\\*(.T"aps" .ft CW
96 .ie \\n(VS>40 .vs \\n(VSu
104 .ie t \\$1\fB\^\\$2\^\fR\\$3
105 .el \\$1\fI\^\\$2\^\fP\\$3
108 .ie t \fB\^\\$1\^\fR\\$2
109 .el \fI\^\\$1\^\fP\\$2
112 .ie t <\fB\\$1\fR>\\$2
118 .if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
119 .if \\n(.$ .if !'\\$1'C' .ds NO \\$1
133 . \" Note End -- doug kraft 3/85
142 .TH XIfEvent __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
144 XIfEvent, XCheckIfEvent, XPeekIfEvent \- check the event queue with a predicate procedure
147 int XIfEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^, Bool
148 (\^*\fIpredicate\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
150 Bool XCheckIfEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^,
151 Bool (\^*\fIpredicate\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
153 int XPeekIfEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^,
154 Bool (\^*\fIpredicate\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
157 Specifies the user-supplied argument that will be passed to the predicate procedure.
159 Specifies the connection to the X server.
160 .ds Ev \ either a copy of or
161 .IP \fIevent_return\fP 1i
162 Returns\*(Ev the matched event's associated structure.
163 .IP \fIpredicate\fP 1i
164 Specifies the procedure that is to be called to determine
165 if the next event in the queue matches what you want.
169 function completes only when the specified predicate
173 which indicates an event in the queue matches.
175 flushes the output buffer if it blocks waiting for additional events.
177 removes the matching event from the queue
178 and copies the structure into the client-supplied
182 When the predicate procedure finds a match,
184 copies the matched event into the client-supplied
186 structure and returns
188 (This event is removed from the queue.)
189 If the predicate procedure finds no match,
193 and the output buffer will have been flushed.
194 All earlier events stored in the queue are not discarded.
198 function returns only when the specified predicate
202 After the predicate procedure finds a match,
204 copies the matched event into the client-supplied
206 structure without removing the event from the queue.
208 flushes the output buffer if it blocks waiting for additional events.
210 Each of these functions requires you to pass a predicate procedure that
211 determines if an event matches what you want.
212 Your predicate procedure must decide if the event is useful
213 without calling any Xlib functions.
214 If the predicate directly or indirectly causes the state of the event queue
215 to change, the result is not defined.
216 If Xlib has been initialized for threads, the predicate is called with
217 the display locked and the result of a call by the predicate to any
218 Xlib function that locks the display is not defined unless the caller
222 The predicate procedure and its associated arguments are:
224 Bool (\^*\fIpredicate\fP\^)\^(\^Display *\fIdisplay\fP, XEvent *\fIevent\fP, XPointer \fIarg\fP\^)
226 Specifies the connection to the X server.
232 Specifies the argument passed in from the
239 The predicate procedure is called once for each
240 event in the queue until it finds a match.
241 After finding a match, the predicate procedure must return
243 If it did not find a match, it must return
246 XAnyEvent(__libmansuffix__),
247 XNextEvent(__libmansuffix__),
248 XPutBackEvent(__libmansuffix__)
249 XSendEvent(__libmansuffix__)