Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/linuxbsd_headers/X11/extensions/XI2.h
9905 views
1
/*
2
* Copyright © 2009 Red Hat, Inc.
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a
5
* copy of this software and associated documentation files (the "Software"),
6
* to deal in the Software without restriction, including without limitation
7
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8
* and/or sell copies of the Software, and to permit persons to whom the
9
* Software is furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice (including the next
12
* paragraph) shall be included in all copies or substantial portions of the
13
* Software.
14
*
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21
* DEALINGS IN THE SOFTWARE.
22
*
23
*/
24
25
#ifndef _XI2_H_
26
#define _XI2_H_
27
28
#define XInput_2_0 7
29
/* DO NOT ADD TO THIS LIST. These are libXi-specific defines.
30
See commit libXi-1.4.2-21-ge8531dd */
31
32
#define XI_2_Major 2
33
#define XI_2_Minor 4
34
35
/* Property event flags */
36
#define XIPropertyDeleted 0
37
#define XIPropertyCreated 1
38
#define XIPropertyModified 2
39
40
/* Property modes */
41
#define XIPropModeReplace 0
42
#define XIPropModePrepend 1
43
#define XIPropModeAppend 2
44
45
/* Special property type used for XIGetProperty */
46
#define XIAnyPropertyType 0L
47
48
/* Enter/Leave and Focus In/Out modes */
49
#define XINotifyNormal 0
50
#define XINotifyGrab 1
51
#define XINotifyUngrab 2
52
#define XINotifyWhileGrabbed 3
53
#define XINotifyPassiveGrab 4
54
#define XINotifyPassiveUngrab 5
55
56
/* Enter/Leave and focus In/out detail */
57
#define XINotifyAncestor 0
58
#define XINotifyVirtual 1
59
#define XINotifyInferior 2
60
#define XINotifyNonlinear 3
61
#define XINotifyNonlinearVirtual 4
62
#define XINotifyPointer 5
63
#define XINotifyPointerRoot 6
64
#define XINotifyDetailNone 7
65
66
/* Grab modes */
67
#define XIGrabModeSync 0
68
#define XIGrabModeAsync 1
69
#define XIGrabModeTouch 2
70
71
/* Grab reply status codes */
72
#define XIGrabSuccess 0
73
#define XIAlreadyGrabbed 1
74
#define XIGrabInvalidTime 2
75
#define XIGrabNotViewable 3
76
#define XIGrabFrozen 4
77
78
/* Grab owner events values */
79
#define XIOwnerEvents True
80
#define XINoOwnerEvents False
81
82
/* Passive grab types */
83
#define XIGrabtypeButton 0
84
#define XIGrabtypeKeycode 1
85
#define XIGrabtypeEnter 2
86
#define XIGrabtypeFocusIn 3
87
#define XIGrabtypeTouchBegin 4
88
#define XIGrabtypeGesturePinchBegin 5
89
#define XIGrabtypeGestureSwipeBegin 6
90
91
/* Passive grab modifier */
92
#define XIAnyModifier (1U << 31)
93
#define XIAnyButton 0
94
#define XIAnyKeycode 0
95
96
/* XIAllowEvents event-modes */
97
#define XIAsyncDevice 0
98
#define XISyncDevice 1
99
#define XIReplayDevice 2
100
#define XIAsyncPairedDevice 3
101
#define XIAsyncPair 4
102
#define XISyncPair 5
103
#define XIAcceptTouch 6
104
#define XIRejectTouch 7
105
106
/* DeviceChangedEvent change reasons */
107
#define XISlaveSwitch 1
108
#define XIDeviceChange 2
109
110
/* Hierarchy flags */
111
#define XIMasterAdded (1 << 0)
112
#define XIMasterRemoved (1 << 1)
113
#define XISlaveAdded (1 << 2)
114
#define XISlaveRemoved (1 << 3)
115
#define XISlaveAttached (1 << 4)
116
#define XISlaveDetached (1 << 5)
117
#define XIDeviceEnabled (1 << 6)
118
#define XIDeviceDisabled (1 << 7)
119
120
/* ChangeHierarchy constants */
121
#define XIAddMaster 1
122
#define XIRemoveMaster 2
123
#define XIAttachSlave 3
124
#define XIDetachSlave 4
125
126
#define XIAttachToMaster 1
127
#define XIFloating 2
128
129
/* Valuator modes */
130
#define XIModeRelative 0
131
#define XIModeAbsolute 1
132
133
/* Device types */
134
#define XIMasterPointer 1
135
#define XIMasterKeyboard 2
136
#define XISlavePointer 3
137
#define XISlaveKeyboard 4
138
#define XIFloatingSlave 5
139
140
/* Device classes: classes that are not identical to Xi 1.x classes must be
141
* numbered starting from 8. */
142
#define XIKeyClass 0
143
#define XIButtonClass 1
144
#define XIValuatorClass 2
145
#define XIScrollClass 3
146
#define XITouchClass 8
147
#define XIGestureClass 9
148
149
/* Scroll class types */
150
#define XIScrollTypeVertical 1
151
#define XIScrollTypeHorizontal 2
152
153
/* Scroll class flags */
154
#define XIScrollFlagNoEmulation (1 << 0)
155
#define XIScrollFlagPreferred (1 << 1)
156
157
/* Device event flags (common) */
158
/* Device event flags (key events only) */
159
#define XIKeyRepeat (1 << 16)
160
/* Device event flags (pointer events only) */
161
#define XIPointerEmulated (1 << 16)
162
/* Device event flags (touch events only) */
163
#define XITouchPendingEnd (1 << 16)
164
#define XITouchEmulatingPointer (1 << 17)
165
166
/* Barrier event flags */
167
#define XIBarrierPointerReleased (1 << 0)
168
#define XIBarrierDeviceIsGrabbed (1 << 1)
169
170
/* Gesture pinch event flags */
171
#define XIGesturePinchEventCancelled (1 << 0)
172
173
/* Gesture swipe event flags */
174
#define XIGestureSwipeEventCancelled (1 << 0)
175
176
/* Touch modes */
177
#define XIDirectTouch 1
178
#define XIDependentTouch 2
179
180
/* XI2 event mask macros */
181
#define XISetMask(ptr, event) (((unsigned char*)(ptr))[(event)>>3] |= (1 << ((event) & 7)))
182
#define XIClearMask(ptr, event) (((unsigned char*)(ptr))[(event)>>3] &= ~(1 << ((event) & 7)))
183
#define XIMaskIsSet(ptr, event) (((unsigned char*)(ptr))[(event)>>3] & (1 << ((event) & 7)))
184
#define XIMaskLen(event) (((event) >> 3) + 1)
185
186
/* Fake device ID's for event selection */
187
#define XIAllDevices 0
188
#define XIAllMasterDevices 1
189
190
/* Event types */
191
#define XI_DeviceChanged 1
192
#define XI_KeyPress 2
193
#define XI_KeyRelease 3
194
#define XI_ButtonPress 4
195
#define XI_ButtonRelease 5
196
#define XI_Motion 6
197
#define XI_Enter 7
198
#define XI_Leave 8
199
#define XI_FocusIn 9
200
#define XI_FocusOut 10
201
#define XI_HierarchyChanged 11
202
#define XI_PropertyEvent 12
203
#define XI_RawKeyPress 13
204
#define XI_RawKeyRelease 14
205
#define XI_RawButtonPress 15
206
#define XI_RawButtonRelease 16
207
#define XI_RawMotion 17
208
#define XI_TouchBegin 18 /* XI 2.2 */
209
#define XI_TouchUpdate 19
210
#define XI_TouchEnd 20
211
#define XI_TouchOwnership 21
212
#define XI_RawTouchBegin 22
213
#define XI_RawTouchUpdate 23
214
#define XI_RawTouchEnd 24
215
#define XI_BarrierHit 25 /* XI 2.3 */
216
#define XI_BarrierLeave 26
217
#define XI_GesturePinchBegin 27 /* XI 2.4 */
218
#define XI_GesturePinchUpdate 28
219
#define XI_GesturePinchEnd 29
220
#define XI_GestureSwipeBegin 30
221
#define XI_GestureSwipeUpdate 31
222
#define XI_GestureSwipeEnd 32
223
#define XI_LASTEVENT XI_GestureSwipeEnd
224
/* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
225
* as XI_LASTEVENT if the server is supposed to handle masks etc. for this
226
* type of event. */
227
228
/* Event masks.
229
* Note: the protocol spec defines a mask to be of (1 << type). Clients are
230
* free to create masks by bitshifting instead of using these defines.
231
*/
232
#define XI_DeviceChangedMask (1 << XI_DeviceChanged)
233
#define XI_KeyPressMask (1 << XI_KeyPress)
234
#define XI_KeyReleaseMask (1 << XI_KeyRelease)
235
#define XI_ButtonPressMask (1 << XI_ButtonPress)
236
#define XI_ButtonReleaseMask (1 << XI_ButtonRelease)
237
#define XI_MotionMask (1 << XI_Motion)
238
#define XI_EnterMask (1 << XI_Enter)
239
#define XI_LeaveMask (1 << XI_Leave)
240
#define XI_FocusInMask (1 << XI_FocusIn)
241
#define XI_FocusOutMask (1 << XI_FocusOut)
242
#define XI_HierarchyChangedMask (1 << XI_HierarchyChanged)
243
#define XI_PropertyEventMask (1 << XI_PropertyEvent)
244
#define XI_RawKeyPressMask (1 << XI_RawKeyPress)
245
#define XI_RawKeyReleaseMask (1 << XI_RawKeyRelease)
246
#define XI_RawButtonPressMask (1 << XI_RawButtonPress)
247
#define XI_RawButtonReleaseMask (1 << XI_RawButtonRelease)
248
#define XI_RawMotionMask (1 << XI_RawMotion)
249
#define XI_TouchBeginMask (1 << XI_TouchBegin)
250
#define XI_TouchEndMask (1 << XI_TouchEnd)
251
#define XI_TouchOwnershipChangedMask (1 << XI_TouchOwnership)
252
#define XI_TouchUpdateMask (1 << XI_TouchUpdate)
253
#define XI_RawTouchBeginMask (1 << XI_RawTouchBegin)
254
#define XI_RawTouchEndMask (1 << XI_RawTouchEnd)
255
#define XI_RawTouchUpdateMask (1 << XI_RawTouchUpdate)
256
#define XI_BarrierHitMask (1 << XI_BarrierHit)
257
#define XI_BarrierLeaveMask (1 << XI_BarrierLeave)
258
259
#endif /* _XI2_H_ */
260
261