Blender V5.0
wm_event_types.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9/*
10 * These define have its origin at SGI, where all device defines were written down in device.h.
11 * Blender copied the conventions quite some, and expanded it with internal new defines (ton)
12 */
13
14#pragma once
15
16#include <cstdint>
17
19enum {
24};
25
31enum {
35};
36
43enum wmEventType : int16_t {
44 /* Non-event, for example disabled timer. */
45 EVENT_NONE = 0x0000,
46
47/* ********** Start of Input devices. ********** */
48
49/* Minimum mouse value (inclusive). */
50#define _EVT_MOUSE_MIN 0x0001
51
52 /* MOUSE: 0x000x, 0x001x. */
53 LEFTMOUSE = 0x0001,
54 MIDDLEMOUSE = 0x0002,
55 RIGHTMOUSE = 0x0003,
56 MOUSEMOVE = 0x0004,
57 /* Extra mouse buttons. */
58 BUTTON4MOUSE = 0x0007,
59 BUTTON5MOUSE = 0x0008,
60 /* More mouse buttons - can't use 9 and 10 here (wheel). */
61 BUTTON6MOUSE = 0x0012,
62 BUTTON7MOUSE = 0x0013,
63 /* Extra trackpad gestures (check #WM_EVENT_IS_CONSECUTIVE to detect motion events). */
64 MOUSEPAN = 0x000e,
65 MOUSEZOOM = 0x000f,
66 MOUSEROTATE = 0x0010,
68
69 /* Defaults from ghost. */
70 WHEELUPMOUSE = 0x000a,
72 /* Mapped based on #USER_WHEELZOOMDIR. */
73 WHEELINMOUSE = 0x000c,
74 WHEELOUTMOUSE = 0x000d,
75 /* Successive MOUSEMOVE's are converted to this, so we can easily
76 * ignore all but the most recent MOUSEMOVE (for better performance),
77 * paint and drawing tools however will want to handle these. */
79 /* Horizontal scrolling events. */
80 WHEELLEFTMOUSE = 0x0014, /* 20 */
81 WHEELRIGHTMOUSE = 0x0015, /* 21 */
82
83/* Maximum mouse value (inclusive). */
84#define _EVT_MOUSE_MAX 0x0015 /* 21 */
85
86 /* IME event, GHOST_kEventImeCompositionStart in ghost. */
88 /* 0x0017 is MOUSESMARTZOOM. */
89 /* IME event, GHOST_kEventImeComposition in ghost. */
91 /* IME event, GHOST_kEventImeCompositionEnd in ghost. */
93
94 /* Tablet/Pen Specific Events. */
95 TABLET_STYLUS = 0x001a,
96 TABLET_ERASER = 0x001b,
97
98/* *** Start of keyboard codes. *** */
99
100/* Minimum keyboard value (inclusive). */
101#define _EVT_KEYBOARD_MIN 0x0020
102
103 /* Standard keyboard.
104 * - 0x0020 to 0x00ff [#_EVT_KEYBOARD_MIN to #_EVT_KEYBOARD_MAX] inclusive - for keys.
105 * - 0x012c to 0x0143 [#EVT_F1KEY to #EVT_F24KEY] inclusive - for function keys. */
106
107 EVT_ZEROKEY = 0x0030, /* '0' (48). */
108 EVT_ONEKEY = 0x0031, /* '1' (49). */
109 EVT_TWOKEY = 0x0032, /* '2' (50). */
110 EVT_THREEKEY = 0x0033, /* '3' (51). */
111 EVT_FOURKEY = 0x0034, /* '4' (52). */
112 EVT_FIVEKEY = 0x0035, /* '5' (53). */
113 EVT_SIXKEY = 0x0036, /* '6' (54). */
114 EVT_SEVENKEY = 0x0037, /* '7' (55). */
115 EVT_EIGHTKEY = 0x0038, /* '8' (56). */
116 EVT_NINEKEY = 0x0039, /* '9' (57). */
117
118 EVT_AKEY = 0x0061, /* 'a' (97). */
119 EVT_BKEY = 0x0062, /* 'b' (98). */
120 EVT_CKEY = 0x0063, /* 'c' (99). */
121 EVT_DKEY = 0x0064, /* 'd' (100). */
122 EVT_EKEY = 0x0065, /* 'e' (101). */
123 EVT_FKEY = 0x0066, /* 'f' (102). */
124 EVT_GKEY = 0x0067, /* 'g' (103). */
125 EVT_HKEY = 0x0068, /* 'h' (104). */
126 EVT_IKEY = 0x0069, /* 'i' (105). */
127 EVT_JKEY = 0x006a, /* 'j' (106). */
128 EVT_KKEY = 0x006b, /* 'k' (107). */
129 EVT_LKEY = 0x006c, /* 'l' (108). */
130 EVT_MKEY = 0x006d, /* 'm' (109). */
131 EVT_NKEY = 0x006e, /* 'n' (110). */
132 EVT_OKEY = 0x006f, /* 'o' (111). */
133 EVT_PKEY = 0x0070, /* 'p' (112). */
134 EVT_QKEY = 0x0071, /* 'q' (113). */
135 EVT_RKEY = 0x0072, /* 'r' (114). */
136 EVT_SKEY = 0x0073, /* 's' (115). */
137 EVT_TKEY = 0x0074, /* 't' (116). */
138 EVT_UKEY = 0x0075, /* 'u' (117). */
139 EVT_VKEY = 0x0076, /* 'v' (118). */
140 EVT_WKEY = 0x0077, /* 'w' (119). */
141 EVT_XKEY = 0x0078, /* 'x' (120). */
142 EVT_YKEY = 0x0079, /* 'y' (121). */
143 EVT_ZKEY = 0x007a, /* 'z' (122). */
144
145 EVT_LEFTARROWKEY = 0x0089, /* 137 */
146 EVT_DOWNARROWKEY = 0x008a, /* 138 */
147 EVT_RIGHTARROWKEY = 0x008b, /* 139 */
148 EVT_UPARROWKEY = 0x008c, /* 140 */
149
150 EVT_PAD0 = 0x0096, /* 150 */
151 EVT_PAD1 = 0x0097, /* 151 */
152 EVT_PAD2 = 0x0098, /* 152 */
153 EVT_PAD3 = 0x0099, /* 153 */
154 EVT_PAD4 = 0x009a, /* 154 */
155 EVT_PAD5 = 0x009b, /* 155 */
156 EVT_PAD6 = 0x009c, /* 156 */
157 EVT_PAD7 = 0x009d, /* 157 */
158 EVT_PAD8 = 0x009e, /* 158 */
159 EVT_PAD9 = 0x009f, /* 159 */
160 /* Key-pad keys. */
161 EVT_PADASTERKEY = 0x00a0, /* 160 */
162 EVT_PADSLASHKEY = 0x00a1, /* 161 */
163 EVT_PADMINUS = 0x00a2, /* 162 */
164 EVT_PADENTER = 0x00a3, /* 163 */
165 EVT_PADPLUSKEY = 0x00a4, /* 164 */
166
167 EVT_PAUSEKEY = 0x00a5, /* 165 */
168 EVT_INSERTKEY = 0x00a6, /* 166 */
169 EVT_HOMEKEY = 0x00a7, /* 167 */
170 EVT_PAGEUPKEY = 0x00a8, /* 168 */
171 EVT_PAGEDOWNKEY = 0x00a9, /* 169 */
172 EVT_ENDKEY = 0x00aa, /* 170 */
173 /* Note that 'PADPERIOD' is defined out-of-order. */
174 EVT_UNKNOWNKEY = 0x00ab, /* 171 */
176 EVT_OSKEY = 0x00ac, /* 172 */
177 EVT_GRLESSKEY = 0x00ad, /* 173 */
178 /* Media keys. */
179 EVT_MEDIAPLAY = 0x00ae, /* 174 */
180 EVT_MEDIASTOP = 0x00af, /* 175 */
181 EVT_MEDIAFIRST = 0x00b0, /* 176 */
182 EVT_MEDIALAST = 0x00b1, /* 177 */
183 /* Menu/App key. */
184 EVT_APPKEY = 0x00b2, /* 178 */
185
187 EVT_HYPER = 0x00b3, /* 179 */
188
189 EVT_PADPERIOD = 0x00c7, /* 199 */
190
191 EVT_CAPSLOCKKEY = 0x00d3, /* 211 */
192
193 /* Modifier keys. */
194 EVT_LEFTCTRLKEY = 0x00d4, /* 212 */
195 EVT_LEFTALTKEY = 0x00d5, /* 213 */
196 EVT_RIGHTALTKEY = 0x00d6, /* 214 */
197 EVT_RIGHTCTRLKEY = 0x00d7, /* 215 */
198 EVT_RIGHTSHIFTKEY = 0x00d8, /* 216 */
199 EVT_LEFTSHIFTKEY = 0x00d9, /* 217 */
200 /* Special characters. */
201 EVT_ESCKEY = 0x00da, /* 218 */
202 EVT_TABKEY = 0x00db, /* 219 */
203 EVT_RETKEY = 0x00dc, /* 220 */
204 EVT_SPACEKEY = 0x00dd, /* 221 */
205 EVT_LINEFEEDKEY = 0x00de, /* 222 */
206 EVT_BACKSPACEKEY = 0x00df, /* 223 */
207 EVT_DELKEY = 0x00e0, /* 224 */
208 EVT_SEMICOLONKEY = 0x00e1, /* 225 */
209 EVT_PERIODKEY = 0x00e2, /* 226 */
210 EVT_COMMAKEY = 0x00e3, /* 227 */
211 EVT_QUOTEKEY = 0x00e4, /* 228 */
212 EVT_ACCENTGRAVEKEY = 0x00e5, /* 229 */
213 EVT_MINUSKEY = 0x00e6, /* 230 */
214 EVT_PLUSKEY = 0x00e7, /* 231 */
215 EVT_SLASHKEY = 0x00e8, /* 232 */
216 EVT_BACKSLASHKEY = 0x00e9, /* 233 */
217 EVT_EQUALKEY = 0x00ea, /* 234 */
218 EVT_LEFTBRACKETKEY = 0x00eb, /* 235 */
219 EVT_RIGHTBRACKETKEY = 0x00ec, /* 236 */
220
221/* Maximum keyboard value (inclusive). */
222#define _EVT_KEYBOARD_MAX 0x00ff /* 255 */
223
224 /* WARNING: 0x010x are used for internal events
225 * (but are still stored in the key-map). */
226
227 EVT_F1KEY = 0x012c, /* 300 */
228 EVT_F2KEY = 0x012d, /* 301 */
229 EVT_F3KEY = 0x012e, /* 302 */
230 EVT_F4KEY = 0x012f, /* 303 */
231 EVT_F5KEY = 0x0130, /* 304 */
232 EVT_F6KEY = 0x0131, /* 305 */
233 EVT_F7KEY = 0x0132, /* 306 */
234 EVT_F8KEY = 0x0133, /* 307 */
235 EVT_F9KEY = 0x0134, /* 308 */
236 EVT_F10KEY = 0x0135, /* 309 */
237 EVT_F11KEY = 0x0136, /* 310 */
238 EVT_F12KEY = 0x0137, /* 311 */
239 EVT_F13KEY = 0x0138, /* 312 */
240 EVT_F14KEY = 0x0139, /* 313 */
241 EVT_F15KEY = 0x013a, /* 314 */
242 EVT_F16KEY = 0x013b, /* 315 */
243 EVT_F17KEY = 0x013c, /* 316 */
244 EVT_F18KEY = 0x013d, /* 317 */
245 EVT_F19KEY = 0x013e, /* 318 */
246 EVT_F20KEY = 0x013f, /* 319 */
247 EVT_F21KEY = 0x0140, /* 320 */
248 EVT_F22KEY = 0x0141, /* 321 */
249 EVT_F23KEY = 0x0142, /* 322 */
250 EVT_F24KEY = 0x0143, /* 323 */
251
252 /* *** End of keyboard codes. *** */
253
254 /* NDOF (from "Space Navigator" & friends)
255 * These must be kept in sync with `GHOST_NDOFManager.hh`.
256 * Ordering matters, exact values do not. */
257
262 NDOF_MOTION = 0x0190, /* 400 */
263
264#define _NDOF_MIN NDOF_MOTION
265#define _NDOF_BUTTON_MIN NDOF_BUTTON_MENU
266
267 /* These two are available from any 3Dconnexion device. */
268
269 NDOF_BUTTON_MENU = 0x0191, /* 401 */
270 NDOF_BUTTON_FIT = 0x0192, /* 402 */
271 /* Standard views. */
272 NDOF_BUTTON_TOP = 0x0193, /* 403 */
273 NDOF_BUTTON_BOTTOM = 0x0194, /* 404 */
274 NDOF_BUTTON_LEFT = 0x0195, /* 405 */
275 NDOF_BUTTON_RIGHT = 0x0196, /* 406 */
276 NDOF_BUTTON_FRONT = 0x0197, /* 407 */
277 NDOF_BUTTON_BACK = 0x0198, /* 408 */
278 /* More views. */
279 NDOF_BUTTON_ISO1 = 0x0199, /* 409 */
280 NDOF_BUTTON_ISO2 = 0x019a, /* 410 */
281 /* 90 degree rotations. */
282 NDOF_BUTTON_ROLL_CW = 0x019b, /* 411 */
283 NDOF_BUTTON_ROLL_CCW = 0x019c, /* 412 */
284 NDOF_BUTTON_SPIN_CW = 0x019d, /* 413 */
285 NDOF_BUTTON_SPIN_CCW = 0x019e, /* 414 */
286 NDOF_BUTTON_TILT_CW = 0x019f, /* 415 */
287 NDOF_BUTTON_TILT_CCW = 0x01a0, /* 416 */
288 /* Device control. */
289 NDOF_BUTTON_ROTATE = 0x01a1, /* 417 */
290 NDOF_BUTTON_PANZOOM = 0x01a2, /* 418 */
291 NDOF_BUTTON_DOMINANT = 0x01a3, /* 419 */
292 NDOF_BUTTON_PLUS = 0x01a4, /* 420 */
293 NDOF_BUTTON_MINUS = 0x01a5, /* 421 */
294 /* Restore views. */
295 NDOF_BUTTON_V1 = 0x01a6, /* 422 */
296 NDOF_BUTTON_V2 = 0x01a7, /* 423 */
297 NDOF_BUTTON_V3 = 0x01a8, /* 424 */
298 /* General-purpose buttons. */
299 NDOF_BUTTON_1 = 0x01aa, /* 426 */
300 NDOF_BUTTON_2 = 0x01ab, /* 427 */
301 NDOF_BUTTON_3 = 0x01ac, /* 428 */
302 NDOF_BUTTON_4 = 0x01ad, /* 429 */
303 NDOF_BUTTON_5 = 0x01ae, /* 430 */
304 NDOF_BUTTON_6 = 0x01af, /* 431 */
305 NDOF_BUTTON_7 = 0x01b0, /* 432 */
306 NDOF_BUTTON_8 = 0x01b1, /* 433 */
307 NDOF_BUTTON_9 = 0x01b2, /* 434 */
308 NDOF_BUTTON_10 = 0x01b3, /* 435 */
309 /* More general-purpose buttons. */
310 NDOF_BUTTON_11 = 0x01b4, /* 436 */
311 NDOF_BUTTON_12 = 0x01b5, /* 437 */
312
313/* Disabled as GHOST converts these to keyboard events
314 * which use regular keyboard event handling logic. */
315#if 0
316 /* Keyboard emulation. */
317 NDOF_BUTTON_ESC = 0x01b6, /* 438 */
318 NDOF_BUTTON_ENTER = 0x01b7, /* 439 */
319 NDOF_BUTTON_DELETE = 0x01b8, /* 440 */
320 NDOF_BUTTON_TAB = 0x01b9, /* 441 */
321 NDOF_BUTTON_SPACE = 0x01ba, /* 442 */
322 NDOF_BUTTON_ALT = 0x01bb, /* 443 */
323 NDOF_BUTTON_SHIFT = 0x01bc, /* 444 */
324 NDOF_BUTTON_CTRL = 0x01bd, /* 445 */
325#endif
326
327 /* Store views. */
328 NDOF_BUTTON_SAVE_V1 = 0x01be, /* 446 */
329 NDOF_BUTTON_SAVE_V2 = 0x01bf, /* 447 */
330 NDOF_BUTTON_SAVE_V3 = 0x01c0, /* 448 */
331
332#define _NDOF_MAX NDOF_BUTTON_SAVE_V3
333#define _NDOF_BUTTON_MAX NDOF_BUTTON_SAVE_V3
334
335 /* ********** End of Input devices. ********** */
336
337 /* ********** Start of Blender internal events. ********** */
338
339 /* XXX Those are mixed inside keyboard 'area'! */
340 /* System: 0x010x. */
341 // INPUTCHANGE = 0x0103, /* Input connected or disconnected, (259). */ /* UNUSED. */
342 WINDEACTIVATE = 0x0104, /* Window is deactivated, focus lost, (260). */
343 /* Timer: 0x011x. */
344 TIMER = 0x0110, /* Timer event, passed on to all queues (272). */
345 TIMER0 = 0x0111, /* Timer event, slot for internal use (273). */
346 TIMER1 = 0x0112, /* Timer event, slot for internal use (274). */
347 TIMER2 = 0x0113, /* Timer event, slot for internal use (275). */
348 TIMERJOBS = 0x0114, /* Timer event, jobs system (276). */
349 TIMERAUTOSAVE = 0x0115, /* Timer event, autosave (277). */
350 TIMERREPORT = 0x0116, /* Timer event, reports (278). */
351 TIMERREGION = 0x0117, /* Timer event, region slide in/out (279). */
352 TIMERNOTIFIER = 0x0118, /* Timer event, notifier sender (280). */
353/* Timer max (287). */
354#define _TIMER_MAX 0x011F
355
356 /* Action-zones, tweak, gestures: 0x500x, 0x501x
357 * Keep in sync with #IS_EVENT_ACTIONZONE(...). */
358 EVT_ACTIONZONE_AREA = 0x5000, /* 20480 */
359 EVT_ACTIONZONE_REGION = 0x5001, /* 20481 */
360 EVT_ACTIONZONE_FULLSCREEN = 0x5011, /* 20497 */
361
362 /* NOTE: these values are saved in key-map files, do not change them but just add new ones. */
363
364 /* 0x5011 is taken, see #EVT_ACTIONZONE_FULLSCREEN. */
365
366 /* Misc Blender internals: 0x502x. */
367 EVT_FILESELECT = 0x5020, /* 20512 */
368 EVT_BUT_OPEN = 0x5021, /* 20513 */
369 EVT_MODAL_MAP = 0x5022, /* 20514 */
370 EVT_DROP = 0x5023, /* 20515 */
371 /* When value is 0, re-activate, when 1, don't re-activate the button under the cursor. */
372 EVT_BUT_CANCEL = 0x5024, /* 20516 */
373
374 /* Could become gizmo callback. */
375 EVT_GIZMO_UPDATE = 0x5025, /* 20517 */
376
377 /* XR events: 0x503x. */
378 EVT_XR_ACTION = 0x5030, /* 20528 */
379 /* ********** End of Blender internal events. ********** */
380};
381
382/* -------------------------------------------------------------------- */
385
387#define ISTIMER(event_type) ((event_type) >= TIMER && (event_type) <= _TIMER_MAX)
388
390#define ISKEYBOARD(event_type) \
391 (((event_type) >= _EVT_KEYBOARD_MIN && (event_type) <= _EVT_KEYBOARD_MAX) || \
392 ((event_type) >= EVT_F1KEY && (event_type) <= EVT_F24KEY))
393
402#define ISKEYBOARD_OR_BUTTON(event_type) \
403 (ISMOUSE_BUTTON(event_type) || ISKEYBOARD(event_type) || ISNDOF_BUTTON(event_type))
404
406#define ISKEYMODIFIER(event_type) \
407 (((event_type) >= EVT_LEFTCTRLKEY && (event_type) <= EVT_LEFTSHIFTKEY) || \
408 ELEM((event_type), EVT_OSKEY, EVT_HYPER))
409
417#define ISMOUSE(event_type) ((event_type) >= _EVT_MOUSE_MIN && (event_type) <= _EVT_MOUSE_MAX)
419#define ISMOUSE_MOTION(event_type) ELEM(event_type, MOUSEMOVE, INBETWEEN_MOUSEMOVE)
421#define ISMOUSE_BUTTON(event_type) \
422 (ELEM(event_type, \
423 LEFTMOUSE, \
424 MIDDLEMOUSE, \
425 RIGHTMOUSE, \
426 BUTTON4MOUSE, \
427 BUTTON5MOUSE, \
428 BUTTON6MOUSE, \
429 BUTTON7MOUSE))
430
431#define ISMOUSE_WHEEL(event_type) \
432 (((event_type) >= WHEELUPMOUSE && (event_type) <= WHEELOUTMOUSE) || \
433 ELEM((event_type), WHEELLEFTMOUSE, WHEELRIGHTMOUSE))
434
435#define ISMOUSE_GESTURE(event_type) ((event_type) >= MOUSEPAN && (event_type) <= MOUSESMARTZOOM)
436
438#define ISNDOF(event_type) ((event_type) >= _NDOF_MIN && (event_type) <= _NDOF_MAX)
439#define ISNDOF_BUTTON(event_type) \
440 ((event_type) >= _NDOF_BUTTON_MIN && (event_type) <= _NDOF_BUTTON_MAX)
441
442#define IS_EVENT_ACTIONZONE(event_type) \
443 ELEM(event_type, EVT_ACTIONZONE_AREA, EVT_ACTIONZONE_REGION, EVT_ACTIONZONE_FULLSCREEN)
444
446#define ISHOTKEY(event_type) \
447 ((ISKEYBOARD(event_type) || ISMOUSE_BUTTON(event_type) || ISMOUSE_WHEEL(event_type) || \
448 ISNDOF_BUTTON(event_type)) && \
449 (ISKEYMODIFIER(event_type) == false))
450
469#define EVT_TYPE_MASK_ALL \
470 (EVT_TYPE_MASK_KEYBOARD | EVT_TYPE_MASK_MOUSE | EVT_TYPE_MASK_NDOF | EVT_TYPE_MASK_ACTIONZONE)
471
472#define EVT_TYPE_MASK_HOTKEY_INCLUDE \
473 (EVT_TYPE_MASK_KEYBOARD | EVT_TYPE_MASK_MOUSE | EVT_TYPE_MASK_NDOF)
474#define EVT_TYPE_MASK_HOTKEY_EXCLUDE EVT_TYPE_MASK_KEYBOARD_MODIFIER
475
476bool WM_event_type_mask_test(int event_type, enum eEventType_Mask mask);
477
479
480/* -------------------------------------------------------------------- */
483
484/* Gestures. */
485
486/* File select. */
487enum {
492};
493
501enum {
504
508
511
516
519
523
526
529
532
535};
536
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
@ EVT_FILESELECT_FULL_OPEN
@ EVT_FILESELECT_CANCEL
@ EVT_FILESELECT_EXTERNAL_CANCEL
@ EVT_FILESELECT_EXEC
@ EVT_DATA_NDOF_MOTION
@ EVT_DATA_DRAGDROP
@ EVT_DATA_TIMER
@ EVT_DATA_XR
@ EVT_TABLET_NONE
@ EVT_TABLET_STYLUS
@ EVT_TABLET_ERASER
eEventType_Mask
@ EVT_TYPE_MASK_ACTIONZONE
@ EVT_TYPE_MASK_KEYBOARD_MODIFIER
@ EVT_TYPE_MASK_NDOF
@ EVT_TYPE_MASK_MOUSE_WHEEL
@ EVT_TYPE_MASK_MOUSE_GESTURE
@ EVT_TYPE_MASK_MOUSE_BUTTON
@ EVT_TYPE_MASK_MOUSE
@ EVT_TYPE_MASK_KEYBOARD
wmEventType
@ EVT_PAD8
@ EVT_F14KEY
@ EVT_PAD2
@ MOUSEPAN
@ BUTTON7MOUSE
@ RIGHTMOUSE
@ EVT_SIXKEY
@ EVT_BUT_CANCEL
@ EVT_QUOTEKEY
@ EVT_PADPERIOD
@ NDOF_BUTTON_SPIN_CW
@ EVT_OKEY
@ NDOF_BUTTON_TILT_CCW
@ TIMER
@ EVT_EKEY
@ EVT_PAD4
@ EVT_JKEY
@ EVT_PADASTERKEY
@ NDOF_BUTTON_7
@ BUTTON6MOUSE
@ EVT_BUT_OPEN
@ NDOF_BUTTON_V2
@ EVT_F18KEY
@ EVT_PLUSKEY
@ EVT_PAD0
@ EVT_F7KEY
@ EVT_FOURKEY
@ NDOF_BUTTON_2
@ EVT_YKEY
@ EVT_MODAL_MAP
@ EVT_RIGHTCTRLKEY
@ WM_IME_COMPOSITE_EVENT
@ EVT_F17KEY
@ EVT_SKEY
@ EVT_VKEY
@ WHEELLEFTMOUSE
@ MOUSEZOOM
@ TIMERNOTIFIER
@ NDOF_BUTTON_8
@ EVT_IKEY
@ NDOF_BUTTON_MENU
@ EVT_F1KEY
@ EVT_PERIODKEY
@ EVT_PADSLASHKEY
@ EVT_XKEY
@ WHEELRIGHTMOUSE
@ NDOF_BUTTON_1
@ EVT_COMMAKEY
@ NDOF_BUTTON_BOTTOM
@ EVT_MEDIAPLAY
@ EVT_LEFTBRACKETKEY
@ EVT_ACTIONZONE_FULLSCREEN
@ EVT_MEDIAFIRST
@ EVT_F23KEY
@ EVT_ZEROKEY
@ EVT_F10KEY
@ EVT_FKEY
@ EVT_PAD9
@ EVT_DELKEY
@ EVT_SEVENKEY
@ TIMERJOBS
@ NDOF_BUTTON_V1
@ EVT_F20KEY
@ EVT_CKEY
@ EVT_F2KEY
@ EVT_GKEY
@ EVT_ACTIONZONE_REGION
@ EVT_KKEY
@ EVT_TABKEY
@ EVT_DOWNARROWKEY
@ NDOF_BUTTON_BACK
@ EVT_UKEY
@ EVT_MEDIASTOP
@ EVT_AKEY
@ EVT_PAD3
@ EVT_MINUSKEY
@ MOUSEROTATE
@ WHEELUPMOUSE
@ EVT_PAGEUPKEY
@ EVT_OSKEY
@ EVT_F4KEY
@ EVT_PAGEDOWNKEY
@ NDOF_BUTTON_5
@ TIMERAUTOSAVE
@ TIMER1
@ EVT_F8KEY
@ NDOF_BUTTON_SAVE_V2
@ NDOF_BUTTON_RIGHT
@ EVT_LEFTCTRLKEY
@ NDOF_BUTTON_ROLL_CW
@ NDOF_BUTTON_10
@ TABLET_ERASER
@ EVT_EQUALKEY
@ NDOF_BUTTON_3
@ EVT_RIGHTARROWKEY
@ EVT_F6KEY
@ EVT_F5KEY
@ EVT_PADENTER
@ EVT_F22KEY
@ EVT_F19KEY
@ EVT_NINEKEY
@ NDOF_BUTTON_PLUS
@ EVT_SPACEKEY
@ EVT_CAPSLOCKKEY
@ BUTTON4MOUSE
@ WHEELDOWNMOUSE
@ EVT_PAD6
@ EVT_ACTIONZONE_AREA
@ NDOF_BUTTON_ISO2
@ EVT_PAD5
@ EVT_HOMEKEY
@ TABLET_STYLUS
@ EVENT_NONE
@ MOUSEMOVE
@ EVT_FILESELECT
@ EVT_RIGHTBRACKETKEY
@ EVT_WKEY
@ NDOF_BUTTON_PANZOOM
@ EVT_UNKNOWNKEY
@ WM_IME_COMPOSITE_END
@ EVT_ENDKEY
@ EVT_RIGHTALTKEY
@ EVT_MEDIALAST
@ EVT_MKEY
@ WM_IME_COMPOSITE_START
@ EVT_LINEFEEDKEY
@ TIMER2
@ EVT_TKEY
@ EVT_HKEY
@ MOUSESMARTZOOM
@ NDOF_BUTTON_MINUS
@ EVT_BACKSLASHKEY
@ EVT_FIVEKEY
@ EVT_APPKEY
@ EVT_F24KEY
@ TIMER0
@ EVT_ACCENTGRAVEKEY
@ EVT_PADMINUS
@ EVT_F21KEY
@ EVT_ONEKEY
@ EVT_UPARROWKEY
@ LEFTMOUSE
@ EVT_F11KEY
@ EVT_SLASHKEY
@ EVT_EIGHTKEY
@ EVT_F13KEY
@ NDOF_BUTTON_DOMINANT
@ EVT_F15KEY
@ EVT_LEFTARROWKEY
@ NDOF_MOTION
@ EVT_INSERTKEY
@ EVT_NKEY
@ EVT_QKEY
@ MIDDLEMOUSE
@ TIMERREPORT
@ NDOF_BUTTON_TILT_CW
@ EVT_LEFTALTKEY
@ EVT_ZKEY
@ EVT_ESCKEY
@ NDOF_BUTTON_9
@ NDOF_BUTTON_LEFT
@ NDOF_BUTTON_FIT
@ EVT_THREEKEY
@ WHEELOUTMOUSE
@ NDOF_BUTTON_V3
@ EVT_BACKSPACEKEY
@ WHEELINMOUSE
@ EVT_F12KEY
@ INBETWEEN_MOUSEMOVE
@ EVT_DKEY
@ NDOF_BUTTON_SAVE_V3
@ EVT_F16KEY
@ EVT_GIZMO_UPDATE
@ EVT_DROP
@ NDOF_BUTTON_4
@ EVT_PAD1
@ EVT_TWOKEY
@ EVT_GRLESSKEY
@ EVT_LKEY
@ NDOF_BUTTON_12
@ EVT_RIGHTSHIFTKEY
@ NDOF_BUTTON_FRONT
@ NDOF_BUTTON_SAVE_V1
@ NDOF_BUTTON_11
@ EVT_PAUSEKEY
@ EVT_PAD7
@ NDOF_BUTTON_SPIN_CCW
@ EVT_LEFTSHIFTKEY
@ NDOF_BUTTON_ISO1
@ EVT_PADPLUSKEY
@ NDOF_BUTTON_6
@ EVT_F3KEY
@ NDOF_BUTTON_TOP
@ EVT_F9KEY
@ EVT_RKEY
@ WINDEACTIVATE
@ EVT_SEMICOLONKEY
@ EVT_BKEY
@ EVT_PKEY
@ EVT_XR_ACTION
@ TIMERREGION
@ NDOF_BUTTON_ROTATE
@ EVT_HYPER
@ EVT_RETKEY
@ BUTTON5MOUSE
@ NDOF_BUTTON_ROLL_CCW
@ GESTURE_MODAL_CIRCLE_SIZE
@ GESTURE_MODAL_OUT
@ GESTURE_MODAL_SNAP
@ GESTURE_MODAL_CIRCLE_ADD
@ GESTURE_MODAL_CANCEL
@ GESTURE_MODAL_CIRCLE_SUB
@ GESTURE_MODAL_MOVE
@ GESTURE_MODAL_NOP
@ GESTURE_MODAL_DESELECT
@ GESTURE_MODAL_CONFIRM
@ GESTURE_MODAL_IN
@ GESTURE_MODAL_FLIP
@ GESTURE_MODAL_BEGIN
@ GESTURE_MODAL_SELECT
bool WM_event_type_mask_test(int event_type, enum eEventType_Mask mask)