Initialize Tizen 2.3
[framework/uifw/xorg/lib/libx11.git] / man / XSendEvent.man
1 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
2 .\"
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:
10 .\"
11 .\" The above copyright notice and this permission notice shall be included
12 .\" in all copies or substantial portions of the Software.
13 .\"
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.
21 .\"
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.
26 .\"
27 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
28 .\" Digital Equipment Corporation
29 .\"
30 .\" Portions Copyright \(co 1990, 1991 by
31 .\" Tektronix, Inc.
32 .\"
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.
42 .\" 
43 .\"
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
48 .na
49 .de Ds
50 .nf
51 .\\$1D \\$2 \\$1
52 .ft 1
53 .\".ps \\n(PS
54 .\".if \\n(VS>=40 .vs \\n(VSu
55 .\".if \\n(VS<=39 .vs \\n(VSp
56 ..
57 .de De
58 .ce 0
59 .if \\n(BD .DF
60 .nr BD 0
61 .in \\n(OIu
62 .if \\n(TM .ls 2
63 .sp \\n(DDu
64 .fi
65 ..
66 .de FD
67 .LP
68 .KS
69 .TA .5i 3i
70 .ta .5i 3i
71 .nf
72 ..
73 .de FN
74 .fi
75 .KE
76 .LP
77 ..
78 .de IN          \" send an index entry to the stderr
79 ..
80 .de C{
81 .KS
82 .nf
83 .D
84 .\"
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...
89 .\"
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
94 .el .ft R
95 .ps \\n(PS
96 .ie \\n(VS>40 .vs \\n(VSu
97 .el .vs \\n(VSp
98 ..
99 .de C}
100 .DE
101 .R
102 ..
103 .de Pn
104 .ie t \\$1\fB\^\\$2\^\fR\\$3
105 .el \\$1\fI\^\\$2\^\fP\\$3
106 ..
107 .de ZN
108 .ie t \fB\^\\$1\^\fR\\$2
109 .el \fI\^\\$1\^\fP\\$2
110 ..
111 .de hN
112 .ie t <\fB\\$1\fR>\\$2
113 .el <\fI\\$1\fP>\\$2
114 ..
115 .de NT
116 .ne 7
117 .ds NO Note
118 .if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
119 .if \\n(.$ .if !'\\$1'C' .ds NO \\$1
120 .ie n .sp
121 .el .sp 10p
122 .TB
123 .ce
124 \\*(NO
125 .ie n .sp
126 .el .sp 5p
127 .if '\\$1'C' .ce 99
128 .if '\\$2'C' .ce 99
129 .in +5n
130 .ll -5n
131 .R
132 ..
133 .               \" Note End -- doug kraft 3/85
134 .de NE
135 .ce 0
136 .in -5n
137 .ll +5n
138 .ie n .sp
139 .el .sp 10p
140 ..
141 .ny0
142 .TH XSendEvent __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
143 .SH NAME
144 XSendEvent, XDisplayMotionBufferSize, XGetMotionEvents, XTimeCoord \- send events and pointer motion history structure
145 .SH SYNTAX
146 .HP
147 Status XSendEvent\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Bool
148 \fIpropagate\fP\^, long \fIevent_mask\fP\^, XEvent *\fIevent_send\fP\^); 
149 .HP
150 unsigned long XDisplayMotionBufferSize\^(\^Display *\fIdisplay\fP\^); 
151 .HP
152 XTimeCoord *XGetMotionEvents\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
153 Time \fIstart\fP\^, Time \fIstop\fP\^, int *\fInevents_return\fP\^); 
154 .SH ARGUMENTS
155 .IP \fIdisplay\fP 1i
156 Specifies the connection to the X server.
157 .IP \fIevent_mask\fP 1i
158 Specifies the event mask.
159 .IP \fIevent_send\fP 1i
160 Specifies the event that is to be sent.
161 .IP \fInevents_return\fP 1i
162 Returns the number of events from the motion history buffer.
163 .IP \fIpropagate\fP 1i
164 Specifies a Boolean value.
165 .IP \fIstart\fP 1i
166 .br
167 .ns
168 .IP \fIstop\fP 1i
169 Specify the time interval in which the events are returned from the motion
170 history buffer.
171 You can pass a timestamp or
172 .ZN CurrentTime .
173 .ds Wi the window the event is to be sent to,
174 .ZN PointerWindow ,
175 or
176 .ZN InputFocus .
177 .IP \fIw\fP 1i
178 Specifies the window \*(Wi.
179 .SH DESCRIPTION
180 The
181 .ZN XSendEvent
182 function identifies the destination window, 
183 determines which clients should receive the specified events, 
184 and ignores any active grabs.
185 This function requires you to pass an event mask.
186 For a discussion of the valid event mask names,
187 see section 10.3.
188 This function uses the w argument to identify the destination window as follows:
189 .IP \(bu 5
190 If w is
191 .ZN PointerWindow ,
192 the destination window is the window that contains the pointer.
193 .IP \(bu 5
194 If w is
195 .ZN InputFocus 
196 and if the focus window contains the pointer, 
197 the destination window is the window that contains the pointer; 
198 otherwise, the destination window is the focus window.
199 .LP
200 To determine which clients should receive the specified events,
201 .ZN XSendEvent
202 uses the propagate argument as follows:
203 .IP \(bu 5
204 If event_mask is the empty set,
205 the event is sent to the client that created the destination window.
206 If that client no longer exists,
207 no event is sent.
208 .IP \(bu 5
209 If propagate is 
210 .ZN False ,
211 the event is sent to every client selecting on destination any of the event
212 types in the event_mask argument.
213 .IP \(bu 5
214 If propagate is 
215 .ZN True 
216 and no clients have selected on destination any of
217 the event types in event-mask, the destination is replaced with the
218 closest ancestor of destination for which some client has selected a
219 type in event-mask and for which no intervening window has that type in its
220 do-not-propagate-mask. 
221 If no such window exists or if the window is
222 an ancestor of the focus window and 
223 .ZN InputFocus 
224 was originally specified
225 as the destination, the event is not sent to any clients.
226 Otherwise, the event is reported to every client selecting on the final
227 destination any of the types specified in event_mask.
228 .LP
229 The event in the
230 .ZN XEvent
231 structure must be one of the core events or one of the events
232 defined by an extension (or a 
233 .ZN BadValue
234 error results) so that the X server can correctly byte-swap 
235 the contents as necessary.  
236 The contents of the event are
237 otherwise unaltered and unchecked by the X server except to force send_event to
238 .ZN True
239 in the forwarded event and to set the serial number in the event correctly;
240 therefore these fields
241 and the display field are ignored by
242 .ZN XSendEvent .
243 .LP
244 .ZN XSendEvent
245 returns zero if the conversion to wire protocol format failed
246 and returns nonzero otherwise.
247 .ZN XSendEvent
248 can generate
249 .ZN BadValue 
250 and
251 .ZN BadWindow 
252 errors.
253 .LP
254 The server may retain the recent history of the pointer motion
255 and do so to a finer granularity than is reported by
256 .ZN MotionNotify
257 events.
258 The
259 .ZN XGetMotionEvents
260 function makes this history available.
261 .LP
262 The
263 .ZN XGetMotionEvents
264 function returns all events in the motion history buffer that fall between the
265 specified start and stop times, inclusive, and that have coordinates
266 that lie within the specified window (including its borders) at its present
267 placement.
268 If the server does not support motion history, 
269 if the start time is later than the stop time,
270 or if the start time is in the future, 
271 no events are returned;
272 .ZN XGetMotionEvents
273 returns NULL.
274 If the stop time is in the future, it is equivalent to specifying
275 .ZN CurrentTime .
276 .ZN XGetMotionEvents
277 can generate a
278 .ZN BadWindow 
279 error.
280 .SH STRUCTURES
281 The
282 .ZN XTimeCoord
283 structure contains:
284 .LP
285 .Ds 0
286 .TA .5i
287 .ta .5i
288 typedef struct {
289         Time time;
290         short x, y;
291 } XTimeCoord;
292 .De
293 .LP
294 The time member is set to the time, in milliseconds. 
295 The x and y members are set to the coordinates of the pointer and
296 are reported relative to the origin
297 of the specified window.
298 .SH DIAGNOSTICS
299 .TP 1i
300 .ZN BadValue
301 Some numeric value falls outside the range of values accepted by the request.
302 Unless a specific range is specified for an argument, the full range defined
303 by the argument's type is accepted.  Any argument defined as a set of
304 alternatives can generate this error.
305 .TP 1i
306 .ZN BadWindow
307 A value for a Window argument does not name a defined Window.
308 .SH "SEE ALSO"
309 XAnyEvent(__libmansuffix__),
310 XIfEvent(__libmansuffix__),
311 XNextEvent(__libmansuffix__),
312 XPutBackEvent(__libmansuffix__)
313 .br
314 \fI\*(xL\fP