File indexing completed on 2025-03-13 09:29:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef _XINPUT2_H_
0028 #define _XINPUT2_H_
0029
0030 #include <X11/Xlib.h>
0031 #include <X11/extensions/XI2.h>
0032 #include <X11/extensions/Xge.h>
0033 #include <X11/extensions/Xfixes.h> /* PointerBarrier */
0034
0035
0036
0037
0038 typedef struct {
0039 int type;
0040 char* name;
0041 Bool send_core;
0042 Bool enable;
0043 } XIAddMasterInfo;
0044
0045 typedef struct {
0046 int type;
0047 int deviceid;
0048 int return_mode;
0049 int return_pointer;
0050 int return_keyboard;
0051 } XIRemoveMasterInfo;
0052
0053 typedef struct {
0054 int type;
0055 int deviceid;
0056 int new_master;
0057 } XIAttachSlaveInfo;
0058
0059 typedef struct {
0060 int type;
0061 int deviceid;
0062 } XIDetachSlaveInfo;
0063
0064 typedef union {
0065 int type;
0066 XIAddMasterInfo add;
0067 XIRemoveMasterInfo remove;
0068 XIAttachSlaveInfo attach;
0069 XIDetachSlaveInfo detach;
0070 } XIAnyHierarchyChangeInfo;
0071
0072 typedef struct
0073 {
0074 int base;
0075 int latched;
0076 int locked;
0077 int effective;
0078 } XIModifierState;
0079
0080 typedef XIModifierState XIGroupState;
0081
0082 typedef struct {
0083 int mask_len;
0084 unsigned char *mask;
0085 } XIButtonState;
0086
0087 typedef struct {
0088 int mask_len;
0089 unsigned char *mask;
0090 double *values;
0091 } XIValuatorState;
0092
0093
0094 typedef struct
0095 {
0096 int deviceid;
0097 int mask_len;
0098 unsigned char* mask;
0099 } XIEventMask;
0100
0101 typedef struct
0102 {
0103 int type;
0104 int sourceid;
0105 } XIAnyClassInfo;
0106
0107 typedef struct
0108 {
0109 int type;
0110 int sourceid;
0111 int num_buttons;
0112 Atom *labels;
0113 XIButtonState state;
0114 } XIButtonClassInfo;
0115
0116 typedef struct
0117 {
0118 int type;
0119 int sourceid;
0120 int num_keycodes;
0121 int *keycodes;
0122 } XIKeyClassInfo;
0123
0124 typedef struct
0125 {
0126 int type;
0127 int sourceid;
0128 int number;
0129 Atom label;
0130 double min;
0131 double max;
0132 double value;
0133 int resolution;
0134 int mode;
0135 } XIValuatorClassInfo;
0136
0137
0138 typedef struct
0139 {
0140 int type;
0141 int sourceid;
0142 int number;
0143 int scroll_type;
0144 double increment;
0145 int flags;
0146 } XIScrollClassInfo;
0147
0148 typedef struct
0149 {
0150 int type;
0151 int sourceid;
0152 int mode;
0153 int num_touches;
0154 } XITouchClassInfo;
0155
0156 typedef struct
0157 {
0158 int deviceid;
0159 char *name;
0160 int use;
0161 int attachment;
0162 Bool enabled;
0163 int num_classes;
0164 XIAnyClassInfo **classes;
0165 } XIDeviceInfo;
0166
0167 typedef struct
0168 {
0169 int modifiers;
0170 int status;
0171 } XIGrabModifiers;
0172
0173 typedef unsigned int BarrierEventID;
0174
0175 typedef struct
0176 {
0177 int deviceid;
0178 PointerBarrier barrier;
0179 BarrierEventID eventid;
0180 } XIBarrierReleasePointerInfo;
0181
0182
0183
0184
0185 typedef struct {
0186 int type;
0187 unsigned long serial;
0188 Bool send_event;
0189 Display *display;
0190 int extension;
0191 int evtype;
0192 Time time;
0193 } XIEvent;
0194
0195
0196 typedef struct {
0197 int deviceid;
0198 int attachment;
0199 int use;
0200 Bool enabled;
0201 int flags;
0202 } XIHierarchyInfo;
0203
0204
0205
0206
0207
0208 typedef struct {
0209 int type;
0210 unsigned long serial;
0211 Bool send_event;
0212 Display *display;
0213 int extension;
0214 int evtype;
0215 Time time;
0216 int flags;
0217 int num_info;
0218 XIHierarchyInfo *info;
0219 } XIHierarchyEvent;
0220
0221
0222
0223
0224
0225 typedef struct {
0226 int type;
0227 unsigned long serial;
0228 Bool send_event;
0229 Display *display;
0230 int extension;
0231 int evtype;
0232 Time time;
0233 int deviceid;
0234 int sourceid;
0235 int reason;
0236 int num_classes;
0237 XIAnyClassInfo **classes;
0238 } XIDeviceChangedEvent;
0239
0240 typedef struct {
0241 int type;
0242 unsigned long serial;
0243 Bool send_event;
0244 Display *display;
0245 int extension;
0246 int evtype;
0247 Time time;
0248 int deviceid;
0249 int sourceid;
0250 int detail;
0251 Window root;
0252 Window event;
0253 Window child;
0254 double root_x;
0255 double root_y;
0256 double event_x;
0257 double event_y;
0258 int flags;
0259 XIButtonState buttons;
0260 XIValuatorState valuators;
0261 XIModifierState mods;
0262 XIGroupState group;
0263 } XIDeviceEvent;
0264
0265 typedef struct {
0266 int type;
0267 unsigned long serial;
0268 Bool send_event;
0269 Display *display;
0270 int extension;
0271 int evtype;
0272 Time time;
0273 int deviceid;
0274 int sourceid;
0275 int detail;
0276 int flags;
0277 XIValuatorState valuators;
0278 double *raw_values;
0279 } XIRawEvent;
0280
0281 typedef struct {
0282 int type;
0283 unsigned long serial;
0284 Bool send_event;
0285 Display *display;
0286 int extension;
0287 int evtype;
0288 Time time;
0289 int deviceid;
0290 int sourceid;
0291 int detail;
0292 Window root;
0293 Window event;
0294 Window child;
0295 double root_x;
0296 double root_y;
0297 double event_x;
0298 double event_y;
0299 int mode;
0300 Bool focus;
0301 Bool same_screen;
0302 XIButtonState buttons;
0303 XIModifierState mods;
0304 XIGroupState group;
0305 } XIEnterEvent;
0306
0307 typedef XIEnterEvent XILeaveEvent;
0308 typedef XIEnterEvent XIFocusInEvent;
0309 typedef XIEnterEvent XIFocusOutEvent;
0310
0311 typedef struct {
0312 int type;
0313 unsigned long serial;
0314 Bool send_event;
0315 Display *display;
0316 int extension;
0317 int evtype;
0318 Time time;
0319 int deviceid;
0320 Atom property;
0321 int what;
0322 } XIPropertyEvent;
0323
0324 typedef struct {
0325 int type;
0326 unsigned long serial;
0327 Bool send_event;
0328 Display *display;
0329 int extension;
0330 int evtype;
0331 Time time;
0332 int deviceid;
0333 int sourceid;
0334 unsigned int touchid;
0335 Window root;
0336 Window event;
0337 Window child;
0338 int flags;
0339 } XITouchOwnershipEvent;
0340
0341 typedef struct {
0342 int type;
0343 unsigned long serial;
0344 Bool send_event;
0345 Display *display;
0346 int extension;
0347 int evtype;
0348 Time time;
0349 int deviceid;
0350 int sourceid;
0351 Window event;
0352 Window root;
0353 double root_x;
0354 double root_y;
0355 double dx;
0356 double dy;
0357 int dtime;
0358 int flags;
0359 PointerBarrier barrier;
0360 BarrierEventID eventid;
0361 } XIBarrierEvent;
0362
0363 _XFUNCPROTOBEGIN
0364
0365 extern Bool XIQueryPointer(
0366 Display* display,
0367 int deviceid,
0368 Window win,
0369 Window* root,
0370 Window* child,
0371 double* root_x,
0372 double* root_y,
0373 double* win_x,
0374 double* win_y,
0375 XIButtonState *buttons,
0376 XIModifierState *mods,
0377 XIGroupState *group
0378 );
0379
0380 extern Bool XIWarpPointer(
0381 Display* display,
0382 int deviceid,
0383 Window src_win,
0384 Window dst_win,
0385 double src_x,
0386 double src_y,
0387 unsigned int src_width,
0388 unsigned int src_height,
0389 double dst_x,
0390 double dst_y
0391 );
0392
0393 extern Status XIDefineCursor(
0394 Display* display,
0395 int deviceid,
0396 Window win,
0397 Cursor cursor
0398 );
0399
0400 extern Status XIUndefineCursor(
0401 Display* display,
0402 int deviceid,
0403 Window win
0404 );
0405
0406 extern Status XIChangeHierarchy(
0407 Display* display,
0408 XIAnyHierarchyChangeInfo* changes,
0409 int num_changes
0410 );
0411
0412 extern Status XISetClientPointer(
0413 Display* dpy,
0414 Window win,
0415 int deviceid
0416 );
0417
0418 extern Bool XIGetClientPointer(
0419 Display* dpy,
0420 Window win,
0421 int* deviceid
0422 );
0423
0424 extern int XISelectEvents(
0425 Display* dpy,
0426 Window win,
0427 XIEventMask *masks,
0428 int num_masks
0429 );
0430
0431 extern XIEventMask *XIGetSelectedEvents(
0432 Display* dpy,
0433 Window win,
0434 int *num_masks_return
0435 );
0436
0437 extern Status XIQueryVersion(
0438 Display* dpy,
0439 int* major_version_inout,
0440 int* minor_version_inout
0441 );
0442
0443 extern XIDeviceInfo* XIQueryDevice(
0444 Display* dpy,
0445 int deviceid,
0446 int* ndevices_return
0447 );
0448
0449 extern Status XISetFocus(
0450 Display* dpy,
0451 int deviceid,
0452 Window focus,
0453 Time time
0454 );
0455
0456 extern Status XIGetFocus(
0457 Display* dpy,
0458 int deviceid,
0459 Window *focus_return);
0460
0461 extern Status XIGrabDevice(
0462 Display* dpy,
0463 int deviceid,
0464 Window grab_window,
0465 Time time,
0466 Cursor cursor,
0467 int grab_mode,
0468 int paired_device_mode,
0469 Bool owner_events,
0470 XIEventMask *mask
0471 );
0472
0473 extern Status XIUngrabDevice(
0474 Display* dpy,
0475 int deviceid,
0476 Time time
0477 );
0478
0479 extern Status XIAllowEvents(
0480 Display* display,
0481 int deviceid,
0482 int event_mode,
0483 Time time
0484 );
0485
0486 extern Status XIAllowTouchEvents(
0487 Display* display,
0488 int deviceid,
0489 unsigned int touchid,
0490 Window grab_window,
0491 int event_mode
0492 );
0493
0494 extern int XIGrabButton(
0495 Display* display,
0496 int deviceid,
0497 int button,
0498 Window grab_window,
0499 Cursor cursor,
0500 int grab_mode,
0501 int paired_device_mode,
0502 int owner_events,
0503 XIEventMask *mask,
0504 int num_modifiers,
0505 XIGrabModifiers *modifiers_inout
0506 );
0507
0508 extern int XIGrabKeycode(
0509 Display* display,
0510 int deviceid,
0511 int keycode,
0512 Window grab_window,
0513 int grab_mode,
0514 int paired_device_mode,
0515 int owner_events,
0516 XIEventMask *mask,
0517 int num_modifiers,
0518 XIGrabModifiers *modifiers_inout
0519 );
0520
0521 extern int XIGrabEnter(
0522 Display* display,
0523 int deviceid,
0524 Window grab_window,
0525 Cursor cursor,
0526 int grab_mode,
0527 int paired_device_mode,
0528 int owner_events,
0529 XIEventMask *mask,
0530 int num_modifiers,
0531 XIGrabModifiers *modifiers_inout
0532 );
0533
0534 extern int XIGrabFocusIn(
0535 Display* display,
0536 int deviceid,
0537 Window grab_window,
0538 int grab_mode,
0539 int paired_device_mode,
0540 int owner_events,
0541 XIEventMask *mask,
0542 int num_modifiers,
0543 XIGrabModifiers *modifiers_inout
0544 );
0545
0546 extern int XIGrabTouchBegin(
0547 Display* display,
0548 int deviceid,
0549 Window grab_window,
0550 int owner_events,
0551 XIEventMask *mask,
0552 int num_modifiers,
0553 XIGrabModifiers *modifiers_inout
0554 );
0555
0556 extern Status XIUngrabButton(
0557 Display* display,
0558 int deviceid,
0559 int button,
0560 Window grab_window,
0561 int num_modifiers,
0562 XIGrabModifiers *modifiers
0563 );
0564
0565 extern Status XIUngrabKeycode(
0566 Display* display,
0567 int deviceid,
0568 int keycode,
0569 Window grab_window,
0570 int num_modifiers,
0571 XIGrabModifiers *modifiers
0572 );
0573
0574 extern Status XIUngrabEnter(
0575 Display* display,
0576 int deviceid,
0577 Window grab_window,
0578 int num_modifiers,
0579 XIGrabModifiers *modifiers
0580 );
0581
0582 extern Status XIUngrabFocusIn(
0583 Display* display,
0584 int deviceid,
0585 Window grab_window,
0586 int num_modifiers,
0587 XIGrabModifiers *modifiers
0588 );
0589
0590 extern Status XIUngrabTouchBegin(
0591 Display* display,
0592 int deviceid,
0593 Window grab_window,
0594 int num_modifiers,
0595 XIGrabModifiers *modifiers
0596 );
0597
0598 extern Atom *XIListProperties(
0599 Display* display,
0600 int deviceid,
0601 int *num_props_return
0602 );
0603
0604 extern void XIChangeProperty(
0605 Display* display,
0606 int deviceid,
0607 Atom property,
0608 Atom type,
0609 int format,
0610 int mode,
0611 unsigned char *data,
0612 int num_items
0613 );
0614
0615 extern void
0616 XIDeleteProperty(
0617 Display* display,
0618 int deviceid,
0619 Atom property
0620 );
0621
0622 extern Status
0623 XIGetProperty(
0624 Display* display,
0625 int deviceid,
0626 Atom property,
0627 long offset,
0628 long length,
0629 Bool delete_property,
0630 Atom type,
0631 Atom *type_return,
0632 int *format_return,
0633 unsigned long *num_items_return,
0634 unsigned long *bytes_after_return,
0635 unsigned char **data
0636 );
0637
0638 extern void
0639 XIBarrierReleasePointers(
0640 Display* display,
0641 XIBarrierReleasePointerInfo *barriers,
0642 int num_barriers
0643 );
0644
0645 extern void
0646 XIBarrierReleasePointer(
0647 Display* display,
0648 int deviceid,
0649 PointerBarrier barrier,
0650 BarrierEventID eventid
0651 );
0652
0653 extern void XIFreeDeviceInfo(XIDeviceInfo *info);
0654
0655 _XFUNCPROTOEND
0656
0657 #endif