1 | /* $Xorg: XInput.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $ */
|
---|
2 |
|
---|
3 | /************************************************************
|
---|
4 |
|
---|
5 | Copyright 1989, 1998 The Open Group
|
---|
6 |
|
---|
7 | Permission to use, copy, modify, distribute, and sell this software and its
|
---|
8 | documentation for any purpose is hereby granted without fee, provided that
|
---|
9 | the above copyright notice appear in all copies and that both that
|
---|
10 | copyright notice and this permission notice appear in supporting
|
---|
11 | documentation.
|
---|
12 |
|
---|
13 | The above copyright notice and this permission notice shall be included in
|
---|
14 | all copies or substantial portions of the Software.
|
---|
15 |
|
---|
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
---|
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
---|
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
---|
19 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
---|
20 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
---|
21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
---|
22 |
|
---|
23 | Except as contained in this notice, the name of The Open Group shall not be
|
---|
24 | used in advertising or otherwise to promote the sale, use or other dealings
|
---|
25 | in this Software without prior written authorization from The Open Group.
|
---|
26 |
|
---|
27 | Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
|
---|
28 |
|
---|
29 | All Rights Reserved
|
---|
30 |
|
---|
31 | Permission to use, copy, modify, and distribute this software and its
|
---|
32 | documentation for any purpose and without fee is hereby granted,
|
---|
33 | provided that the above copyright notice appear in all copies and that
|
---|
34 | both that copyright notice and this permission notice appear in
|
---|
35 | supporting documentation, and that the name of Hewlett-Packard not be
|
---|
36 | used in advertising or publicity pertaining to distribution of the
|
---|
37 | software without specific, written prior permission.
|
---|
38 |
|
---|
39 | HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
---|
40 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
---|
41 | HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
---|
42 | ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
---|
43 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
---|
44 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
---|
45 | SOFTWARE.
|
---|
46 |
|
---|
47 | ********************************************************/
|
---|
48 | /* $XFree86: xc/include/extensions/XInput.h,v 1.3 2001/12/14 19:53:28 dawes Exp $ */
|
---|
49 |
|
---|
50 | /* Definitions used by the library and client */
|
---|
51 |
|
---|
52 | #ifndef _XINPUT_H_
|
---|
53 | #define _XINPUT_H_
|
---|
54 |
|
---|
55 | #include <X11/Xlib.h>
|
---|
56 | #include <X11/extensions/XI.h>
|
---|
57 |
|
---|
58 | #define _deviceKeyPress 0
|
---|
59 | #define _deviceKeyRelease 1
|
---|
60 |
|
---|
61 | #define _deviceButtonPress 0
|
---|
62 | #define _deviceButtonRelease 1
|
---|
63 |
|
---|
64 | #define _deviceMotionNotify 0
|
---|
65 |
|
---|
66 | #define _deviceFocusIn 0
|
---|
67 | #define _deviceFocusOut 1
|
---|
68 |
|
---|
69 | #define _proximityIn 0
|
---|
70 | #define _proximityOut 1
|
---|
71 |
|
---|
72 | #define _deviceStateNotify 0
|
---|
73 | #define _deviceMappingNotify 1
|
---|
74 | #define _changeDeviceNotify 2
|
---|
75 |
|
---|
76 | #define FindTypeAndClass(d,type,_class,classid,offset) \
|
---|
77 | { int _i; XInputClassInfo *_ip; \
|
---|
78 | type = 0; _class = 0; \
|
---|
79 | for (_i=0, _ip= ((XDevice *) d)->classes; \
|
---|
80 | _i< ((XDevice *) d)->num_classes; \
|
---|
81 | _i++, _ip++) \
|
---|
82 | if (_ip->input_class == classid) \
|
---|
83 | {type = _ip->event_type_base + offset; \
|
---|
84 | _class = ((XDevice *) d)->device_id << 8 | type;}}
|
---|
85 |
|
---|
86 | #define DeviceKeyPress(d,type,_class) \
|
---|
87 | FindTypeAndClass(d, type, _class, KeyClass, _deviceKeyPress)
|
---|
88 |
|
---|
89 | #define DeviceKeyRelease(d,type,_class) \
|
---|
90 | FindTypeAndClass(d, type, _class, KeyClass, _deviceKeyRelease)
|
---|
91 |
|
---|
92 | #define DeviceButtonPress(d,type,_class) \
|
---|
93 | FindTypeAndClass(d, type, _class, ButtonClass, _deviceButtonPress)
|
---|
94 |
|
---|
95 | #define DeviceButtonRelease(d,type,_class) \
|
---|
96 | FindTypeAndClass(d, type, _class, ButtonClass, _deviceButtonRelease)
|
---|
97 |
|
---|
98 | #define DeviceMotionNotify(d,type,_class) \
|
---|
99 | FindTypeAndClass(d, type, _class, ValuatorClass, _deviceMotionNotify)
|
---|
100 |
|
---|
101 | #define DeviceFocusIn(d,type,_class) \
|
---|
102 | FindTypeAndClass(d, type, _class, FocusClass, _deviceFocusIn)
|
---|
103 |
|
---|
104 | #define DeviceFocusOut(d,type,_class) \
|
---|
105 | FindTypeAndClass(d, type, _class, FocusClass, _deviceFocusOut)
|
---|
106 |
|
---|
107 | #define ProximityIn(d,type,_class) \
|
---|
108 | FindTypeAndClass(d, type, _class, ProximityClass, _proximityIn)
|
---|
109 |
|
---|
110 | #define ProximityOut(d,type,_class) \
|
---|
111 | FindTypeAndClass(d, type, _class, ProximityClass, _proximityOut)
|
---|
112 |
|
---|
113 | #define DeviceStateNotify(d,type,_class) \
|
---|
114 | FindTypeAndClass(d, type, _class, OtherClass, _deviceStateNotify)
|
---|
115 |
|
---|
116 | #define DeviceMappingNotify(d,type,_class) \
|
---|
117 | FindTypeAndClass(d, type, _class, OtherClass, _deviceMappingNotify)
|
---|
118 |
|
---|
119 | #define ChangeDeviceNotify(d,type,_class) \
|
---|
120 | FindTypeAndClass(d, type, _class, OtherClass, _changeDeviceNotify)
|
---|
121 |
|
---|
122 | #define DevicePointerMotionHint(d,type,_class) \
|
---|
123 | { _class = ((XDevice *) d)->device_id << 8 | _devicePointerMotionHint;}
|
---|
124 |
|
---|
125 | #define DeviceButton1Motion(d,type,_class) \
|
---|
126 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButton1Motion;}
|
---|
127 |
|
---|
128 | #define DeviceButton2Motion(d,type,_class) \
|
---|
129 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButton2Motion;}
|
---|
130 |
|
---|
131 | #define DeviceButton3Motion(d,type,_class) \
|
---|
132 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButton3Motion;}
|
---|
133 |
|
---|
134 | #define DeviceButton4Motion(d,type, _class) \
|
---|
135 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButton4Motion;}
|
---|
136 |
|
---|
137 | #define DeviceButton5Motion(d,type,_class) \
|
---|
138 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButton5Motion;}
|
---|
139 |
|
---|
140 | #define DeviceButtonMotion(d,type, _class) \
|
---|
141 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButtonMotion;}
|
---|
142 |
|
---|
143 | #define DeviceOwnerGrabButton(d,type,_class) \
|
---|
144 | { _class = ((XDevice *) d)->device_id << 8 | _deviceOwnerGrabButton;}
|
---|
145 |
|
---|
146 | #define DeviceButtonPressGrab(d,type,_class) \
|
---|
147 | { _class = ((XDevice *) d)->device_id << 8 | _deviceButtonGrab;}
|
---|
148 |
|
---|
149 | #define NoExtensionEvent(d,type,_class) \
|
---|
150 | { _class = ((XDevice *) d)->device_id << 8 | _noExtensionEvent;}
|
---|
151 |
|
---|
152 | #define DevicePresence(dpy, type, _class) \
|
---|
153 | { \
|
---|
154 | extern int _XiGetDevicePresenceNotifyEvent(Display *); \
|
---|
155 | type = _XiGetDevicePresenceNotifyEvent(dpy); \
|
---|
156 | _class = (0x10000 | _devicePresence); \
|
---|
157 | }
|
---|
158 |
|
---|
159 | #define BadDevice(dpy,error) _xibaddevice(dpy, &error)
|
---|
160 |
|
---|
161 | #define BadClass(dpy,error) _xibadclass(dpy, &error)
|
---|
162 |
|
---|
163 | #define BadEvent(dpy,error) _xibadevent(dpy, &error)
|
---|
164 |
|
---|
165 | #define BadMode(dpy,error) _xibadmode(dpy, &error)
|
---|
166 |
|
---|
167 | #define DeviceBusy(dpy,error) _xidevicebusy(dpy, &error)
|
---|
168 |
|
---|
169 | /***************************************************************
|
---|
170 | *
|
---|
171 | * DeviceKey events. These events are sent by input devices that
|
---|
172 | * support input class Keys.
|
---|
173 | * The location of the X pointer is reported in the coordinate
|
---|
174 | * fields of the x,y and x_root,y_root fields.
|
---|
175 | *
|
---|
176 | */
|
---|
177 |
|
---|
178 | typedef struct
|
---|
179 | {
|
---|
180 | int type; /* of event */
|
---|
181 | unsigned long serial; /* # of last request processed */
|
---|
182 | Bool send_event; /* true if from SendEvent request */
|
---|
183 | Display *display; /* Display the event was read from */
|
---|
184 | Window window; /* "event" window reported relative to */
|
---|
185 | XID deviceid;
|
---|
186 | Window root; /* root window event occured on */
|
---|
187 | Window subwindow; /* child window */
|
---|
188 | Time time; /* milliseconds */
|
---|
189 | int x, y; /* x, y coordinates in event window */
|
---|
190 | int x_root; /* coordinates relative to root */
|
---|
191 | int y_root; /* coordinates relative to root */
|
---|
192 | unsigned int state; /* key or button mask */
|
---|
193 | unsigned int keycode; /* detail */
|
---|
194 | Bool same_screen; /* same screen flag */
|
---|
195 | unsigned int device_state; /* device key or button mask */
|
---|
196 | unsigned char axes_count;
|
---|
197 | unsigned char first_axis;
|
---|
198 | int axis_data[6];
|
---|
199 | } XDeviceKeyEvent;
|
---|
200 |
|
---|
201 | typedef XDeviceKeyEvent XDeviceKeyPressedEvent;
|
---|
202 | typedef XDeviceKeyEvent XDeviceKeyReleasedEvent;
|
---|
203 |
|
---|
204 | /*******************************************************************
|
---|
205 | *
|
---|
206 | * DeviceButton events. These events are sent by extension devices
|
---|
207 | * that support input class Buttons.
|
---|
208 | *
|
---|
209 | */
|
---|
210 |
|
---|
211 | typedef struct {
|
---|
212 | int type; /* of event */
|
---|
213 | unsigned long serial; /* # of last request processed by server */
|
---|
214 | Bool send_event; /* true if from a SendEvent request */
|
---|
215 | Display *display; /* Display the event was read from */
|
---|
216 | Window window; /* "event" window reported relative to */
|
---|
217 | XID deviceid;
|
---|
218 | Window root; /* root window that the event occured on */
|
---|
219 | Window subwindow; /* child window */
|
---|
220 | Time time; /* milliseconds */
|
---|
221 | int x, y; /* x, y coordinates in event window */
|
---|
222 | int x_root; /* coordinates relative to root */
|
---|
223 | int y_root; /* coordinates relative to root */
|
---|
224 | unsigned int state; /* key or button mask */
|
---|
225 | unsigned int button; /* detail */
|
---|
226 | Bool same_screen; /* same screen flag */
|
---|
227 | unsigned int device_state; /* device key or button mask */
|
---|
228 | unsigned char axes_count;
|
---|
229 | unsigned char first_axis;
|
---|
230 | int axis_data[6];
|
---|
231 | } XDeviceButtonEvent;
|
---|
232 |
|
---|
233 | typedef XDeviceButtonEvent XDeviceButtonPressedEvent;
|
---|
234 | typedef XDeviceButtonEvent XDeviceButtonReleasedEvent;
|
---|
235 |
|
---|
236 | /*******************************************************************
|
---|
237 | *
|
---|
238 | * DeviceMotionNotify event. These events are sent by extension devices
|
---|
239 | * that support input class Valuators.
|
---|
240 | *
|
---|
241 | */
|
---|
242 |
|
---|
243 | typedef struct
|
---|
244 | {
|
---|
245 | int type; /* of event */
|
---|
246 | unsigned long serial; /* # of last request processed by server */
|
---|
247 | Bool send_event; /* true if from a SendEvent request */
|
---|
248 | Display *display; /* Display the event was read from */
|
---|
249 | Window window; /* "event" window reported relative to */
|
---|
250 | XID deviceid;
|
---|
251 | Window root; /* root window that the event occured on */
|
---|
252 | Window subwindow; /* child window */
|
---|
253 | Time time; /* milliseconds */
|
---|
254 | int x, y; /* x, y coordinates in event window */
|
---|
255 | int x_root; /* coordinates relative to root */
|
---|
256 | int y_root; /* coordinates relative to root */
|
---|
257 | unsigned int state; /* key or button mask */
|
---|
258 | char is_hint; /* detail */
|
---|
259 | Bool same_screen; /* same screen flag */
|
---|
260 | unsigned int device_state; /* device key or button mask */
|
---|
261 | unsigned char axes_count;
|
---|
262 | unsigned char first_axis;
|
---|
263 | int axis_data[6];
|
---|
264 | } XDeviceMotionEvent;
|
---|
265 |
|
---|
266 | /*******************************************************************
|
---|
267 | *
|
---|
268 | * DeviceFocusChange events. These events are sent when the focus
|
---|
269 | * of an extension device that can be focused is changed.
|
---|
270 | *
|
---|
271 | */
|
---|
272 |
|
---|
273 | typedef struct
|
---|
274 | {
|
---|
275 | int type; /* of event */
|
---|
276 | unsigned long serial; /* # of last request processed by server */
|
---|
277 | Bool send_event; /* true if from a SendEvent request */
|
---|
278 | Display *display; /* Display the event was read from */
|
---|
279 | Window window; /* "event" window reported relative to */
|
---|
280 | XID deviceid;
|
---|
281 | int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
|
---|
282 | int detail;
|
---|
283 | /*
|
---|
284 | * NotifyAncestor, NotifyVirtual, NotifyInferior,
|
---|
285 | * NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer,
|
---|
286 | * NotifyPointerRoot, NotifyDetailNone
|
---|
287 | */
|
---|
288 | Time time;
|
---|
289 | } XDeviceFocusChangeEvent;
|
---|
290 |
|
---|
291 | typedef XDeviceFocusChangeEvent XDeviceFocusInEvent;
|
---|
292 | typedef XDeviceFocusChangeEvent XDeviceFocusOutEvent;
|
---|
293 |
|
---|
294 | /*******************************************************************
|
---|
295 | *
|
---|
296 | * ProximityNotify events. These events are sent by those absolute
|
---|
297 | * positioning devices that are capable of generating proximity information.
|
---|
298 | *
|
---|
299 | */
|
---|
300 |
|
---|
301 | typedef struct
|
---|
302 | {
|
---|
303 | int type; /* ProximityIn or ProximityOut */
|
---|
304 | unsigned long serial; /* # of last request processed by server */
|
---|
305 | Bool send_event; /* true if this came from a SendEvent request */
|
---|
306 | Display *display; /* Display the event was read from */
|
---|
307 | Window window;
|
---|
308 | XID deviceid;
|
---|
309 | Window root;
|
---|
310 | Window subwindow;
|
---|
311 | Time time;
|
---|
312 | int x, y;
|
---|
313 | int x_root, y_root;
|
---|
314 | unsigned int state;
|
---|
315 | Bool same_screen;
|
---|
316 | unsigned int device_state; /* device key or button mask */
|
---|
317 | unsigned char axes_count;
|
---|
318 | unsigned char first_axis;
|
---|
319 | int axis_data[6];
|
---|
320 | } XProximityNotifyEvent;
|
---|
321 | typedef XProximityNotifyEvent XProximityInEvent;
|
---|
322 | typedef XProximityNotifyEvent XProximityOutEvent;
|
---|
323 |
|
---|
324 | /*******************************************************************
|
---|
325 | *
|
---|
326 | * DeviceStateNotify events are generated on EnterWindow and FocusIn
|
---|
327 | * for those clients who have selected DeviceState.
|
---|
328 | *
|
---|
329 | */
|
---|
330 |
|
---|
331 | typedef struct
|
---|
332 | {
|
---|
333 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
334 | unsigned char c_class;
|
---|
335 | #else
|
---|
336 | unsigned char class;
|
---|
337 | #endif
|
---|
338 | unsigned char length;
|
---|
339 | } XInputClass;
|
---|
340 |
|
---|
341 | typedef struct {
|
---|
342 | int type;
|
---|
343 | unsigned long serial; /* # of last request processed by server */
|
---|
344 | Bool send_event; /* true if this came from a SendEvent request */
|
---|
345 | Display *display; /* Display the event was read from */
|
---|
346 | Window window;
|
---|
347 | XID deviceid;
|
---|
348 | Time time;
|
---|
349 | int num_classes;
|
---|
350 | char data[64];
|
---|
351 | } XDeviceStateNotifyEvent;
|
---|
352 |
|
---|
353 | typedef struct {
|
---|
354 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
355 | unsigned char c_class;
|
---|
356 | #else
|
---|
357 | unsigned char class;
|
---|
358 | #endif
|
---|
359 | unsigned char length;
|
---|
360 | unsigned char num_valuators;
|
---|
361 | unsigned char mode;
|
---|
362 | int valuators[6];
|
---|
363 | } XValuatorStatus;
|
---|
364 |
|
---|
365 | typedef struct {
|
---|
366 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
367 | unsigned char c_class;
|
---|
368 | #else
|
---|
369 | unsigned char class;
|
---|
370 | #endif
|
---|
371 | unsigned char length;
|
---|
372 | short num_keys;
|
---|
373 | char keys[32];
|
---|
374 | } XKeyStatus;
|
---|
375 |
|
---|
376 | typedef struct {
|
---|
377 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
378 | unsigned char c_class;
|
---|
379 | #else
|
---|
380 | unsigned char class;
|
---|
381 | #endif
|
---|
382 | unsigned char length;
|
---|
383 | short num_buttons;
|
---|
384 | char buttons[32];
|
---|
385 | } XButtonStatus;
|
---|
386 |
|
---|
387 | /*******************************************************************
|
---|
388 | *
|
---|
389 | * DeviceMappingNotify event. This event is sent when the key mapping,
|
---|
390 | * modifier mapping, or button mapping of an extension device is changed.
|
---|
391 | *
|
---|
392 | */
|
---|
393 |
|
---|
394 | typedef struct {
|
---|
395 | int type;
|
---|
396 | unsigned long serial; /* # of last request processed by server */
|
---|
397 | Bool send_event; /* true if this came from a SendEvent request */
|
---|
398 | Display *display; /* Display the event was read from */
|
---|
399 | Window window; /* unused */
|
---|
400 | XID deviceid;
|
---|
401 | Time time;
|
---|
402 | int request; /* one of MappingModifier, MappingKeyboard,
|
---|
403 | MappingPointer */
|
---|
404 | int first_keycode;/* first keycode */
|
---|
405 | int count; /* defines range of change w. first_keycode*/
|
---|
406 | } XDeviceMappingEvent;
|
---|
407 |
|
---|
408 | /*******************************************************************
|
---|
409 | *
|
---|
410 | * ChangeDeviceNotify event. This event is sent when an
|
---|
411 | * XChangeKeyboard or XChangePointer request is made.
|
---|
412 | *
|
---|
413 | */
|
---|
414 |
|
---|
415 | typedef struct {
|
---|
416 | int type;
|
---|
417 | unsigned long serial; /* # of last request processed by server */
|
---|
418 | Bool send_event; /* true if this came from a SendEvent request */
|
---|
419 | Display *display; /* Display the event was read from */
|
---|
420 | Window window; /* unused */
|
---|
421 | XID deviceid;
|
---|
422 | Time time;
|
---|
423 | int request; /* NewPointer or NewKeyboard */
|
---|
424 | } XChangeDeviceNotifyEvent;
|
---|
425 |
|
---|
426 | /*******************************************************************
|
---|
427 | *
|
---|
428 | * DevicePresenceNotify event. This event is sent when the list of
|
---|
429 | * input devices changes, in which case devchange will be false, and
|
---|
430 | * no information about the change will be contained in the event;
|
---|
431 | * the client should use XListInputDevices() to learn what has changed.
|
---|
432 | *
|
---|
433 | * If devchange is true, an attribute that the server believes is
|
---|
434 | * important has changed on a device, and the client should use
|
---|
435 | * XGetDeviceControl to examine the device. If control is non-zero,
|
---|
436 | * then that control has changed meaningfully.
|
---|
437 | */
|
---|
438 |
|
---|
439 | typedef struct {
|
---|
440 | int type;
|
---|
441 | unsigned long serial; /* # of last request processed by server */
|
---|
442 | Bool send_event; /* true if this came from a SendEvent request */
|
---|
443 | Display *display; /* Display the event was read from */
|
---|
444 | Window window; /* unused */
|
---|
445 | Time time;
|
---|
446 | Bool devchange;
|
---|
447 | XID deviceid;
|
---|
448 | XID control;
|
---|
449 | } XDevicePresenceNotifyEvent;
|
---|
450 |
|
---|
451 | /*******************************************************************
|
---|
452 | *
|
---|
453 | * Control structures for input devices that support input class
|
---|
454 | * Feedback. These are used by the XGetFeedbackControl and
|
---|
455 | * XChangeFeedbackControl functions.
|
---|
456 | *
|
---|
457 | */
|
---|
458 |
|
---|
459 | typedef struct {
|
---|
460 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
461 | XID c_class;
|
---|
462 | #else
|
---|
463 | XID class;
|
---|
464 | #endif
|
---|
465 | int length;
|
---|
466 | XID id;
|
---|
467 | } XFeedbackState;
|
---|
468 |
|
---|
469 | typedef struct {
|
---|
470 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
471 | XID c_class;
|
---|
472 | #else
|
---|
473 | XID class;
|
---|
474 | #endif
|
---|
475 | int length;
|
---|
476 | XID id;
|
---|
477 | int click;
|
---|
478 | int percent;
|
---|
479 | int pitch;
|
---|
480 | int duration;
|
---|
481 | int led_mask;
|
---|
482 | int global_auto_repeat;
|
---|
483 | char auto_repeats[32];
|
---|
484 | } XKbdFeedbackState;
|
---|
485 |
|
---|
486 | typedef struct {
|
---|
487 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
488 | XID c_class;
|
---|
489 | #else
|
---|
490 | XID class;
|
---|
491 | #endif
|
---|
492 | int length;
|
---|
493 | XID id;
|
---|
494 | int accelNum;
|
---|
495 | int accelDenom;
|
---|
496 | int threshold;
|
---|
497 | } XPtrFeedbackState;
|
---|
498 |
|
---|
499 | typedef struct {
|
---|
500 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
501 | XID c_class;
|
---|
502 | #else
|
---|
503 | XID class;
|
---|
504 | #endif
|
---|
505 | int length;
|
---|
506 | XID id;
|
---|
507 | int resolution;
|
---|
508 | int minVal;
|
---|
509 | int maxVal;
|
---|
510 | } XIntegerFeedbackState;
|
---|
511 |
|
---|
512 | typedef struct {
|
---|
513 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
514 | XID c_class;
|
---|
515 | #else
|
---|
516 | XID class;
|
---|
517 | #endif
|
---|
518 | int length;
|
---|
519 | XID id;
|
---|
520 | int max_symbols;
|
---|
521 | int num_syms_supported;
|
---|
522 | KeySym *syms_supported;
|
---|
523 | } XStringFeedbackState;
|
---|
524 |
|
---|
525 | typedef struct {
|
---|
526 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
527 | XID c_class;
|
---|
528 | #else
|
---|
529 | XID class;
|
---|
530 | #endif
|
---|
531 | int length;
|
---|
532 | XID id;
|
---|
533 | int percent;
|
---|
534 | int pitch;
|
---|
535 | int duration;
|
---|
536 | } XBellFeedbackState;
|
---|
537 |
|
---|
538 | typedef struct {
|
---|
539 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
540 | XID c_class;
|
---|
541 | #else
|
---|
542 | XID class;
|
---|
543 | #endif
|
---|
544 | int length;
|
---|
545 | XID id;
|
---|
546 | int led_values;
|
---|
547 | int led_mask;
|
---|
548 | } XLedFeedbackState;
|
---|
549 |
|
---|
550 | typedef struct {
|
---|
551 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
552 | XID c_class;
|
---|
553 | #else
|
---|
554 | XID class;
|
---|
555 | #endif
|
---|
556 | int length;
|
---|
557 | XID id;
|
---|
558 | } XFeedbackControl;
|
---|
559 |
|
---|
560 | typedef struct {
|
---|
561 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
562 | XID c_class;
|
---|
563 | #else
|
---|
564 | XID class;
|
---|
565 | #endif
|
---|
566 | int length;
|
---|
567 | XID id;
|
---|
568 | int accelNum;
|
---|
569 | int accelDenom;
|
---|
570 | int threshold;
|
---|
571 | } XPtrFeedbackControl;
|
---|
572 |
|
---|
573 | typedef struct {
|
---|
574 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
575 | XID c_class;
|
---|
576 | #else
|
---|
577 | XID class;
|
---|
578 | #endif
|
---|
579 | int length;
|
---|
580 | XID id;
|
---|
581 | int click;
|
---|
582 | int percent;
|
---|
583 | int pitch;
|
---|
584 | int duration;
|
---|
585 | int led_mask;
|
---|
586 | int led_value;
|
---|
587 | int key;
|
---|
588 | int auto_repeat_mode;
|
---|
589 | } XKbdFeedbackControl;
|
---|
590 |
|
---|
591 | typedef struct {
|
---|
592 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
593 | XID c_class;
|
---|
594 | #else
|
---|
595 | XID class;
|
---|
596 | #endif
|
---|
597 | int length;
|
---|
598 | XID id;
|
---|
599 | int num_keysyms;
|
---|
600 | KeySym *syms_to_display;
|
---|
601 | } XStringFeedbackControl;
|
---|
602 |
|
---|
603 | typedef struct {
|
---|
604 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
605 | XID c_class;
|
---|
606 | #else
|
---|
607 | XID class;
|
---|
608 | #endif
|
---|
609 | int length;
|
---|
610 | XID id;
|
---|
611 | int int_to_display;
|
---|
612 | } XIntegerFeedbackControl;
|
---|
613 |
|
---|
614 | typedef struct {
|
---|
615 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
616 | XID c_class;
|
---|
617 | #else
|
---|
618 | XID class;
|
---|
619 | #endif
|
---|
620 | int length;
|
---|
621 | XID id;
|
---|
622 | int percent;
|
---|
623 | int pitch;
|
---|
624 | int duration;
|
---|
625 | } XBellFeedbackControl;
|
---|
626 |
|
---|
627 | typedef struct {
|
---|
628 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
629 | XID c_class;
|
---|
630 | #else
|
---|
631 | XID class;
|
---|
632 | #endif
|
---|
633 | int length;
|
---|
634 | XID id;
|
---|
635 | int led_mask;
|
---|
636 | int led_values;
|
---|
637 | } XLedFeedbackControl;
|
---|
638 |
|
---|
639 | /*******************************************************************
|
---|
640 | *
|
---|
641 | * Device control structures.
|
---|
642 | *
|
---|
643 | */
|
---|
644 |
|
---|
645 | typedef struct {
|
---|
646 | XID control;
|
---|
647 | int length;
|
---|
648 | } XDeviceControl;
|
---|
649 |
|
---|
650 | typedef struct {
|
---|
651 | XID control;
|
---|
652 | int length;
|
---|
653 | int first_valuator;
|
---|
654 | int num_valuators;
|
---|
655 | int *resolutions;
|
---|
656 | } XDeviceResolutionControl;
|
---|
657 |
|
---|
658 | typedef struct {
|
---|
659 | XID control;
|
---|
660 | int length;
|
---|
661 | int num_valuators;
|
---|
662 | int *resolutions;
|
---|
663 | int *min_resolutions;
|
---|
664 | int *max_resolutions;
|
---|
665 | } XDeviceResolutionState;
|
---|
666 |
|
---|
667 | typedef struct {
|
---|
668 | XID control;
|
---|
669 | int length;
|
---|
670 | int min_x;
|
---|
671 | int max_x;
|
---|
672 | int min_y;
|
---|
673 | int max_y;
|
---|
674 | int flip_x;
|
---|
675 | int flip_y;
|
---|
676 | int rotation;
|
---|
677 | int button_threshold;
|
---|
678 | } XDeviceAbsCalibControl, XDeviceAbsCalibState;
|
---|
679 |
|
---|
680 | typedef struct {
|
---|
681 | XID control;
|
---|
682 | int length;
|
---|
683 | int offset_x;
|
---|
684 | int offset_y;
|
---|
685 | int width;
|
---|
686 | int height;
|
---|
687 | int screen;
|
---|
688 | XID following;
|
---|
689 | } XDeviceAbsAreaControl, XDeviceAbsAreaState;
|
---|
690 |
|
---|
691 | typedef struct {
|
---|
692 | XID control;
|
---|
693 | int length;
|
---|
694 | int status;
|
---|
695 | } XDeviceCoreControl;
|
---|
696 |
|
---|
697 | typedef struct {
|
---|
698 | XID control;
|
---|
699 | int length;
|
---|
700 | int status;
|
---|
701 | int iscore;
|
---|
702 | } XDeviceCoreState;
|
---|
703 |
|
---|
704 | typedef struct {
|
---|
705 | XID control;
|
---|
706 | int length;
|
---|
707 | int enable;
|
---|
708 | } XDeviceEnableControl, XDeviceEnableState;
|
---|
709 |
|
---|
710 | /*******************************************************************
|
---|
711 | *
|
---|
712 | * An array of XDeviceList structures is returned by the
|
---|
713 | * XListInputDevices function. Each entry contains information
|
---|
714 | * about one input device. Among that information is an array of
|
---|
715 | * pointers to structures that describe the characteristics of
|
---|
716 | * the input device.
|
---|
717 | *
|
---|
718 | */
|
---|
719 |
|
---|
720 | typedef struct _XAnyClassinfo *XAnyClassPtr;
|
---|
721 |
|
---|
722 | typedef struct _XAnyClassinfo {
|
---|
723 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
724 | XID c_class;
|
---|
725 | #else
|
---|
726 | XID class;
|
---|
727 | #endif
|
---|
728 | int length;
|
---|
729 | } XAnyClassInfo;
|
---|
730 |
|
---|
731 | typedef struct _XDeviceInfo *XDeviceInfoPtr;
|
---|
732 |
|
---|
733 | typedef struct _XDeviceInfo
|
---|
734 | {
|
---|
735 | XID id;
|
---|
736 | Atom type;
|
---|
737 | char *name;
|
---|
738 | int num_classes;
|
---|
739 | int use;
|
---|
740 | XAnyClassPtr inputclassinfo;
|
---|
741 | } XDeviceInfo;
|
---|
742 |
|
---|
743 | typedef struct _XKeyInfo *XKeyInfoPtr;
|
---|
744 |
|
---|
745 | typedef struct _XKeyInfo
|
---|
746 | {
|
---|
747 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
748 | XID c_class;
|
---|
749 | #else
|
---|
750 | XID class;
|
---|
751 | #endif
|
---|
752 | int length;
|
---|
753 | unsigned short min_keycode;
|
---|
754 | unsigned short max_keycode;
|
---|
755 | unsigned short num_keys;
|
---|
756 | } XKeyInfo;
|
---|
757 |
|
---|
758 | typedef struct _XButtonInfo *XButtonInfoPtr;
|
---|
759 |
|
---|
760 | typedef struct _XButtonInfo {
|
---|
761 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
762 | XID c_class;
|
---|
763 | #else
|
---|
764 | XID class;
|
---|
765 | #endif
|
---|
766 | int length;
|
---|
767 | short num_buttons;
|
---|
768 | } XButtonInfo;
|
---|
769 |
|
---|
770 | typedef struct _XAxisInfo *XAxisInfoPtr;
|
---|
771 |
|
---|
772 | typedef struct _XAxisInfo {
|
---|
773 | int resolution;
|
---|
774 | int min_value;
|
---|
775 | int max_value;
|
---|
776 | } XAxisInfo;
|
---|
777 |
|
---|
778 | typedef struct _XValuatorInfo *XValuatorInfoPtr;
|
---|
779 |
|
---|
780 | typedef struct _XValuatorInfo
|
---|
781 | {
|
---|
782 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
783 | XID c_class;
|
---|
784 | #else
|
---|
785 | XID class;
|
---|
786 | #endif
|
---|
787 | int length;
|
---|
788 | unsigned char num_axes;
|
---|
789 | unsigned char mode;
|
---|
790 | unsigned long motion_buffer;
|
---|
791 | XAxisInfoPtr axes;
|
---|
792 | } XValuatorInfo;
|
---|
793 |
|
---|
794 |
|
---|
795 | /*******************************************************************
|
---|
796 | *
|
---|
797 | * An XDevice structure is returned by the XOpenDevice function.
|
---|
798 | * It contains an array of pointers to XInputClassInfo structures.
|
---|
799 | * Each contains information about a class of input supported by the
|
---|
800 | * device, including a pointer to an array of data for each type of event
|
---|
801 | * the device reports.
|
---|
802 | *
|
---|
803 | */
|
---|
804 |
|
---|
805 |
|
---|
806 | typedef struct {
|
---|
807 | unsigned char input_class;
|
---|
808 | unsigned char event_type_base;
|
---|
809 | } XInputClassInfo;
|
---|
810 |
|
---|
811 | typedef struct {
|
---|
812 | XID device_id;
|
---|
813 | int num_classes;
|
---|
814 | XInputClassInfo *classes;
|
---|
815 | } XDevice;
|
---|
816 |
|
---|
817 |
|
---|
818 | /*******************************************************************
|
---|
819 | *
|
---|
820 | * The following structure is used to return information for the
|
---|
821 | * XGetSelectedExtensionEvents function.
|
---|
822 | *
|
---|
823 | */
|
---|
824 |
|
---|
825 | typedef struct {
|
---|
826 | XEventClass event_type;
|
---|
827 | XID device;
|
---|
828 | } XEventList;
|
---|
829 |
|
---|
830 | /*******************************************************************
|
---|
831 | *
|
---|
832 | * The following structure is used to return motion history data from
|
---|
833 | * an input device that supports the input class Valuators.
|
---|
834 | * This information is returned by the XGetDeviceMotionEvents function.
|
---|
835 | *
|
---|
836 | */
|
---|
837 |
|
---|
838 | typedef struct {
|
---|
839 | Time time;
|
---|
840 | int *data;
|
---|
841 | } XDeviceTimeCoord;
|
---|
842 |
|
---|
843 |
|
---|
844 | /*******************************************************************
|
---|
845 | *
|
---|
846 | * Device state structure.
|
---|
847 | * This is returned by the XQueryDeviceState request.
|
---|
848 | *
|
---|
849 | */
|
---|
850 |
|
---|
851 | typedef struct {
|
---|
852 | XID device_id;
|
---|
853 | int num_classes;
|
---|
854 | XInputClass *data;
|
---|
855 | } XDeviceState;
|
---|
856 |
|
---|
857 | /*******************************************************************
|
---|
858 | *
|
---|
859 | * Note that the mode field is a bitfield that reports the Proximity
|
---|
860 | * status of the device as well as the mode. The mode field should
|
---|
861 | * be OR'd with the mask DeviceMode and compared with the values
|
---|
862 | * Absolute and Relative to determine the mode, and should be OR'd
|
---|
863 | * with the mask ProximityState and compared with the values InProximity
|
---|
864 | * and OutOfProximity to determine the proximity state.
|
---|
865 | *
|
---|
866 | */
|
---|
867 |
|
---|
868 | typedef struct {
|
---|
869 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
870 | unsigned char c_class;
|
---|
871 | #else
|
---|
872 | unsigned char class;
|
---|
873 | #endif
|
---|
874 | unsigned char length;
|
---|
875 | unsigned char num_valuators;
|
---|
876 | unsigned char mode;
|
---|
877 | int *valuators;
|
---|
878 | } XValuatorState;
|
---|
879 |
|
---|
880 | typedef struct {
|
---|
881 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
882 | unsigned char c_class;
|
---|
883 | #else
|
---|
884 | unsigned char class;
|
---|
885 | #endif
|
---|
886 | unsigned char length;
|
---|
887 | short num_keys;
|
---|
888 | char keys[32];
|
---|
889 | } XKeyState;
|
---|
890 |
|
---|
891 | typedef struct {
|
---|
892 | #if defined(__cplusplus) || defined(c_plusplus)
|
---|
893 | unsigned char c_class;
|
---|
894 | #else
|
---|
895 | unsigned char class;
|
---|
896 | #endif
|
---|
897 | unsigned char length;
|
---|
898 | short num_buttons;
|
---|
899 | char buttons[32];
|
---|
900 | } XButtonState;
|
---|
901 |
|
---|
902 | /*******************************************************************
|
---|
903 | *
|
---|
904 | * Function definitions.
|
---|
905 | *
|
---|
906 | */
|
---|
907 |
|
---|
908 | _XFUNCPROTOBEGIN
|
---|
909 |
|
---|
910 | extern int XChangeKeyboardDevice(
|
---|
911 | Display* /* display */,
|
---|
912 | XDevice* /* device */
|
---|
913 | );
|
---|
914 |
|
---|
915 | extern int XChangePointerDevice(
|
---|
916 | Display* /* display */,
|
---|
917 | XDevice* /* device */,
|
---|
918 | int /* xaxis */,
|
---|
919 | int /* yaxis */
|
---|
920 | );
|
---|
921 |
|
---|
922 | extern int XGrabDevice(
|
---|
923 | Display* /* display */,
|
---|
924 | XDevice* /* device */,
|
---|
925 | Window /* grab_window */,
|
---|
926 | Bool /* ownerEvents */,
|
---|
927 | int /* event count */,
|
---|
928 | XEventClass* /* event_list */,
|
---|
929 | int /* this_device_mode */,
|
---|
930 | int /* other_devices_mode */,
|
---|
931 | Time /* time */
|
---|
932 | );
|
---|
933 |
|
---|
934 | extern int XUngrabDevice(
|
---|
935 | Display* /* display */,
|
---|
936 | XDevice* /* device */,
|
---|
937 | Time /* time */
|
---|
938 | );
|
---|
939 |
|
---|
940 | extern int XGrabDeviceKey(
|
---|
941 | Display* /* display */,
|
---|
942 | XDevice* /* device */,
|
---|
943 | unsigned int /* key */,
|
---|
944 | unsigned int /* modifiers */,
|
---|
945 | XDevice* /* modifier_device */,
|
---|
946 | Window /* grab_window */,
|
---|
947 | Bool /* owner_events */,
|
---|
948 | unsigned int /* event_count */,
|
---|
949 | XEventClass* /* event_list */,
|
---|
950 | int /* this_device_mode */,
|
---|
951 | int /* other_devices_mode */
|
---|
952 | );
|
---|
953 |
|
---|
954 | extern int XUngrabDeviceKey(
|
---|
955 | Display* /* display */,
|
---|
956 | XDevice* /* device */,
|
---|
957 | unsigned int /* key */,
|
---|
958 | unsigned int /* modifiers */,
|
---|
959 | XDevice* /* modifier_dev */,
|
---|
960 | Window /* grab_window */
|
---|
961 | );
|
---|
962 |
|
---|
963 | extern int XGrabDeviceButton(
|
---|
964 | Display* /* display */,
|
---|
965 | XDevice* /* device */,
|
---|
966 | unsigned int /* button */,
|
---|
967 | unsigned int /* modifiers */,
|
---|
968 | XDevice* /* modifier_device */,
|
---|
969 | Window /* grab_window */,
|
---|
970 | Bool /* owner_events */,
|
---|
971 | unsigned int /* event_count */,
|
---|
972 | XEventClass* /* event_list */,
|
---|
973 | int /* this_device_mode */,
|
---|
974 | int /* other_devices_mode */
|
---|
975 | );
|
---|
976 |
|
---|
977 | extern int XUngrabDeviceButton(
|
---|
978 | Display* /* display */,
|
---|
979 | XDevice* /* device */,
|
---|
980 | unsigned int /* button */,
|
---|
981 | unsigned int /* modifiers */,
|
---|
982 | XDevice* /* modifier_dev */,
|
---|
983 | Window /* grab_window */
|
---|
984 | );
|
---|
985 |
|
---|
986 | extern int XAllowDeviceEvents(
|
---|
987 | Display* /* display */,
|
---|
988 | XDevice* /* device */,
|
---|
989 | int /* event_mode */,
|
---|
990 | Time /* time */
|
---|
991 | );
|
---|
992 |
|
---|
993 | extern int XGetDeviceFocus(
|
---|
994 | Display* /* display */,
|
---|
995 | XDevice* /* device */,
|
---|
996 | Window* /* focus */,
|
---|
997 | int* /* revert_to */,
|
---|
998 | Time* /* time */
|
---|
999 | );
|
---|
1000 |
|
---|
1001 | extern int XSetDeviceFocus(
|
---|
1002 | Display* /* display */,
|
---|
1003 | XDevice* /* device */,
|
---|
1004 | Window /* focus */,
|
---|
1005 | int /* revert_to */,
|
---|
1006 | Time /* time */
|
---|
1007 | );
|
---|
1008 |
|
---|
1009 | extern XFeedbackState *XGetFeedbackControl(
|
---|
1010 | Display* /* display */,
|
---|
1011 | XDevice* /* device */,
|
---|
1012 | int* /* num_feedbacks */
|
---|
1013 | );
|
---|
1014 |
|
---|
1015 | extern void XFreeFeedbackList(
|
---|
1016 | XFeedbackState* /* list */
|
---|
1017 | );
|
---|
1018 |
|
---|
1019 | extern int XChangeFeedbackControl(
|
---|
1020 | Display* /* display */,
|
---|
1021 | XDevice* /* device */,
|
---|
1022 | unsigned long /* mask */,
|
---|
1023 | XFeedbackControl* /* f */
|
---|
1024 | );
|
---|
1025 |
|
---|
1026 | extern int XDeviceBell(
|
---|
1027 | Display* /* display */,
|
---|
1028 | XDevice* /* device */,
|
---|
1029 | XID /* feedbackclass */,
|
---|
1030 | XID /* feedbackid */,
|
---|
1031 | int /* percent */
|
---|
1032 | );
|
---|
1033 |
|
---|
1034 | extern KeySym *XGetDeviceKeyMapping(
|
---|
1035 | Display* /* display */,
|
---|
1036 | XDevice* /* device */,
|
---|
1037 | #if NeedWidePrototypes
|
---|
1038 | unsigned int /* first */,
|
---|
1039 | #else
|
---|
1040 | KeyCode /* first */,
|
---|
1041 | #endif
|
---|
1042 | int /* keycount */,
|
---|
1043 | int* /* syms_per_code */
|
---|
1044 | );
|
---|
1045 |
|
---|
1046 | extern int XChangeDeviceKeyMapping(
|
---|
1047 | Display* /* display */,
|
---|
1048 | XDevice* /* device */,
|
---|
1049 | int /* first */,
|
---|
1050 | int /* syms_per_code */,
|
---|
1051 | KeySym* /* keysyms */,
|
---|
1052 | int /* count */
|
---|
1053 | );
|
---|
1054 |
|
---|
1055 | extern XModifierKeymap *XGetDeviceModifierMapping(
|
---|
1056 | Display* /* display */,
|
---|
1057 | XDevice* /* device */
|
---|
1058 | );
|
---|
1059 |
|
---|
1060 | extern int XSetDeviceModifierMapping(
|
---|
1061 | Display* /* display */,
|
---|
1062 | XDevice* /* device */,
|
---|
1063 | XModifierKeymap* /* modmap */
|
---|
1064 | );
|
---|
1065 |
|
---|
1066 | extern int XSetDeviceButtonMapping(
|
---|
1067 | Display* /* display */,
|
---|
1068 | XDevice* /* device */,
|
---|
1069 | unsigned char* /* map[] */,
|
---|
1070 | int /* nmap */
|
---|
1071 | );
|
---|
1072 |
|
---|
1073 | extern int XGetDeviceButtonMapping(
|
---|
1074 | Display* /* display */,
|
---|
1075 | XDevice* /* device */,
|
---|
1076 | unsigned char* /* map[] */,
|
---|
1077 | unsigned int /* nmap */
|
---|
1078 | );
|
---|
1079 |
|
---|
1080 | extern XDeviceState *XQueryDeviceState(
|
---|
1081 | Display* /* display */,
|
---|
1082 | XDevice* /* device */
|
---|
1083 | );
|
---|
1084 |
|
---|
1085 | extern void XFreeDeviceState(
|
---|
1086 | XDeviceState* /* list */
|
---|
1087 | );
|
---|
1088 |
|
---|
1089 | extern XExtensionVersion *XGetExtensionVersion(
|
---|
1090 | Display* /* display */,
|
---|
1091 | _Xconst char* /* name */
|
---|
1092 | );
|
---|
1093 |
|
---|
1094 | extern XDeviceInfo *XListInputDevices(
|
---|
1095 | Display* /* display */,
|
---|
1096 | int* /* ndevices */
|
---|
1097 | );
|
---|
1098 |
|
---|
1099 | extern void XFreeDeviceList(
|
---|
1100 | XDeviceInfo* /* list */
|
---|
1101 | );
|
---|
1102 |
|
---|
1103 | extern XDevice *XOpenDevice(
|
---|
1104 | Display* /* display */,
|
---|
1105 | XID /* id */
|
---|
1106 | );
|
---|
1107 |
|
---|
1108 | extern int XCloseDevice(
|
---|
1109 | Display* /* display */,
|
---|
1110 | XDevice* /* device */
|
---|
1111 | );
|
---|
1112 |
|
---|
1113 | extern int XSetDeviceMode(
|
---|
1114 | Display* /* display */,
|
---|
1115 | XDevice* /* device */,
|
---|
1116 | int /* mode */
|
---|
1117 | );
|
---|
1118 |
|
---|
1119 | extern int XSetDeviceValuators(
|
---|
1120 | Display* /* display */,
|
---|
1121 | XDevice* /* device */,
|
---|
1122 | int* /* valuators */,
|
---|
1123 | int /* first_valuator */,
|
---|
1124 | int /* num_valuators */
|
---|
1125 | );
|
---|
1126 |
|
---|
1127 | extern XDeviceControl *XGetDeviceControl(
|
---|
1128 | Display* /* display */,
|
---|
1129 | XDevice* /* device */,
|
---|
1130 | int /* control */
|
---|
1131 | );
|
---|
1132 |
|
---|
1133 | extern int XChangeDeviceControl(
|
---|
1134 | Display* /* display */,
|
---|
1135 | XDevice* /* device */,
|
---|
1136 | int /* control */,
|
---|
1137 | XDeviceControl* /* d */
|
---|
1138 | );
|
---|
1139 |
|
---|
1140 | extern int XSelectExtensionEvent(
|
---|
1141 | Display* /* display */,
|
---|
1142 | Window /* w */,
|
---|
1143 | XEventClass* /* event_list */,
|
---|
1144 | int /* count */
|
---|
1145 | );
|
---|
1146 |
|
---|
1147 | extern int XGetSelectedExtensionEvents(
|
---|
1148 | Display* /* display */,
|
---|
1149 | Window /* w */,
|
---|
1150 | int* /* this_client_count */,
|
---|
1151 | XEventClass** /* this_client_list */,
|
---|
1152 | int* /* all_clients_count */,
|
---|
1153 | XEventClass** /* all_clients_list */
|
---|
1154 | );
|
---|
1155 |
|
---|
1156 | extern int XChangeDeviceDontPropagateList(
|
---|
1157 | Display* /* display */,
|
---|
1158 | Window /* window */,
|
---|
1159 | int /* count */,
|
---|
1160 | XEventClass* /* events */,
|
---|
1161 | int /* mode */
|
---|
1162 | );
|
---|
1163 |
|
---|
1164 | extern XEventClass *XGetDeviceDontPropagateList(
|
---|
1165 | Display* /* display */,
|
---|
1166 | Window /* window */,
|
---|
1167 | int* /* count */
|
---|
1168 | );
|
---|
1169 |
|
---|
1170 | extern Status XSendExtensionEvent(
|
---|
1171 | Display* /* display */,
|
---|
1172 | XDevice* /* device */,
|
---|
1173 | Window /* dest */,
|
---|
1174 | Bool /* prop */,
|
---|
1175 | int /* count */,
|
---|
1176 | XEventClass* /* list */,
|
---|
1177 | XEvent* /* event */
|
---|
1178 | );
|
---|
1179 |
|
---|
1180 | extern XDeviceTimeCoord *XGetDeviceMotionEvents(
|
---|
1181 | Display* /* display */,
|
---|
1182 | XDevice* /* device */,
|
---|
1183 | Time /* start */,
|
---|
1184 | Time /* stop */,
|
---|
1185 | int* /* nEvents */,
|
---|
1186 | int* /* mode */,
|
---|
1187 | int* /* axis_count */
|
---|
1188 | );
|
---|
1189 |
|
---|
1190 | extern void XFreeDeviceMotionEvents(
|
---|
1191 | XDeviceTimeCoord* /* events */
|
---|
1192 | );
|
---|
1193 |
|
---|
1194 | extern void XFreeDeviceControl(
|
---|
1195 | XDeviceControl* /* control */
|
---|
1196 | );
|
---|
1197 |
|
---|
1198 | _XFUNCPROTOEND
|
---|
1199 |
|
---|
1200 | #endif /* _XINPUT_H_ */
|
---|