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 */
 |