Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/X11/extensions/XInput2.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 /* | |
2 * Copyright © 2009 Red Hat, Inc. | |
3 * | |
4 * Permission is hereby granted, free of charge, to any person obtaining a | |
5 * copy of this software and associated documentation files (the "Software"), | |
6 * to deal in the Software without restriction, including without limitation | |
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
8 * and/or sell copies of the Software, and to permit persons to whom the | |
9 * Software is furnished to do so, subject to the following conditions: | |
10 * | |
11 * The above copyright notice and this permission notice (including the next | |
12 * paragraph) shall be included in all copies or substantial portions of the | |
13 * Software. | |
14 * | |
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
21 * DEALINGS IN THE SOFTWARE. | |
22 * | |
23 */ | |
24 | |
25 /* Definitions used by the library and client */ | |
26 | |
27 #ifndef _XINPUT2_H_ | |
28 #define _XINPUT2_H_ | |
29 | |
30 #include <X11/Xlib.h> | |
31 #include <X11/extensions/XI2.h> | |
32 #include <X11/extensions/Xge.h> | |
33 #include <X11/extensions/Xfixes.h> /* PointerBarrier */ | |
34 | |
35 /******************************************************************* | |
36 * | |
37 */ | |
38 typedef struct { | |
39 int type; | |
40 char* name; | |
41 Bool send_core; | |
42 Bool enable; | |
43 } XIAddMasterInfo; | |
44 | |
45 typedef struct { | |
46 int type; | |
47 int deviceid; | |
48 int return_mode; /* AttachToMaster, Floating */ | |
49 int return_pointer; | |
50 int return_keyboard; | |
51 } XIRemoveMasterInfo; | |
52 | |
53 typedef struct { | |
54 int type; | |
55 int deviceid; | |
56 int new_master; | |
57 } XIAttachSlaveInfo; | |
58 | |
59 typedef struct { | |
60 int type; | |
61 int deviceid; | |
62 } XIDetachSlaveInfo; | |
63 | |
64 typedef union { | |
65 int type; /* must be first element */ | |
66 XIAddMasterInfo add; | |
67 XIRemoveMasterInfo remove; | |
68 XIAttachSlaveInfo attach; | |
69 XIDetachSlaveInfo detach; | |
70 } XIAnyHierarchyChangeInfo; | |
71 | |
72 typedef struct | |
73 { | |
74 int base; | |
75 int latched; | |
76 int locked; | |
77 int effective; | |
78 } XIModifierState; | |
79 | |
80 typedef XIModifierState XIGroupState; | |
81 | |
82 typedef struct { | |
83 int mask_len; | |
84 unsigned char *mask; | |
85 } XIButtonState; | |
86 | |
87 typedef struct { | |
88 int mask_len; | |
89 unsigned char *mask; | |
90 double *values; | |
91 } XIValuatorState; | |
92 | |
93 | |
94 typedef struct | |
95 { | |
96 int deviceid; | |
97 int mask_len; | |
98 unsigned char* mask; | |
99 } XIEventMask; | |
100 | |
101 typedef struct | |
102 { | |
103 int type; | |
104 int sourceid; | |
105 } XIAnyClassInfo; | |
106 | |
107 typedef struct | |
108 { | |
109 int type; | |
110 int sourceid; | |
111 int num_buttons; | |
112 Atom *labels; | |
113 XIButtonState state; | |
114 } XIButtonClassInfo; | |
115 | |
116 typedef struct | |
117 { | |
118 int type; | |
119 int sourceid; | |
120 int num_keycodes; | |
121 int *keycodes; | |
122 } XIKeyClassInfo; | |
123 | |
124 typedef struct | |
125 { | |
126 int type; | |
127 int sourceid; | |
128 int number; | |
129 Atom label; | |
130 double min; | |
131 double max; | |
132 double value; | |
133 int resolution; | |
134 int mode; | |
135 } XIValuatorClassInfo; | |
136 | |
137 /* new in XI 2.1 */ | |
138 typedef struct | |
139 { | |
140 int type; | |
141 int sourceid; | |
142 int number; | |
143 int scroll_type; | |
144 double increment; | |
145 int flags; | |
146 } XIScrollClassInfo; | |
147 | |
148 typedef struct | |
149 { | |
150 int type; | |
151 int sourceid; | |
152 int mode; | |
153 int num_touches; | |
154 } XITouchClassInfo; | |
155 | |
156 /* new in XI 2.4 */ | |
157 typedef struct | |
158 { | |
159 int type; | |
160 int sourceid; | |
161 int num_touches; | |
162 } XIGestureClassInfo; | |
163 | |
164 typedef struct | |
165 { | |
166 int deviceid; | |
167 char *name; | |
168 int use; | |
169 int attachment; | |
170 Bool enabled; | |
171 int num_classes; | |
172 XIAnyClassInfo **classes; | |
173 } XIDeviceInfo; | |
174 | |
175 typedef struct | |
176 { | |
177 int modifiers; | |
178 int status; | |
179 } XIGrabModifiers; | |
180 | |
181 typedef unsigned int BarrierEventID; | |
182 | |
183 typedef struct | |
184 { | |
185 int deviceid; | |
186 PointerBarrier barrier; | |
187 BarrierEventID eventid; | |
188 } XIBarrierReleasePointerInfo; | |
189 | |
190 /** | |
191 * Generic XI2 event. All XI2 events have the same header. | |
192 */ | |
193 typedef struct { | |
194 int type; /* GenericEvent */ | |
195 unsigned long serial; /* # of last request processed by server */ | |
196 Bool send_event; /* true if this came from a SendEvent request */ | |
197 Display *display; /* Display the event was read from */ | |
198 int extension; /* XI extension offset */ | |
199 int evtype; | |
200 Time time; | |
201 } XIEvent; | |
202 | |
203 | |
204 typedef struct { | |
205 int deviceid; | |
206 int attachment; | |
207 int use; | |
208 Bool enabled; | |
209 int flags; | |
210 } XIHierarchyInfo; | |
211 | |
212 /* | |
213 * Notifies the client that the device hierarchy has been changed. The client | |
214 * is expected to re-query the server for the device hierarchy. | |
215 */ | |
216 typedef struct { | |
217 int type; /* GenericEvent */ | |
218 unsigned long serial; /* # of last request processed by server */ | |
219 Bool send_event; /* true if this came from a SendEvent request */ | |
220 Display *display; /* Display the event was read from */ | |
221 int extension; /* XI extension offset */ | |
222 int evtype; /* XI_HierarchyChanged */ | |
223 Time time; | |
224 int flags; | |
225 int num_info; | |
226 XIHierarchyInfo *info; | |
227 } XIHierarchyEvent; | |
228 | |
229 /* | |
230 * Notifies the client that the classes have been changed. This happens when | |
231 * the slave device that sends through the master changes. | |
232 */ | |
233 typedef struct { | |
234 int type; /* GenericEvent */ | |
235 unsigned long serial; /* # of last request processed by server */ | |
236 Bool send_event; /* true if this came from a SendEvent request */ | |
237 Display *display; /* Display the event was read from */ | |
238 int extension; /* XI extension offset */ | |
239 int evtype; /* XI_DeviceChanged */ | |
240 Time time; | |
241 int deviceid; /* id of the device that changed */ | |
242 int sourceid; /* Source for the new classes. */ | |
243 int reason; /* Reason for the change */ | |
244 int num_classes; | |
245 XIAnyClassInfo **classes; /* same as in XIDeviceInfo */ | |
246 } XIDeviceChangedEvent; | |
247 | |
248 typedef struct { | |
249 int type; /* GenericEvent */ | |
250 unsigned long serial; /* # of last request processed by server */ | |
251 Bool send_event; /* true if this came from a SendEvent request */ | |
252 Display *display; /* Display the event was read from */ | |
253 int extension; /* XI extension offset */ | |
254 int evtype; | |
255 Time time; | |
256 int deviceid; | |
257 int sourceid; | |
258 int detail; | |
259 Window root; | |
260 Window event; | |
261 Window child; | |
262 double root_x; | |
263 double root_y; | |
264 double event_x; | |
265 double event_y; | |
266 int flags; | |
267 XIButtonState buttons; | |
268 XIValuatorState valuators; | |
269 XIModifierState mods; | |
270 XIGroupState group; | |
271 } XIDeviceEvent; | |
272 | |
273 typedef struct { | |
274 int type; /* GenericEvent */ | |
275 unsigned long serial; /* # of last request processed by server */ | |
276 Bool send_event; /* true if this came from a SendEvent request */ | |
277 Display *display; /* Display the event was read from */ | |
278 int extension; /* XI extension offset */ | |
279 int evtype; /* XI_RawKeyPress, XI_RawKeyRelease, etc. */ | |
280 Time time; | |
281 int deviceid; | |
282 int sourceid; /* Bug: Always 0. https://bugs.freedesktop.org//show_bug.cgi?id=34240 */ | |
283 int detail; | |
284 int flags; | |
285 XIValuatorState valuators; | |
286 double *raw_values; | |
287 } XIRawEvent; | |
288 | |
289 typedef struct { | |
290 int type; /* GenericEvent */ | |
291 unsigned long serial; /* # of last request processed by server */ | |
292 Bool send_event; /* true if this came from a SendEvent request */ | |
293 Display *display; /* Display the event was read from */ | |
294 int extension; /* XI extension offset */ | |
295 int evtype; | |
296 Time time; | |
297 int deviceid; | |
298 int sourceid; | |
299 int detail; | |
300 Window root; | |
301 Window event; | |
302 Window child; | |
303 double root_x; | |
304 double root_y; | |
305 double event_x; | |
306 double event_y; | |
307 int mode; | |
308 Bool focus; | |
309 Bool same_screen; | |
310 XIButtonState buttons; | |
311 XIModifierState mods; | |
312 XIGroupState group; | |
313 } XIEnterEvent; | |
314 | |
315 typedef XIEnterEvent XILeaveEvent; | |
316 typedef XIEnterEvent XIFocusInEvent; | |
317 typedef XIEnterEvent XIFocusOutEvent; | |
318 | |
319 typedef struct { | |
320 int type; /* GenericEvent */ | |
321 unsigned long serial; /* # of last request processed by server */ | |
322 Bool send_event; /* true if this came from a SendEvent request */ | |
323 Display *display; /* Display the event was read from */ | |
324 int extension; /* XI extension offset */ | |
325 int evtype; /* XI_PropertyEvent */ | |
326 Time time; | |
327 int deviceid; /* id of the device that changed */ | |
328 Atom property; | |
329 int what; | |
330 } XIPropertyEvent; | |
331 | |
332 typedef struct { | |
333 int type; /* GenericEvent */ | |
334 unsigned long serial; /* # of last request processed by server */ | |
335 Bool send_event; /* true if this came from a SendEvent request */ | |
336 Display *display; /* Display the event was read from */ | |
337 int extension; /* XI extension offset */ | |
338 int evtype; | |
339 Time time; | |
340 int deviceid; | |
341 int sourceid; | |
342 unsigned int touchid; | |
343 Window root; | |
344 Window event; | |
345 Window child; | |
346 int flags; | |
347 } XITouchOwnershipEvent; | |
348 | |
349 typedef struct { | |
350 int type; /* GenericEvent */ | |
351 unsigned long serial; /* # of last request processed by server */ | |
352 Bool send_event; /* true if this came from a SendEvent request */ | |
353 Display *display; /* Display the event was read from */ | |
354 int extension; /* XI extension offset */ | |
355 int evtype; | |
356 Time time; | |
357 int deviceid; | |
358 int sourceid; | |
359 Window event; | |
360 Window root; | |
361 double root_x; | |
362 double root_y; | |
363 double dx; | |
364 double dy; | |
365 int dtime; | |
366 int flags; | |
367 PointerBarrier barrier; | |
368 BarrierEventID eventid; | |
369 } XIBarrierEvent; | |
370 | |
371 typedef struct { | |
372 int type; /* GenericEvent */ | |
373 unsigned long serial; /* # of last request processed by server */ | |
374 Bool send_event; /* true if this came from a SendEvent request */ | |
375 Display *display; /* Display the event was read from */ | |
376 int extension; /* XI extension offset */ | |
377 int evtype; | |
378 Time time; | |
379 int deviceid; | |
380 int sourceid; | |
381 int detail; | |
382 Window root; | |
383 Window event; | |
384 Window child; | |
385 double root_x; | |
386 double root_y; | |
387 double event_x; | |
388 double event_y; | |
389 double delta_x; | |
390 double delta_y; | |
391 double delta_unaccel_x; | |
392 double delta_unaccel_y; | |
393 double scale; | |
394 double delta_angle; | |
395 int flags; | |
396 XIModifierState mods; | |
397 XIGroupState group; | |
398 } XIGesturePinchEvent; | |
399 | |
400 typedef struct { | |
401 int type; /* GenericEvent */ | |
402 unsigned long serial; /* # of last request processed by server */ | |
403 Bool send_event; /* true if this came from a SendEvent request */ | |
404 Display *display; /* Display the event was read from */ | |
405 int extension; /* XI extension offset */ | |
406 int evtype; | |
407 Time time; | |
408 int deviceid; | |
409 int sourceid; | |
410 int detail; | |
411 Window root; | |
412 Window event; | |
413 Window child; | |
414 double root_x; | |
415 double root_y; | |
416 double event_x; | |
417 double event_y; | |
418 double delta_x; | |
419 double delta_y; | |
420 double delta_unaccel_x; | |
421 double delta_unaccel_y; | |
422 int flags; | |
423 XIModifierState mods; | |
424 XIGroupState group; | |
425 } XIGestureSwipeEvent; | |
426 | |
427 _XFUNCPROTOBEGIN | |
428 | |
429 extern Bool XIQueryPointer( | |
430 Display* display, | |
431 int deviceid, | |
432 Window win, | |
433 Window* root, | |
434 Window* child, | |
435 double* root_x, | |
436 double* root_y, | |
437 double* win_x, | |
438 double* win_y, | |
439 XIButtonState *buttons, | |
440 XIModifierState *mods, | |
441 XIGroupState *group | |
442 ); | |
443 | |
444 extern Bool XIWarpPointer( | |
445 Display* display, | |
446 int deviceid, | |
447 Window src_win, | |
448 Window dst_win, | |
449 double src_x, | |
450 double src_y, | |
451 unsigned int src_width, | |
452 unsigned int src_height, | |
453 double dst_x, | |
454 double dst_y | |
455 ); | |
456 | |
457 extern Status XIDefineCursor( | |
458 Display* display, | |
459 int deviceid, | |
460 Window win, | |
461 Cursor cursor | |
462 ); | |
463 | |
464 extern Status XIUndefineCursor( | |
465 Display* display, | |
466 int deviceid, | |
467 Window win | |
468 ); | |
469 | |
470 extern Status XIChangeHierarchy( | |
471 Display* display, | |
472 XIAnyHierarchyChangeInfo* changes, | |
473 int num_changes | |
474 ); | |
475 | |
476 extern Status XISetClientPointer( | |
477 Display* dpy, | |
478 Window win, | |
479 int deviceid | |
480 ); | |
481 | |
482 extern Bool XIGetClientPointer( | |
483 Display* dpy, | |
484 Window win, | |
485 int* deviceid | |
486 ); | |
487 | |
488 extern int XISelectEvents( | |
489 Display* dpy, | |
490 Window win, | |
491 XIEventMask *masks, | |
492 int num_masks | |
493 ); | |
494 | |
495 extern XIEventMask *XIGetSelectedEvents( | |
496 Display* dpy, | |
497 Window win, | |
498 int *num_masks_return | |
499 ); | |
500 | |
501 extern Status XIQueryVersion( | |
502 Display* dpy, | |
503 int* major_version_inout, | |
504 int* minor_version_inout | |
505 ); | |
506 | |
507 extern XIDeviceInfo* XIQueryDevice( | |
508 Display* dpy, | |
509 int deviceid, | |
510 int* ndevices_return | |
511 ); | |
512 | |
513 extern Status XISetFocus( | |
514 Display* dpy, | |
515 int deviceid, | |
516 Window focus, | |
517 Time time | |
518 ); | |
519 | |
520 extern Status XIGetFocus( | |
521 Display* dpy, | |
522 int deviceid, | |
523 Window *focus_return); | |
524 | |
525 extern Status XIGrabDevice( | |
526 Display* dpy, | |
527 int deviceid, | |
528 Window grab_window, | |
529 Time time, | |
530 Cursor cursor, | |
531 int grab_mode, | |
532 int paired_device_mode, | |
533 Bool owner_events, | |
534 XIEventMask *mask | |
535 ); | |
536 | |
537 extern Status XIUngrabDevice( | |
538 Display* dpy, | |
539 int deviceid, | |
540 Time time | |
541 ); | |
542 | |
543 extern Status XIAllowEvents( | |
544 Display* display, | |
545 int deviceid, | |
546 int event_mode, | |
547 Time time | |
548 ); | |
549 | |
550 extern Status XIAllowTouchEvents( | |
551 Display* display, | |
552 int deviceid, | |
553 unsigned int touchid, | |
554 Window grab_window, | |
555 int event_mode | |
556 ); | |
557 | |
558 extern int XIGrabButton( | |
559 Display* display, | |
560 int deviceid, | |
561 int button, | |
562 Window grab_window, | |
563 Cursor cursor, | |
564 int grab_mode, | |
565 int paired_device_mode, | |
566 int owner_events, | |
567 XIEventMask *mask, | |
568 int num_modifiers, | |
569 XIGrabModifiers *modifiers_inout | |
570 ); | |
571 | |
572 extern int XIGrabKeycode( | |
573 Display* display, | |
574 int deviceid, | |
575 int keycode, | |
576 Window grab_window, | |
577 int grab_mode, | |
578 int paired_device_mode, | |
579 int owner_events, | |
580 XIEventMask *mask, | |
581 int num_modifiers, | |
582 XIGrabModifiers *modifiers_inout | |
583 ); | |
584 | |
585 extern int XIGrabEnter( | |
586 Display* display, | |
587 int deviceid, | |
588 Window grab_window, | |
589 Cursor cursor, | |
590 int grab_mode, | |
591 int paired_device_mode, | |
592 int owner_events, | |
593 XIEventMask *mask, | |
594 int num_modifiers, | |
595 XIGrabModifiers *modifiers_inout | |
596 ); | |
597 | |
598 extern int XIGrabFocusIn( | |
599 Display* display, | |
600 int deviceid, | |
601 Window grab_window, | |
602 int grab_mode, | |
603 int paired_device_mode, | |
604 int owner_events, | |
605 XIEventMask *mask, | |
606 int num_modifiers, | |
607 XIGrabModifiers *modifiers_inout | |
608 ); | |
609 | |
610 extern int XIGrabTouchBegin( | |
611 Display* display, | |
612 int deviceid, | |
613 Window grab_window, | |
614 int owner_events, | |
615 XIEventMask *mask, | |
616 int num_modifiers, | |
617 XIGrabModifiers *modifiers_inout | |
618 ); | |
619 | |
620 extern int XIGrabPinchGestureBegin( | |
621 Display* display, | |
622 int deviceid, | |
623 Window grab_window, | |
624 int grab_mode, | |
625 int paired_device_mode, | |
626 int owner_events, | |
627 XIEventMask *mask, | |
628 int num_modifiers, | |
629 XIGrabModifiers *modifiers_inout | |
630 ); | |
631 | |
632 extern int XIGrabSwipeGestureBegin( | |
633 Display* display, | |
634 int deviceid, | |
635 Window grab_window, | |
636 int grab_mode, | |
637 int paired_device_mode, | |
638 int owner_events, | |
639 XIEventMask *mask, | |
640 int num_modifiers, | |
641 XIGrabModifiers *modifiers_inout | |
642 ); | |
643 | |
644 extern Status XIUngrabButton( | |
645 Display* display, | |
646 int deviceid, | |
647 int button, | |
648 Window grab_window, | |
649 int num_modifiers, | |
650 XIGrabModifiers *modifiers | |
651 ); | |
652 | |
653 extern Status XIUngrabKeycode( | |
654 Display* display, | |
655 int deviceid, | |
656 int keycode, | |
657 Window grab_window, | |
658 int num_modifiers, | |
659 XIGrabModifiers *modifiers | |
660 ); | |
661 | |
662 extern Status XIUngrabEnter( | |
663 Display* display, | |
664 int deviceid, | |
665 Window grab_window, | |
666 int num_modifiers, | |
667 XIGrabModifiers *modifiers | |
668 ); | |
669 | |
670 extern Status XIUngrabFocusIn( | |
671 Display* display, | |
672 int deviceid, | |
673 Window grab_window, | |
674 int num_modifiers, | |
675 XIGrabModifiers *modifiers | |
676 ); | |
677 | |
678 extern Status XIUngrabTouchBegin( | |
679 Display* display, | |
680 int deviceid, | |
681 Window grab_window, | |
682 int num_modifiers, | |
683 XIGrabModifiers *modifiers | |
684 ); | |
685 | |
686 extern Status XIUngrabPinchGestureBegin( | |
687 Display* display, | |
688 int deviceid, | |
689 Window grab_window, | |
690 int num_modifiers, | |
691 XIGrabModifiers *modifiers | |
692 ); | |
693 | |
694 extern Status XIUngrabSwipeGestureBegin( | |
695 Display* display, | |
696 int deviceid, | |
697 Window grab_window, | |
698 int num_modifiers, | |
699 XIGrabModifiers *modifiers | |
700 ); | |
701 | |
702 extern Atom *XIListProperties( | |
703 Display* display, | |
704 int deviceid, | |
705 int *num_props_return | |
706 ); | |
707 | |
708 extern void XIChangeProperty( | |
709 Display* display, | |
710 int deviceid, | |
711 Atom property, | |
712 Atom type, | |
713 int format, | |
714 int mode, | |
715 unsigned char *data, | |
716 int num_items | |
717 ); | |
718 | |
719 extern void | |
720 XIDeleteProperty( | |
721 Display* display, | |
722 int deviceid, | |
723 Atom property | |
724 ); | |
725 | |
726 extern Status | |
727 XIGetProperty( | |
728 Display* display, | |
729 int deviceid, | |
730 Atom property, | |
731 long offset, | |
732 long length, | |
733 Bool delete_property, | |
734 Atom type, | |
735 Atom *type_return, | |
736 int *format_return, | |
737 unsigned long *num_items_return, | |
738 unsigned long *bytes_after_return, | |
739 unsigned char **data | |
740 ); | |
741 | |
742 extern void | |
743 XIBarrierReleasePointers( | |
744 Display* display, | |
745 XIBarrierReleasePointerInfo *barriers, | |
746 int num_barriers | |
747 ); | |
748 | |
749 extern void | |
750 XIBarrierReleasePointer( | |
751 Display* display, | |
752 int deviceid, | |
753 PointerBarrier barrier, | |
754 BarrierEventID eventid | |
755 ); | |
756 | |
757 extern void XIFreeDeviceInfo(XIDeviceInfo *info); | |
758 | |
759 _XFUNCPROTOEND | |
760 | |
761 #endif /* XINPUT2_H */ |