diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-03-22 17:27:32 +1030 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-03-22 17:27:32 +1030 |
commit | 4ed9be75a5d3d75782351269481db5856f7e3f60 (patch) | |
tree | 3a1bebab3a7c3b4c6c341769333c097e239d5b4a | |
parent | 9dd8dcfa7e084d94cf3b7429eae65c93416159e3 (diff) |
add GetClientPointer request and reply.
add GetPairedPointer request and reply.
move declaration of _XiGetDevicePresenceNotifyEvent out of the macro and wrap
it between extern "C". Otherwise C++ code won't be able to find it.
-rw-r--r-- | XI.h | 5 | ||||
-rw-r--r-- | XInput.h | 23 | ||||
-rw-r--r-- | XIproto.h | 59 |
3 files changed, 85 insertions, 2 deletions
@@ -50,7 +50,6 @@ SOFTWARE. /* Definitions used by the server, library and client */ #ifndef _XI_H_ - #define _XI_H_ #define sz_xGetExtensionVersionReq 8 @@ -123,6 +122,10 @@ SOFTWARE. #define sz_xQueryWindowAccessReq 8 #define sz_xQueryWindowAccessReply 32 #define sz_xSetClientPointerReq 12 +#define sz_xGetClientPointerReq 8 +#define sz_xGetClientPointerReply 32 +#define sz_xGetPairedPointerReq 8 +#define sz_xGetPairedPointerReply 32 #define INAME "XInputExtension" @@ -152,9 +152,18 @@ SOFTWARE. #define NoExtensionEvent(d,type,_class) \ { _class = ((XDevice *) d)->device_id << 8 | _noExtensionEvent;} + +/* We need the declaration for DevicePresence. */ +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + extern int _XiGetDevicePresenceNotifyEvent(Display *); +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + #define DevicePresence(dpy, type, _class) \ { \ - extern int _XiGetDevicePresenceNotifyEvent(Display *); \ type = _XiGetDevicePresenceNotifyEvent(dpy); \ _class = (0x10000 | _devicePresence); \ } @@ -1301,6 +1310,12 @@ extern Status XChangePointerKeyboardPairing( XDevice* /* keyboard*/ ); +extern Bool XGetPairedPointer( + Display* /* display */, + XDevice* /* keyboard */, + int* /* deviceid */ +); + extern Bool XRegisterPairingClient( Display* /* display */ ); @@ -1359,6 +1374,12 @@ extern Status XSetClientPointer( char /* deviceid */ ); +extern Bool XGetClientPointer( + Display* /* dpy */, + Window /* win */, + int* /* deviceid */ +); + _XFUNCPROTOEND @@ -168,6 +168,8 @@ struct tmask #define X_ChangeWindowAccess 42 #define X_QueryWindowAccess 43 #define X_SetClientPointer 44 +#define X_GetClientPointer 45 +#define X_GetPairedPointer 46 /********************************************************* * @@ -1645,6 +1647,63 @@ typedef struct { /********************************************************** * + * GetClientPointer. + * + */ +typedef struct { + CARD8 reqType; + CARD8 ReqType; /* Always X_GetClientPointer */ + CARD16 length B16; + Window win B32; +} xGetClientPointerReq; + +typedef struct { + CARD8 repType; /* input extension major opcode */ + CARD8 RepType; /* Always X_GetClientPointer */ + CARD16 sequenceNumber B16; + CARD32 length B32; + BOOL set; /* client pointer is set */ + CARD8 deviceid; + CARD16 pad0 B16; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; +} xGetClientPointerReply; + +/********************************************************** + * + * GetPairedPointer. + * + */ + +typedef struct { + CARD8 reqType; + CARD8 ReqType; /* Always X_GetPairedPointer */ + CARD16 length B16; + CARD8 deviceid; + CARD8 pad0; + CARD16 pad1 B16; +} xGetPairedPointerReq; + +typedef struct { + CARD8 repType; /* input extension major opcode */ + CARD8 RepType; /* Always X_GetClientPointer */ + CARD16 sequenceNumber B16; + CARD32 length B32; + BOOL paired; /* keyboard is paired */ + CARD8 deviceid; + CARD16 pad0 B16; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; +} xGetPairedPointerReply; + +/********************************************************** + * * Input extension events. * * DeviceValuator |