add directory Linux-0.98
This commit is contained in:
824
Linux-0.98/Yggdrasil-0.98.3/usr/include/X11/extensions/XInput.h
Normal file
824
Linux-0.98/Yggdrasil-0.98.3/usr/include/X11/extensions/XInput.h
Normal file
@@ -0,0 +1,824 @@
|
||||
/* $Header: XInput.h,v 1.14 91/07/24 15:33:51 rws Exp $ */
|
||||
|
||||
/************************************************************
|
||||
Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, California, and the
|
||||
Massachusetts Institute of Technology, Cambridge, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the names of Hewlett-Packard or MIT not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
/* Definitions used by the library and client */
|
||||
|
||||
#ifndef _XINPUT_H_
|
||||
#define _XINPUT_H_
|
||||
|
||||
#ifndef _XLIB_H_
|
||||
#include <X11/Xlib.h>
|
||||
#endif
|
||||
|
||||
#ifndef _XI_H_
|
||||
#include "XI.h"
|
||||
#endif
|
||||
|
||||
#define _deviceKeyPress 0
|
||||
#define _deviceKeyRelease 1
|
||||
|
||||
#define _deviceButtonPress 0
|
||||
#define _deviceButtonRelease 1
|
||||
|
||||
#define _deviceMotionNotify 0
|
||||
|
||||
#define _deviceFocusIn 0
|
||||
#define _deviceFocusOut 1
|
||||
|
||||
#define _proximityIn 0
|
||||
#define _proximityOut 1
|
||||
|
||||
#define _deviceStateNotify 0
|
||||
#define _deviceMappingNotify 1
|
||||
#define _changeDeviceNotify 2
|
||||
|
||||
#define FindTypeAndClass(d,type,_class,classid,offset) \
|
||||
{ int i; XInputClassInfo *ip; \
|
||||
type = 0; _class = 0; \
|
||||
for (i=0, ip= ((XDevice *) d)->classes; \
|
||||
i< ((XDevice *) d)->num_classes; \
|
||||
i++, ip++) \
|
||||
if (ip->input_class == classid) \
|
||||
{type = ip->event_type_base + offset; \
|
||||
_class = ((XDevice *) d)->device_id << 8 | type;}}
|
||||
|
||||
#define DeviceKeyPress(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, KeyClass, _deviceKeyPress)
|
||||
|
||||
#define DeviceKeyRelease(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, KeyClass, _deviceKeyRelease)
|
||||
|
||||
#define DeviceButtonPress(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, ButtonClass, _deviceButtonPress)
|
||||
|
||||
#define DeviceButtonRelease(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, ButtonClass, _deviceButtonRelease)
|
||||
|
||||
#define DeviceMotionNotify(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, ValuatorClass, _deviceMotionNotify)
|
||||
|
||||
#define DeviceFocusIn(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, FocusClass, _deviceFocusIn)
|
||||
|
||||
#define DeviceFocusOut(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, FocusClass, _deviceFocusOut)
|
||||
|
||||
#define ProximityIn(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, ProximityClass, _proximityIn)
|
||||
|
||||
#define ProximityOut(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, ProximityClass, _proximityOut)
|
||||
|
||||
#define DeviceStateNotify(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, OtherClass, _deviceStateNotify)
|
||||
|
||||
#define DeviceMappingNotify(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, OtherClass, _deviceMappingNotify)
|
||||
|
||||
#define ChangeDeviceNotify(d,type,_class) \
|
||||
FindTypeAndClass(d, type, _class, OtherClass, _changeDeviceNotify)
|
||||
|
||||
#define DevicePointerMotionHint(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _devicePointerMotionHint;}
|
||||
|
||||
#define DeviceButton1Motion(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton1Motion;}
|
||||
|
||||
#define DeviceButton2Motion(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton2Motion;}
|
||||
|
||||
#define DeviceButton3Motion(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton3Motion;}
|
||||
|
||||
#define DeviceButton4Motion(d,type,class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton4Motion;}
|
||||
|
||||
#define DeviceButton5Motion(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton5Motion;}
|
||||
|
||||
#define DeviceButtonMotion(d,type,class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButtonMotion;}
|
||||
|
||||
#define DeviceOwnerGrabButton(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceOwnerGrabButton;}
|
||||
|
||||
#define DeviceButtonPressGrab(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButtonGrab;}
|
||||
|
||||
#define NoExtensionEvent(d,type,_class) \
|
||||
{ _class = ((XDevice *) d)->device_id << 8 | _noExtensionEvent;}
|
||||
|
||||
#define BadDevice(dpy,error) _xibaddevice(dpy, &error)
|
||||
|
||||
#define BadClass(dpy,error) _xibadclass(dpy, &error)
|
||||
|
||||
#define BadEvent(dpy,error) _xibadevent(dpy, &error)
|
||||
|
||||
#define BadMode(dpy,error) _xibadmode(dpy, &error)
|
||||
|
||||
#define DeviceBusy(dpy,error) _xidevicebusy(dpy, &error)
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* DeviceKey events. These events are sent by input devices that
|
||||
* support input class Keys.
|
||||
* The location of the X pointer is reported in the coordinate
|
||||
* fields of the x,y and x_root,y_root fields.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type; /* of event */
|
||||
unsigned long serial; /* # of last request processed */
|
||||
Bool send_event; /* true if from SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window window; /* "event" window reported relative to */
|
||||
XID deviceid;
|
||||
Window root; /* root window event occured on */
|
||||
Window subwindow; /* child window */
|
||||
Time time; /* milliseconds */
|
||||
int x, y; /* x, y coordinates in event window */
|
||||
int x_root; /* coordinates relative to root */
|
||||
int y_root; /* coordinates relative to root */
|
||||
unsigned int state; /* key or button mask */
|
||||
unsigned int keycode; /* detail */
|
||||
Bool same_screen; /* same screen flag */
|
||||
unsigned int device_state; /* device key or button mask */
|
||||
unsigned char axes_count;
|
||||
unsigned char first_axis;
|
||||
int axis_data[6];
|
||||
} XDeviceKeyEvent;
|
||||
|
||||
typedef XDeviceKeyEvent XDeviceKeyPressedEvent;
|
||||
typedef XDeviceKeyEvent XDeviceKeyReleasedEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* DeviceButton events. These events are sent by extension devices
|
||||
* that support input class Buttons.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int type; /* of event */
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window window; /* "event" window reported relative to */
|
||||
XID deviceid;
|
||||
Window root; /* root window that the event occured on */
|
||||
Window subwindow; /* child window */
|
||||
Time time; /* milliseconds */
|
||||
int x, y; /* x, y coordinates in event window */
|
||||
int x_root; /* coordinates relative to root */
|
||||
int y_root; /* coordinates relative to root */
|
||||
unsigned int state; /* key or button mask */
|
||||
unsigned int button; /* detail */
|
||||
Bool same_screen; /* same screen flag */
|
||||
unsigned int device_state; /* device key or button mask */
|
||||
unsigned char axes_count;
|
||||
unsigned char first_axis;
|
||||
int axis_data[6];
|
||||
} XDeviceButtonEvent;
|
||||
|
||||
typedef XDeviceButtonEvent XDeviceButtonPressedEvent;
|
||||
typedef XDeviceButtonEvent XDeviceButtonReleasedEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* DeviceMotionNotify event. These events are sent by extension devices
|
||||
* that support input class Valuators.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type; /* of event */
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window window; /* "event" window reported relative to */
|
||||
XID deviceid;
|
||||
Window root; /* root window that the event occured on */
|
||||
Window subwindow; /* child window */
|
||||
Time time; /* milliseconds */
|
||||
int x, y; /* x, y coordinates in event window */
|
||||
int x_root; /* coordinates relative to root */
|
||||
int y_root; /* coordinates relative to root */
|
||||
unsigned int state; /* key or button mask */
|
||||
char is_hint; /* detail */
|
||||
Bool same_screen; /* same screen flag */
|
||||
unsigned int device_state; /* device key or button mask */
|
||||
unsigned char axes_count;
|
||||
unsigned char first_axis;
|
||||
int axis_data[6];
|
||||
} XDeviceMotionEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* DeviceFocusChange events. These events are sent when the focus
|
||||
* of an extension device that can be focused is changed.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type; /* of event */
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window window; /* "event" window reported relative to */
|
||||
XID deviceid;
|
||||
int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
|
||||
int detail;
|
||||
/*
|
||||
* NotifyAncestor, NotifyVirtual, NotifyInferior,
|
||||
* NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer,
|
||||
* NotifyPointerRoot, NotifyDetailNone
|
||||
*/
|
||||
Time time;
|
||||
} XDeviceFocusChangeEvent;
|
||||
|
||||
typedef XDeviceFocusChangeEvent XDeviceFocusInEvent;
|
||||
typedef XDeviceFocusChangeEvent XDeviceFocusOutEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* ProximityNotify events. These events are sent by those absolute
|
||||
* positioning devices that are capable of generating proximity information.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type; /* ProximityIn or ProximityOut */
|
||||
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 */
|
||||
Window window;
|
||||
XID deviceid;
|
||||
Window root;
|
||||
Window subwindow;
|
||||
Time time;
|
||||
int x, y;
|
||||
int x_root, y_root;
|
||||
unsigned int state;
|
||||
Bool same_screen;
|
||||
unsigned int device_state; /* device key or button mask */
|
||||
unsigned char axes_count;
|
||||
unsigned char first_axis;
|
||||
int axis_data[6];
|
||||
} XProximityNotifyEvent;
|
||||
typedef XProximityNotifyEvent XProximityInEvent;
|
||||
typedef XProximityNotifyEvent XProximityOutEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* DeviceStateNotify events are generated on EnterWindow and FocusIn
|
||||
* for those clients who have selected DeviceState.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
} XInputClass;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
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 */
|
||||
Window window;
|
||||
XID deviceid;
|
||||
Time time;
|
||||
int num_classes;
|
||||
char data[64];
|
||||
} XDeviceStateNotifyEvent;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
unsigned char num_valuators;
|
||||
unsigned char mode;
|
||||
int valuators[6];
|
||||
} XValuatorStatus;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
short num_keys;
|
||||
char keys[32];
|
||||
} XKeyStatus;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
short num_buttons;
|
||||
char buttons[32];
|
||||
} XButtonStatus;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* DeviceMappingNotify event. This event is sent when the key mapping,
|
||||
* modifier mapping, or button mapping of an extension device is changed.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
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 */
|
||||
Window window; /* unused */
|
||||
XID deviceid;
|
||||
Time time;
|
||||
int request; /* one of MappingModifier, MappingKeyboard,
|
||||
MappingPointer */
|
||||
int first_keycode;/* first keycode */
|
||||
int count; /* defines range of change w. first_keycode*/
|
||||
} XDeviceMappingEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* ChangeDeviceNotify event. This event is sent when an
|
||||
* XChangeKeyboard or XChangePointer request is made.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
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 */
|
||||
Window window; /* unused */
|
||||
XID deviceid;
|
||||
Time time;
|
||||
int request; /* NewPointer or NewKeyboard */
|
||||
} XChangeDeviceNotifyEvent;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* Control structures for input devices that support input class
|
||||
* Feedback. These are used by the XGetFeedbackControl and
|
||||
* XChangeFeedbackControl functions.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
} XFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int click;
|
||||
int percent;
|
||||
int pitch;
|
||||
int duration;
|
||||
int led_mask;
|
||||
int global_auto_repeat;
|
||||
char auto_repeats[32];
|
||||
} XKbdFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int accelNum;
|
||||
int accelDenom;
|
||||
int threshold;
|
||||
} XPtrFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int resolution;
|
||||
int minVal;
|
||||
int maxVal;
|
||||
} XIntegerFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int max_symbols;
|
||||
int num_syms_supported;
|
||||
KeySym *syms_supported;
|
||||
} XStringFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int percent;
|
||||
int pitch;
|
||||
int duration;
|
||||
} XBellFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int led_values;
|
||||
int led_mask;
|
||||
} XLedFeedbackState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
} XFeedbackControl;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int accelNum;
|
||||
int accelDenom;
|
||||
int threshold;
|
||||
} XPtrFeedbackControl;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int click;
|
||||
int percent;
|
||||
int pitch;
|
||||
int duration;
|
||||
int led_mask;
|
||||
int led_value;
|
||||
int key;
|
||||
int auto_repeat_mode;
|
||||
} XKbdFeedbackControl;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int num_keysyms;
|
||||
KeySym *syms_to_display;
|
||||
} XStringFeedbackControl;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int int_to_display;
|
||||
} XIntegerFeedbackControl;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int percent;
|
||||
int pitch;
|
||||
int duration;
|
||||
} XBellFeedbackControl;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
XID id;
|
||||
int led_mask;
|
||||
int led_values;
|
||||
} XLedFeedbackControl;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* Device control structures.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
XID control;
|
||||
int length;
|
||||
} XDeviceControl;
|
||||
|
||||
typedef struct {
|
||||
XID control;
|
||||
int length;
|
||||
int first_valuator;
|
||||
int num_valuators;
|
||||
int *resolutions;
|
||||
} XDeviceResolutionControl;
|
||||
|
||||
typedef struct {
|
||||
XID control;
|
||||
int length;
|
||||
int num_valuators;
|
||||
int *resolutions;
|
||||
int *min_resolutions;
|
||||
int *max_resolutions;
|
||||
} XDeviceResolutionState;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* An array of XDeviceList structures is returned by the
|
||||
* XListInputDevices function. Each entry contains information
|
||||
* about one input device. Among that information is an array of
|
||||
* pointers to structures that describe the characteristics of
|
||||
* the input device.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct _XAnyClassinfo *XAnyClassPtr;
|
||||
|
||||
typedef struct _XAnyClassinfo {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
} XAnyClassInfo;
|
||||
|
||||
typedef struct _XDeviceInfo *XDeviceInfoPtr;
|
||||
|
||||
typedef struct _XDeviceInfo
|
||||
{
|
||||
XID id;
|
||||
Atom type;
|
||||
char *name;
|
||||
int num_classes;
|
||||
int use;
|
||||
XAnyClassPtr inputclassinfo;
|
||||
} XDeviceInfo;
|
||||
|
||||
typedef struct _XKeyInfo *XKeyInfoPtr;
|
||||
|
||||
typedef struct _XKeyInfo
|
||||
{
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
unsigned short min_keycode;
|
||||
unsigned short max_keycode;
|
||||
unsigned short num_keys;
|
||||
} XKeyInfo;
|
||||
|
||||
typedef struct _XButtonInfo *XButtonInfoPtr;
|
||||
|
||||
typedef struct _XButtonInfo {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
short num_buttons;
|
||||
} XButtonInfo;
|
||||
|
||||
typedef struct _XAxisInfo *XAxisInfoPtr;
|
||||
|
||||
typedef struct _XAxisInfo {
|
||||
int resolution;
|
||||
int min_value;
|
||||
int max_value;
|
||||
} XAxisInfo;
|
||||
|
||||
typedef struct _XValuatorInfo *XValuatorInfoPtr;
|
||||
|
||||
typedef struct _XValuatorInfo
|
||||
{
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
XID c_class;
|
||||
#else
|
||||
XID class;
|
||||
#endif
|
||||
int length;
|
||||
unsigned char num_axes;
|
||||
unsigned char mode;
|
||||
unsigned long motion_buffer;
|
||||
XAxisInfoPtr axes;
|
||||
} XValuatorInfo;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* An XDevice structure is returned by the XOpenDevice function.
|
||||
* It contains an array of pointers to XInputClassInfo structures.
|
||||
* Each contains information about a class of input supported by the
|
||||
* device, including a pointer to an array of data for each type of event
|
||||
* the device reports.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned char input_class;
|
||||
unsigned char event_type_base;
|
||||
} XInputClassInfo;
|
||||
|
||||
typedef struct {
|
||||
XID device_id;
|
||||
int num_classes;
|
||||
XInputClassInfo *classes;
|
||||
} XDevice;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* The following structure is used to return information for the
|
||||
* XGetSelectedExtensionEvents function.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
XEventClass event_type;
|
||||
XID device;
|
||||
} XEventList;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* The following structure is used to return motion history data from
|
||||
* an input device that supports the input class Valuators.
|
||||
* This information is returned by the XGetDeviceMotionEvents function.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
Time time;
|
||||
int *data;
|
||||
} XDeviceTimeCoord;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* Device state structure.
|
||||
* This is returned by the XQueryDeviceState request.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
XID device_id;
|
||||
int num_classes;
|
||||
XInputClass *data;
|
||||
} XDeviceState;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* Note that the mode field is a bitfield that reports the Proximity
|
||||
* status of the device as well as the mode. The mode field should
|
||||
* be OR'd with the mask DeviceMode and compared with the values
|
||||
* Absolute and Relative to determine the mode, and should be OR'd
|
||||
* with the mask ProximityState and compared with the values InProximity
|
||||
* and OutOfProximity to determine the proximity state.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
unsigned char num_valuators;
|
||||
unsigned char mode;
|
||||
int *valuators;
|
||||
} XValuatorState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
short num_keys;
|
||||
char keys[32];
|
||||
} XKeyState;
|
||||
|
||||
typedef struct {
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
unsigned char c_class;
|
||||
#else
|
||||
unsigned char class;
|
||||
#endif
|
||||
unsigned char length;
|
||||
short num_buttons;
|
||||
char buttons[32];
|
||||
} XButtonState;
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* Function definitions.
|
||||
*
|
||||
*/
|
||||
|
||||
XDevice *XOpenDevice();
|
||||
XDeviceInfo *XListInputDevices();
|
||||
XDeviceTimeCoord *XGetDeviceMotionEvents();
|
||||
KeySym *XGetDeviceKeyMapping();
|
||||
XModifierKeymap *XGetDeviceModifierMapping();
|
||||
XFeedbackState *XGetFeedbackControl();
|
||||
XExtensionVersion *XGetExtensionVersion();
|
||||
XDeviceState *XQueryDeviceState();
|
||||
XEventClass *XGetDeviceDontPropagateList();
|
||||
#endif /* _XINPUT_H_ */
|
||||
Reference in New Issue
Block a user