#ifndef EXEVENTS_H
#define EXEVENTS_H
#include <X11/extensions/XIproto.h>
#include "inputstr.h"
extern _X_EXPORT int InitProximityClassDeviceStruct(
DeviceIntPtr );
extern _X_EXPORT void InitValuatorAxisStruct(
DeviceIntPtr ,
int ,
Atom ,
int ,
int ,
int ,
int ,
int ,
int );
extern _X_EXPORT void XIDeleteAllDeviceProperties(
DeviceIntPtr
);
extern _X_EXPORT int XIDeleteDeviceProperty(
DeviceIntPtr ,
Atom ,
Bool
);
extern _X_EXPORT int XIChangeDeviceProperty(
DeviceIntPtr ,
Atom ,
Atom ,
int ,
int ,
unsigned long ,
const pointer ,
Bool
);
extern _X_EXPORT int XIGetDeviceProperty(
DeviceIntPtr ,
Atom ,
XIPropertyValuePtr*
);
extern _X_EXPORT int XISetDevicePropertyDeletable(
DeviceIntPtr ,
Atom ,
Bool
);
extern _X_EXPORT long XIRegisterPropertyHandler(
DeviceIntPtr dev,
int (*SetProperty) (DeviceIntPtr dev,
Atom property,
XIPropertyValuePtr prop,
BOOL checkonly),
int (*GetProperty) (DeviceIntPtr dev,
Atom property),
int (*DeleteProperty) (DeviceIntPtr dev,
Atom property)
);
extern _X_EXPORT void XIUnregisterPropertyHandler(
DeviceIntPtr dev,
long id
);
extern _X_EXPORT Atom XIGetKnownProperty(
char* name
);
extern _X_EXPORT DeviceIntPtr XIGetDevice(xEvent *ev);
extern _X_EXPORT int XIPropToInt(
XIPropertyValuePtr val,
int *nelem_return,
int **buf_return
);
extern _X_EXPORT int XIPropToFloat(
XIPropertyValuePtr val,
int *nelem_return,
float **buf_return
);
typedef struct _XIClientRec {
int major_version;
int minor_version;
} XIClientRec, *XIClientPtr;
typedef struct _GrabParameters {
int grabtype;
unsigned int ownerEvents;
unsigned int this_device_mode;
unsigned int other_devices_mode;
Window grabWindow;
Window confineTo;
Cursor cursor;
unsigned int modifiers;
} GrabParameters;
extern int
UpdateDeviceState (
DeviceIntPtr ,
DeviceEvent* );
extern void
ProcessOtherEvent (
InternalEvent* ,
DeviceIntPtr );
extern void
DeviceFocusEvent(
DeviceIntPtr ,
int ,
int ,
int ,
WindowPtr );
extern int
CheckGrabValues(
ClientPtr ,
GrabParameters* );
extern int
GrabButton(
ClientPtr ,
DeviceIntPtr ,
DeviceIntPtr ,
int ,
GrabParameters* ,
GrabType ,
GrabMask* );
extern int
GrabKey(
ClientPtr ,
DeviceIntPtr ,
DeviceIntPtr ,
int ,
GrabParameters* ,
GrabType ,
GrabMask* );
extern int
GrabWindow(
ClientPtr ,
DeviceIntPtr ,
int ,
GrabParameters* ,
GrabMask* );
extern int
SelectForWindow(
DeviceIntPtr ,
WindowPtr ,
ClientPtr ,
Mask ,
Mask );
extern int
AddExtensionClient (
WindowPtr ,
ClientPtr ,
Mask ,
int );
extern void
RecalculateDeviceDeliverableEvents(
WindowPtr );
extern int
InputClientGone(
WindowPtr ,
XID );
extern int
SendEvent (
ClientPtr ,
DeviceIntPtr ,
Window ,
Bool ,
xEvent * ,
Mask ,
int );
extern int
SetButtonMapping (
ClientPtr ,
DeviceIntPtr ,
int ,
BYTE * );
extern int
ChangeKeyMapping(
ClientPtr ,
DeviceIntPtr ,
unsigned ,
int ,
KeyCode ,
CARD8 ,
CARD8 ,
KeySym * );
extern void
DeleteWindowFromAnyExtEvents(
WindowPtr ,
Bool );
extern int
MaybeSendDeviceMotionNotifyHint (
deviceKeyButtonPointer * ,
Mask );
extern void
CheckDeviceGrabAndHintWindow (
WindowPtr ,
int ,
deviceKeyButtonPointer * ,
GrabPtr ,
ClientPtr ,
Mask );
extern void
MaybeStopDeviceHint(
DeviceIntPtr ,
ClientPtr );
extern int
DeviceEventSuppressForWindow(
WindowPtr ,
ClientPtr ,
Mask ,
int );
extern void
SendEventToAllWindows(
DeviceIntPtr ,
Mask ,
xEvent * ,
int );
extern _X_HIDDEN void XI2EventSwap(
xGenericEvent * ,
xGenericEvent * );
extern int
XIShouldNotify(ClientPtr client, DeviceIntPtr dev);
extern void
XISendDeviceChangedEvent(DeviceIntPtr device, DeviceIntPtr master,
DeviceChangedEvent *dce);
extern int
XISetEventMask(DeviceIntPtr dev, WindowPtr win, ClientPtr client,
unsigned int len, unsigned char* mask);
extern int
XICheckInvalidMaskBits(ClientPtr client, unsigned char *mask, int len);
#endif