163 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
	
/* SPDX-License-Identifier: MIT OR X11
 | 
						|
 *
 | 
						|
 * Copyright © 1996 Thomas E. Dickey <dickey@clark.net>
 | 
						|
 * Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
 | 
						|
 */
 | 
						|
#ifndef _XSERVER_EXEVENTS_PRIV_H
 | 
						|
#define _XSERVER_EXEVENTS_PRIV_H
 | 
						|
 | 
						|
#include <X11/extensions/XIproto.h>
 | 
						|
#include "exevents.h"
 | 
						|
 | 
						|
/**
 | 
						|
 * Attached to the devPrivates of each client. Specifies the version number as
 | 
						|
 * supported by the client.
 | 
						|
 */
 | 
						|
typedef struct _XIClientRec {
 | 
						|
    int major_version;
 | 
						|
    int minor_version;
 | 
						|
} XIClientRec, *XIClientPtr;
 | 
						|
 | 
						|
typedef struct _GrabParameters {
 | 
						|
    int grabtype;               /* CORE, etc. */
 | 
						|
    unsigned int ownerEvents;
 | 
						|
    unsigned int this_device_mode;
 | 
						|
    unsigned int other_devices_mode;
 | 
						|
    Window grabWindow;
 | 
						|
    Window confineTo;
 | 
						|
    Cursor cursor;
 | 
						|
    unsigned int modifiers;
 | 
						|
} GrabParameters;
 | 
						|
 | 
						|
int UpdateDeviceState(DeviceIntPtr device, DeviceEvent *xE);
 | 
						|
 | 
						|
void ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr other);
 | 
						|
 | 
						|
int CheckGrabValues(ClientPtr client, GrabParameters *param);
 | 
						|
 | 
						|
int GrabButton(ClientPtr client,
 | 
						|
               DeviceIntPtr dev,
 | 
						|
               DeviceIntPtr modifier_device,
 | 
						|
               int button,
 | 
						|
               GrabParameters *param,
 | 
						|
               enum InputLevel grabtype,
 | 
						|
               GrabMask *eventMask);
 | 
						|
 | 
						|
int GrabKey(ClientPtr client,
 | 
						|
            DeviceIntPtr dev,
 | 
						|
            DeviceIntPtr modifier_device,
 | 
						|
            int key,
 | 
						|
            GrabParameters *param,
 | 
						|
            enum InputLevel grabtype,
 | 
						|
            GrabMask *eventMask);
 | 
						|
 | 
						|
int GrabWindow(ClientPtr client,
 | 
						|
               DeviceIntPtr dev,
 | 
						|
               int type,
 | 
						|
               GrabParameters *param,
 | 
						|
               GrabMask *eventMask);
 | 
						|
 | 
						|
int GrabTouchOrGesture(ClientPtr client,
 | 
						|
                       DeviceIntPtr dev,
 | 
						|
                       DeviceIntPtr mod_dev,
 | 
						|
                       int type,
 | 
						|
                       GrabParameters *param,
 | 
						|
                       GrabMask *eventMask);
 | 
						|
 | 
						|
int SelectForWindow(DeviceIntPtr dev,
 | 
						|
                    WindowPtr pWin,
 | 
						|
                    ClientPtr client,
 | 
						|
                    Mask mask,
 | 
						|
                    Mask exclusivemasks);
 | 
						|
 | 
						|
int AddExtensionClient(WindowPtr pWin,
 | 
						|
                       ClientPtr client,
 | 
						|
                       Mask mask,
 | 
						|
                       int mskidx);
 | 
						|
 | 
						|
void RecalculateDeviceDeliverableEvents(WindowPtr pWin);
 | 
						|
 | 
						|
int InputClientGone(WindowPtr pWin, XID id);
 | 
						|
 | 
						|
void WindowGone(WindowPtr win);
 | 
						|
 | 
						|
int SendEvent(ClientPtr client,
 | 
						|
              DeviceIntPtr d,
 | 
						|
              Window dest,
 | 
						|
              Bool propagate,
 | 
						|
              xEvent *ev,
 | 
						|
              Mask mask ,
 | 
						|
              int count);
 | 
						|
 | 
						|
int SetButtonMapping(ClientPtr client,
 | 
						|
                     DeviceIntPtr dev,
 | 
						|
                     int nElts,
 | 
						|
                     BYTE *map);
 | 
						|
 | 
						|
int ChangeKeyMapping(ClientPtr client,
 | 
						|
                     DeviceIntPtr dev,
 | 
						|
                     unsigned len,
 | 
						|
                     int type,
 | 
						|
                     KeyCode firstKeyCode,
 | 
						|
                     CARD8 keyCodes,
 | 
						|
                     CARD8 keySymsPerKeyCode,
 | 
						|
                     KeySym *map);
 | 
						|
 | 
						|
void DeleteWindowFromAnyExtEvents(WindowPtr pWin, Bool freeResources);
 | 
						|
 | 
						|
int MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer *pEvents, Mask mask);
 | 
						|
 | 
						|
void CheckDeviceGrabAndHintWindow(WindowPtr pWin,
 | 
						|
                                  int type,
 | 
						|
                                  deviceKeyButtonPointer *xE,
 | 
						|
                                  GrabPtr grab,
 | 
						|
                                  ClientPtr client,
 | 
						|
                                  Mask deliveryMask);
 | 
						|
 | 
						|
void MaybeStopDeviceHint(DeviceIntPtr dev, ClientPtr client);
 | 
						|
 | 
						|
int DeviceEventSuppressForWindow(WindowPtr pWin,
 | 
						|
                                 ClientPtr client,
 | 
						|
                                 Mask mask,
 | 
						|
                                 int maskndx);
 | 
						|
 | 
						|
void SendEventToAllWindows(DeviceIntPtr dev, Mask mask, xEvent *ev, int count);
 | 
						|
 | 
						|
void TouchRejected(DeviceIntPtr sourcedev,
 | 
						|
                   TouchPointInfoPtr ti,
 | 
						|
                   XID resource,
 | 
						|
                   TouchOwnershipEvent *ev);
 | 
						|
 | 
						|
_X_HIDDEN void XI2EventSwap(xGenericEvent *from, xGenericEvent *to);
 | 
						|
 | 
						|
/* For an event such as MappingNotify which affects client interpretation
 | 
						|
 * of input events sent by device dev, should we notify the client, or
 | 
						|
 * would it merely be irrelevant and confusing? */
 | 
						|
int XIShouldNotify(ClientPtr client,
 | 
						|
                   DeviceIntPtr dev);
 | 
						|
 | 
						|
void XISendDeviceChangedEvent(DeviceIntPtr device,
 | 
						|
                              DeviceChangedEvent *dce);
 | 
						|
 | 
						|
int XISetEventMask(DeviceIntPtr dev,
 | 
						|
                   WindowPtr win,
 | 
						|
                   ClientPtr client,
 | 
						|
                   unsigned int len,
 | 
						|
                   unsigned char *mask);
 | 
						|
 | 
						|
int  XICheckInvalidMaskBits(ClientPtr client,
 | 
						|
                            unsigned char *mask,
 | 
						|
                            int len);
 | 
						|
 | 
						|
void XTestDeviceSendEvents(DeviceIntPtr dev,
 | 
						|
                           int type,
 | 
						|
                           int detail,
 | 
						|
                           int flags,
 | 
						|
                           const ValuatorMask *mask);
 | 
						|
 | 
						|
int XIPropToInt(XIPropertyValuePtr val, int *nelem_return, int **buf_return);
 | 
						|
 | 
						|
int XIPropToFloat(XIPropertyValuePtr val, int *nelem_return, float **buf_return);
 | 
						|
 | 
						|
#endif /* _XSERVER_EXEVENTS_PRIV_H */
 |