summaryrefslogtreecommitdiff
path: root/thirdparty/linuxbsd_headers/X11/extensions/XInput2.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/linuxbsd_headers/X11/extensions/XInput2.h')
-rw-r--r--thirdparty/linuxbsd_headers/X11/extensions/XInput2.h657
1 files changed, 657 insertions, 0 deletions
diff --git a/thirdparty/linuxbsd_headers/X11/extensions/XInput2.h b/thirdparty/linuxbsd_headers/X11/extensions/XInput2.h
new file mode 100644
index 0000000000..33670ebf20
--- /dev/null
+++ b/thirdparty/linuxbsd_headers/X11/extensions/XInput2.h
@@ -0,0 +1,657 @@
+/*
+ * Copyright © 2009 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/* Definitions used by the library and client */
+
+#ifndef _XINPUT2_H_
+#define _XINPUT2_H_
+
+#include <X11/Xlib.h>
+#include <X11/extensions/XI2.h>
+#include <X11/extensions/Xge.h>
+#include <X11/extensions/Xfixes.h> /* PointerBarrier */
+
+/*******************************************************************
+ *
+ */
+typedef struct {
+ int type;
+ char* name;
+ Bool send_core;
+ Bool enable;
+} XIAddMasterInfo;
+
+typedef struct {
+ int type;
+ int deviceid;
+ int return_mode; /* AttachToMaster, Floating */
+ int return_pointer;
+ int return_keyboard;
+} XIRemoveMasterInfo;
+
+typedef struct {
+ int type;
+ int deviceid;
+ int new_master;
+} XIAttachSlaveInfo;
+
+typedef struct {
+ int type;
+ int deviceid;
+} XIDetachSlaveInfo;
+
+typedef union {
+ int type; /* must be first element */
+ XIAddMasterInfo add;
+ XIRemoveMasterInfo remove;
+ XIAttachSlaveInfo attach;
+ XIDetachSlaveInfo detach;
+} XIAnyHierarchyChangeInfo;
+
+typedef struct
+{
+ int base;
+ int latched;
+ int locked;
+ int effective;
+} XIModifierState;
+
+typedef XIModifierState XIGroupState;
+
+typedef struct {
+ int mask_len;
+ unsigned char *mask;
+} XIButtonState;
+
+typedef struct {
+ int mask_len;
+ unsigned char *mask;
+ double *values;
+} XIValuatorState;
+
+
+typedef struct
+{
+ int deviceid;
+ int mask_len;
+ unsigned char* mask;
+} XIEventMask;
+
+typedef struct
+{
+ int type;
+ int sourceid;
+} XIAnyClassInfo;
+
+typedef struct
+{
+ int type;
+ int sourceid;
+ int num_buttons;
+ Atom *labels;
+ XIButtonState state;
+} XIButtonClassInfo;
+
+typedef struct
+{
+ int type;
+ int sourceid;
+ int num_keycodes;
+ int *keycodes;
+} XIKeyClassInfo;
+
+typedef struct
+{
+ int type;
+ int sourceid;
+ int number;
+ Atom label;
+ double min;
+ double max;
+ double value;
+ int resolution;
+ int mode;
+} XIValuatorClassInfo;
+
+/* new in XI 2.1 */
+typedef struct
+{
+ int type;
+ int sourceid;
+ int number;
+ int scroll_type;
+ double increment;
+ int flags;
+} XIScrollClassInfo;
+
+typedef struct
+{
+ int type;
+ int sourceid;
+ int mode;
+ int num_touches;
+} XITouchClassInfo;
+
+typedef struct
+{
+ int deviceid;
+ char *name;
+ int use;
+ int attachment;
+ Bool enabled;
+ int num_classes;
+ XIAnyClassInfo **classes;
+} XIDeviceInfo;
+
+typedef struct
+{
+ int modifiers;
+ int status;
+} XIGrabModifiers;
+
+typedef unsigned int BarrierEventID;
+
+typedef struct
+{
+ int deviceid;
+ PointerBarrier barrier;
+ BarrierEventID eventid;
+} XIBarrierReleasePointerInfo;
+
+/**
+ * Generic XI2 event. All XI2 events have the same header.
+ */
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype;
+ Time time;
+} XIEvent;
+
+
+typedef struct {
+ int deviceid;
+ int attachment;
+ int use;
+ Bool enabled;
+ int flags;
+} XIHierarchyInfo;
+
+/*
+ * Notifies the client that the device hierarchy has been changed. The client
+ * is expected to re-query the server for the device hierarchy.
+ */
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype; /* XI_HierarchyChanged */
+ Time time;
+ int flags;
+ int num_info;
+ XIHierarchyInfo *info;
+} XIHierarchyEvent;
+
+/*
+ * Notifies the client that the classes have been changed. This happens when
+ * the slave device that sends through the master changes.
+ */
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype; /* XI_DeviceChanged */
+ Time time;
+ int deviceid; /* id of the device that changed */
+ int sourceid; /* Source for the new classes. */
+ int reason; /* Reason for the change */
+ int num_classes;
+ XIAnyClassInfo **classes; /* same as in XIDeviceInfo */
+} XIDeviceChangedEvent;
+
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype;
+ Time time;
+ int deviceid;
+ int sourceid;
+ int detail;
+ Window root;
+ Window event;
+ Window child;
+ double root_x;
+ double root_y;
+ double event_x;
+ double event_y;
+ int flags;
+ XIButtonState buttons;
+ XIValuatorState valuators;
+ XIModifierState mods;
+ XIGroupState group;
+} XIDeviceEvent;
+
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype; /* XI_RawKeyPress, XI_RawKeyRelease, etc. */
+ Time time;
+ int deviceid;
+ int sourceid; /* Bug: Always 0. https://bugs.freedesktop.org//show_bug.cgi?id=34240 */
+ int detail;
+ int flags;
+ XIValuatorState valuators;
+ double *raw_values;
+} XIRawEvent;
+
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype;
+ Time time;
+ int deviceid;
+ int sourceid;
+ int detail;
+ Window root;
+ Window event;
+ Window child;
+ double root_x;
+ double root_y;
+ double event_x;
+ double event_y;
+ int mode;
+ Bool focus;
+ Bool same_screen;
+ XIButtonState buttons;
+ XIModifierState mods;
+ XIGroupState group;
+} XIEnterEvent;
+
+typedef XIEnterEvent XILeaveEvent;
+typedef XIEnterEvent XIFocusInEvent;
+typedef XIEnterEvent XIFocusOutEvent;
+
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype; /* XI_PropertyEvent */
+ Time time;
+ int deviceid; /* id of the device that changed */
+ Atom property;
+ int what;
+} XIPropertyEvent;
+
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype;
+ Time time;
+ int deviceid;
+ int sourceid;
+ unsigned int touchid;
+ Window root;
+ Window event;
+ Window child;
+ int flags;
+} XITouchOwnershipEvent;
+
+typedef struct {
+ int type; /* GenericEvent */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* XI extension offset */
+ int evtype;
+ Time time;
+ int deviceid;
+ int sourceid;
+ Window event;
+ Window root;
+ double root_x;
+ double root_y;
+ double dx;
+ double dy;
+ int dtime;
+ int flags;
+ PointerBarrier barrier;
+ BarrierEventID eventid;
+} XIBarrierEvent;
+
+_XFUNCPROTOBEGIN
+
+extern Bool XIQueryPointer(
+ Display* display,
+ int deviceid,
+ Window win,
+ Window* root,
+ Window* child,
+ double* root_x,
+ double* root_y,
+ double* win_x,
+ double* win_y,
+ XIButtonState *buttons,
+ XIModifierState *mods,
+ XIGroupState *group
+);
+
+extern Bool XIWarpPointer(
+ Display* display,
+ int deviceid,
+ Window src_win,
+ Window dst_win,
+ double src_x,
+ double src_y,
+ unsigned int src_width,
+ unsigned int src_height,
+ double dst_x,
+ double dst_y
+);
+
+extern Status XIDefineCursor(
+ Display* display,
+ int deviceid,
+ Window win,
+ Cursor cursor
+);
+
+extern Status XIUndefineCursor(
+ Display* display,
+ int deviceid,
+ Window win
+);
+
+extern Status XIChangeHierarchy(
+ Display* display,
+ XIAnyHierarchyChangeInfo* changes,
+ int num_changes
+);
+
+extern Status XISetClientPointer(
+ Display* dpy,
+ Window win,
+ int deviceid
+);
+
+extern Bool XIGetClientPointer(
+ Display* dpy,
+ Window win,
+ int* deviceid
+);
+
+extern int XISelectEvents(
+ Display* dpy,
+ Window win,
+ XIEventMask *masks,
+ int num_masks
+);
+
+extern XIEventMask *XIGetSelectedEvents(
+ Display* dpy,
+ Window win,
+ int *num_masks_return
+);
+
+extern Status XIQueryVersion(
+ Display* dpy,
+ int* major_version_inout,
+ int* minor_version_inout
+);
+
+extern XIDeviceInfo* XIQueryDevice(
+ Display* dpy,
+ int deviceid,
+ int* ndevices_return
+);
+
+extern Status XISetFocus(
+ Display* dpy,
+ int deviceid,
+ Window focus,
+ Time time
+);
+
+extern Status XIGetFocus(
+ Display* dpy,
+ int deviceid,
+ Window *focus_return);
+
+extern Status XIGrabDevice(
+ Display* dpy,
+ int deviceid,
+ Window grab_window,
+ Time time,
+ Cursor cursor,
+ int grab_mode,
+ int paired_device_mode,
+ Bool owner_events,
+ XIEventMask *mask
+);
+
+extern Status XIUngrabDevice(
+ Display* dpy,
+ int deviceid,
+ Time time
+);
+
+extern Status XIAllowEvents(
+ Display* display,
+ int deviceid,
+ int event_mode,
+ Time time
+);
+
+extern Status XIAllowTouchEvents(
+ Display* display,
+ int deviceid,
+ unsigned int touchid,
+ Window grab_window,
+ int event_mode
+);
+
+extern int XIGrabButton(
+ Display* display,
+ int deviceid,
+ int button,
+ Window grab_window,
+ Cursor cursor,
+ int grab_mode,
+ int paired_device_mode,
+ int owner_events,
+ XIEventMask *mask,
+ int num_modifiers,
+ XIGrabModifiers *modifiers_inout
+);
+
+extern int XIGrabKeycode(
+ Display* display,
+ int deviceid,
+ int keycode,
+ Window grab_window,
+ int grab_mode,
+ int paired_device_mode,
+ int owner_events,
+ XIEventMask *mask,
+ int num_modifiers,
+ XIGrabModifiers *modifiers_inout
+);
+
+extern int XIGrabEnter(
+ Display* display,
+ int deviceid,
+ Window grab_window,
+ Cursor cursor,
+ int grab_mode,
+ int paired_device_mode,
+ int owner_events,
+ XIEventMask *mask,
+ int num_modifiers,
+ XIGrabModifiers *modifiers_inout
+);
+
+extern int XIGrabFocusIn(
+ Display* display,
+ int deviceid,
+ Window grab_window,
+ int grab_mode,
+ int paired_device_mode,
+ int owner_events,
+ XIEventMask *mask,
+ int num_modifiers,
+ XIGrabModifiers *modifiers_inout
+);
+
+extern int XIGrabTouchBegin(
+ Display* display,
+ int deviceid,
+ Window grab_window,
+ int owner_events,
+ XIEventMask *mask,
+ int num_modifiers,
+ XIGrabModifiers *modifiers_inout
+);
+
+extern Status XIUngrabButton(
+ Display* display,
+ int deviceid,
+ int button,
+ Window grab_window,
+ int num_modifiers,
+ XIGrabModifiers *modifiers
+);
+
+extern Status XIUngrabKeycode(
+ Display* display,
+ int deviceid,
+ int keycode,
+ Window grab_window,
+ int num_modifiers,
+ XIGrabModifiers *modifiers
+);
+
+extern Status XIUngrabEnter(
+ Display* display,
+ int deviceid,
+ Window grab_window,
+ int num_modifiers,
+ XIGrabModifiers *modifiers
+);
+
+extern Status XIUngrabFocusIn(
+ Display* display,
+ int deviceid,
+ Window grab_window,
+ int num_modifiers,
+ XIGrabModifiers *modifiers
+);
+
+extern Status XIUngrabTouchBegin(
+ Display* display,
+ int deviceid,
+ Window grab_window,
+ int num_modifiers,
+ XIGrabModifiers *modifiers
+);
+
+extern Atom *XIListProperties(
+ Display* display,
+ int deviceid,
+ int *num_props_return
+);
+
+extern void XIChangeProperty(
+ Display* display,
+ int deviceid,
+ Atom property,
+ Atom type,
+ int format,
+ int mode,
+ unsigned char *data,
+ int num_items
+);
+
+extern void
+XIDeleteProperty(
+ Display* display,
+ int deviceid,
+ Atom property
+);
+
+extern Status
+XIGetProperty(
+ Display* display,
+ int deviceid,
+ Atom property,
+ long offset,
+ long length,
+ Bool delete_property,
+ Atom type,
+ Atom *type_return,
+ int *format_return,
+ unsigned long *num_items_return,
+ unsigned long *bytes_after_return,
+ unsigned char **data
+);
+
+extern void
+XIBarrierReleasePointers(
+ Display* display,
+ XIBarrierReleasePointerInfo *barriers,
+ int num_barriers
+);
+
+extern void
+XIBarrierReleasePointer(
+ Display* display,
+ int deviceid,
+ PointerBarrier barrier,
+ BarrierEventID eventid
+);
+
+extern void XIFreeDeviceInfo(XIDeviceInfo *info);
+
+_XFUNCPROTOEND
+
+#endif /* XINPUT2_H */