Blender  V2.93
wm_event_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
21 /*
22  * These define have its origin at sgi, where all device defines were written down in device.h.
23  * Blender copied the conventions quite some, and expanded it with internal new defines (ton)
24  */
25 
26 #pragma once
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 /* customdata type */
33 enum {
37 };
38 
39 /* tablet active, matches GHOST_TTabletMode */
40 enum {
44 };
45 
52 enum {
53  /* non-event, for example disabled timer */
54  EVENT_NONE = 0x0000,
55 
56  /* ********** Start of Input devices. ********** */
57 
58  /* MOUSE : 0x000x, 0x001x */
59  LEFTMOUSE = 0x0001,
60  MIDDLEMOUSE = 0x0002,
61  RIGHTMOUSE = 0x0003,
62  MOUSEMOVE = 0x0004,
63  /* Extra mouse buttons */
64  BUTTON4MOUSE = 0x0007,
65  BUTTON5MOUSE = 0x0008,
66  /* More mouse buttons - can't use 9 and 10 here (wheel) */
67  BUTTON6MOUSE = 0x0012,
68  BUTTON7MOUSE = 0x0013,
69  /* Extra trackpad gestures */
70  MOUSEPAN = 0x000e,
71  MOUSEZOOM = 0x000f,
72  MOUSEROTATE = 0x0010,
73  MOUSESMARTZOOM = 0x0017,
74 
75  /* defaults from ghost */
76  WHEELUPMOUSE = 0x000a,
77  WHEELDOWNMOUSE = 0x000b,
78  /* mapped with userdef */
79  WHEELINMOUSE = 0x000c,
80  WHEELOUTMOUSE = 0x000d,
81  /* Successive MOUSEMOVE's are converted to this, so we can easily
82  * ignore all but the most recent MOUSEMOVE (for better performance),
83  * paint and drawing tools however will want to handle these. */
85 
86  /* IME event, GHOST_kEventImeCompositionStart in ghost */
88  /* IME event, GHOST_kEventImeComposition in ghost */
90  /* IME event, GHOST_kEventImeCompositionEnd in ghost */
92 
93  /* Tablet/Pen Specific Events */
94  TABLET_STYLUS = 0x001a,
95  TABLET_ERASER = 0x001b,
96 
97  /* *** Start of keyboard codes. *** */
98 
99  /* Standard keyboard.
100  * From 0x0020 to 0x00ff, and 0x012c to 0x0143 for function keys! */
101 
102  EVT_ZEROKEY = 0x0030, /* '0' (48). */
103  EVT_ONEKEY = 0x0031, /* '1' (49). */
104  EVT_TWOKEY = 0x0032, /* '2' (50). */
105  EVT_THREEKEY = 0x0033, /* '3' (51). */
106  EVT_FOURKEY = 0x0034, /* '4' (52). */
107  EVT_FIVEKEY = 0x0035, /* '5' (53). */
108  EVT_SIXKEY = 0x0036, /* '6' (54). */
109  EVT_SEVENKEY = 0x0037, /* '7' (55). */
110  EVT_EIGHTKEY = 0x0038, /* '8' (56). */
111  EVT_NINEKEY = 0x0039, /* '9' (57). */
112 
113  EVT_AKEY = 0x0061, /* 'a' (97). */
114  EVT_BKEY = 0x0062, /* 'b' (98). */
115  EVT_CKEY = 0x0063, /* 'c' (99). */
116  EVT_DKEY = 0x0064, /* 'd' (100). */
117  EVT_EKEY = 0x0065, /* 'e' (101). */
118  EVT_FKEY = 0x0066, /* 'f' (102). */
119  EVT_GKEY = 0x0067, /* 'g' (103). */
120  EVT_HKEY = 0x0068, /* 'h' (104). */
121  EVT_IKEY = 0x0069, /* 'i' (105). */
122  EVT_JKEY = 0x006a, /* 'j' (106). */
123  EVT_KKEY = 0x006b, /* 'k' (107). */
124  EVT_LKEY = 0x006c, /* 'l' (108). */
125  EVT_MKEY = 0x006d, /* 'm' (109). */
126  EVT_NKEY = 0x006e, /* 'n' (110). */
127  EVT_OKEY = 0x006f, /* 'o' (111). */
128  EVT_PKEY = 0x0070, /* 'p' (112). */
129  EVT_QKEY = 0x0071, /* 'q' (113). */
130  EVT_RKEY = 0x0072, /* 'r' (114). */
131  EVT_SKEY = 0x0073, /* 's' (115). */
132  EVT_TKEY = 0x0074, /* 't' (116). */
133  EVT_UKEY = 0x0075, /* 'u' (117). */
134  EVT_VKEY = 0x0076, /* 'v' (118). */
135  EVT_WKEY = 0x0077, /* 'w' (119). */
136  EVT_XKEY = 0x0078, /* 'x' (120). */
137  EVT_YKEY = 0x0079, /* 'y' (121). */
138  EVT_ZKEY = 0x007a, /* 'z' (122). */
139 
140  EVT_LEFTARROWKEY = 0x0089, /* 137 */
141  EVT_DOWNARROWKEY = 0x008a, /* 138 */
142  EVT_RIGHTARROWKEY = 0x008b, /* 139 */
143  EVT_UPARROWKEY = 0x008c, /* 140 */
144 
145  EVT_PAD0 = 0x0096, /* 150 */
146  EVT_PAD1 = 0x0097, /* 151 */
147  EVT_PAD2 = 0x0098, /* 152 */
148  EVT_PAD3 = 0x0099, /* 153 */
149  EVT_PAD4 = 0x009a, /* 154 */
150  EVT_PAD5 = 0x009b, /* 155 */
151  EVT_PAD6 = 0x009c, /* 156 */
152  EVT_PAD7 = 0x009d, /* 157 */
153  EVT_PAD8 = 0x009e, /* 158 */
154  EVT_PAD9 = 0x009f, /* 159 */
155  /* Key-pad keys. */
156  EVT_PADASTERKEY = 0x00a0, /* 160 */
157  EVT_PADSLASHKEY = 0x00a1, /* 161 */
158  EVT_PADMINUS = 0x00a2, /* 162 */
159  EVT_PADENTER = 0x00a3, /* 163 */
160  EVT_PADPLUSKEY = 0x00a4, /* 164 */
161 
162  EVT_PAUSEKEY = 0x00a5, /* 165 */
163  EVT_INSERTKEY = 0x00a6, /* 166 */
164  EVT_HOMEKEY = 0x00a7, /* 167 */
165  EVT_PAGEUPKEY = 0x00a8, /* 168 */
166  EVT_PAGEDOWNKEY = 0x00a9, /* 169 */
167  EVT_ENDKEY = 0x00aa, /* 170 */
168  /* Note that 'PADPERIOD' is defined out-of-order. */
169  EVT_UNKNOWNKEY = 0x00ab, /* 171 */
170  EVT_OSKEY = 0x00ac, /* 172 */
171  EVT_GRLESSKEY = 0x00ad, /* 173 */
172  /* Media keys. */
173  EVT_MEDIAPLAY = 0x00ae, /* 174 */
174  EVT_MEDIASTOP = 0x00af, /* 175 */
175  EVT_MEDIAFIRST = 0x00b0, /* 176 */
176  EVT_MEDIALAST = 0x00b1, /* 177 */
177  /* Menu/App key. */
178  EVT_APPKEY = 0x00b2, /* 178 */
179 
180  EVT_PADPERIOD = 0x00c7, /* 199 */
181 
182  EVT_CAPSLOCKKEY = 0x00d3, /* 211 */
183 
184  /* Modifier keys. */
185  EVT_LEFTCTRLKEY = 0x00d4, /* 212 */
186  EVT_LEFTALTKEY = 0x00d5, /* 213 */
187  EVT_RIGHTALTKEY = 0x00d6, /* 214 */
188  EVT_RIGHTCTRLKEY = 0x00d7, /* 215 */
189  EVT_RIGHTSHIFTKEY = 0x00d8, /* 216 */
190  EVT_LEFTSHIFTKEY = 0x00d9, /* 217 */
191  /* Special characters. */
192  EVT_ESCKEY = 0x00da, /* 218 */
193  EVT_TABKEY = 0x00db, /* 219 */
194  EVT_RETKEY = 0x00dc, /* 220 */
195  EVT_SPACEKEY = 0x00dd, /* 221 */
196  EVT_LINEFEEDKEY = 0x00de, /* 222 */
197  EVT_BACKSPACEKEY = 0x00df, /* 223 */
198  EVT_DELKEY = 0x00e0, /* 224 */
199  EVT_SEMICOLONKEY = 0x00e1, /* 225 */
200  EVT_PERIODKEY = 0x00e2, /* 226 */
201  EVT_COMMAKEY = 0x00e3, /* 227 */
202  EVT_QUOTEKEY = 0x00e4, /* 228 */
203  EVT_ACCENTGRAVEKEY = 0x00e5, /* 229 */
204  EVT_MINUSKEY = 0x00e6, /* 230 */
205  EVT_PLUSKEY = 0x00e7, /* 231 */
206  EVT_SLASHKEY = 0x00e8, /* 232 */
207  EVT_BACKSLASHKEY = 0x00e9, /* 233 */
208  EVT_EQUALKEY = 0x00ea, /* 234 */
209  EVT_LEFTBRACKETKEY = 0x00eb, /* 235 */
210  EVT_RIGHTBRACKETKEY = 0x00ec, /* 236 */
211 
212  EVT_F1KEY = 0x012c, /* 300 */
213  EVT_F2KEY = 0x012d, /* 301 */
214  EVT_F3KEY = 0x012e, /* 302 */
215  EVT_F4KEY = 0x012f, /* 303 */
216  EVT_F5KEY = 0x0130, /* 304 */
217  EVT_F6KEY = 0x0131, /* 305 */
218  EVT_F7KEY = 0x0132, /* 306 */
219  EVT_F8KEY = 0x0133, /* 307 */
220  EVT_F9KEY = 0x0134, /* 308 */
221  EVT_F10KEY = 0x0135, /* 309 */
222  EVT_F11KEY = 0x0136, /* 310 */
223  EVT_F12KEY = 0x0137, /* 311 */
224  EVT_F13KEY = 0x0138, /* 312 */
225  EVT_F14KEY = 0x0139, /* 313 */
226  EVT_F15KEY = 0x013a, /* 314 */
227  EVT_F16KEY = 0x013b, /* 315 */
228  EVT_F17KEY = 0x013c, /* 316 */
229  EVT_F18KEY = 0x013d, /* 317 */
230  EVT_F19KEY = 0x013e, /* 318 */
231  EVT_F20KEY = 0x013f, /* 319 */
232  EVT_F21KEY = 0x0140, /* 320 */
233  EVT_F22KEY = 0x0141, /* 321 */
234  EVT_F23KEY = 0x0142, /* 322 */
235  EVT_F24KEY = 0x0143, /* 323 */
236 
237  /* *** End of keyboard codes. *** */
238 
239  /* NDOF (from SpaceNavigator & friends)
240  * These should be kept in sync with GHOST_NDOFManager.h
241  * Ordering matters, exact values do not. */
242  NDOF_MOTION = 0x0190, /* 400 */
243  /* used internally, never sent */
245  /* these two are available from any 3Dconnexion device */
248  /* standard views */
255  /* more views */
258  /* 90 degree rotations */
265  /* device control */
271  /* keyboard emulation */
276  /* general-purpose buttons */
287  /* more general-purpose buttons */
291  /* the end */
293 
294  /* ********** End of Input devices. ********** */
295 
296  /* ********** Start of Blender internal events. ********** */
297 
298  /* XXX Those are mixed inside keyboard 'area'! */
299  /* System: 0x010x */
300  INPUTCHANGE = 0x0103, /* Input connected or disconnected, (259). */
301  WINDEACTIVATE = 0x0104, /* Window is deactivated, focus lost, (260). */
302  /* Timer: 0x011x */
303  TIMER = 0x0110, /* Timer event, passed on to all queues (272). */
304  TIMER0 = 0x0111, /* Timer event, slot for internal use (273). */
305  TIMER1 = 0x0112, /* Timer event, slot for internal use (274). */
306  TIMER2 = 0x0113, /* Timer event, slot for internal use (275). */
307  TIMERJOBS = 0x0114, /* Timer event, jobs system (276). */
308  TIMERAUTOSAVE = 0x0115, /* Timer event, autosave (277). */
309  TIMERREPORT = 0x0116, /* Timer event, reports (278). */
310  TIMERREGION = 0x0117, /* Timer event, region slide in/out (279). */
311  TIMERNOTIFIER = 0x0118, /* Timer event, notifier sender (280). */
312  TIMERF = 0x011F, /* Last timer (287). */
313 
314  /* Actionzones, tweak, gestures: 0x500x, 0x501x */
315  /* Keep in sync with IS_EVENT_ACTIONZONE(...). */
316  EVT_ACTIONZONE_AREA = 0x5000, /* 20480 */
317  EVT_ACTIONZONE_REGION = 0x5001, /* 20481 */
318  EVT_ACTIONZONE_FULLSCREEN = 0x5011, /* 20497 */
319 
320  /* NOTE: these values are saved in keymap files, do not change them but just add new ones */
321 
322  /* Tweak events:
323  * Sent as additional event with the mouse coordinates
324  * from where the initial click was placed. */
325 
326  /* tweak events for L M R mousebuttons */
327  EVT_TWEAK_L = 0x5002, /* 20482 */
328  EVT_TWEAK_M = 0x5003, /* 20483 */
329  EVT_TWEAK_R = 0x5004, /* 20484 */
330  /* 0x5010 (and lower) should be left to add other tweak types in the future. */
331 
332  /* 0x5011 is taken, see EVT_ACTIONZONE_FULLSCREEN */
333 
334  /* Misc Blender internals: 0x502x */
335  EVT_FILESELECT = 0x5020, /* 20512 */
336  EVT_BUT_OPEN = 0x5021, /* 20513 */
337  EVT_MODAL_MAP = 0x5022, /* 20514 */
338  EVT_DROP = 0x5023, /* 20515 */
339  /* When value is 0, re-activate, when 1, don't re-activate the button under the cursor. */
340  EVT_BUT_CANCEL = 0x5024, /* 20516 */
341 
342  /* could become gizmo callback */
343  EVT_GIZMO_UPDATE = 0x5025, /* 20517 */
344  /* ********** End of Blender internal events. ********** */
345 };
346 
347 /* *********** wmEvent.type helpers. ********** */
348 
349 /* test whether the event is timer event */
350 #define ISTIMER(event_type) ((event_type) >= TIMER && (event_type) <= TIMERF)
351 
352 /* for event checks */
353 /* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */
354 /* UNUSED - see wm_eventmatch - BUG T30479. */
355 /* #define ISTEXTINPUT(event_type) ((event_type) >= ' ' && (event_type) <= 255) */
356 /* note, an alternative could be to check 'event->utf8_buf' */
357 
358 /* test whether the event is a key on the keyboard */
359 #define ISKEYBOARD(event_type) \
360  (((event_type) >= 0x0020 && (event_type) <= 0x00ff) || \
361  ((event_type) >= 0x012c && (event_type) <= 0x0143))
362 
363 /* test whether the event is a modifier key */
364 #define ISKEYMODIFIER(event_type) \
365  (((event_type) >= EVT_LEFTCTRLKEY && (event_type) <= EVT_LEFTSHIFTKEY) || \
366  (event_type) == EVT_OSKEY)
367 
368 /* test whether the event is a mouse button */
369 #define ISMOUSE(event_type) \
370  (((event_type) >= LEFTMOUSE && (event_type) <= BUTTON7MOUSE) || (event_type) == MOUSESMARTZOOM)
371 
372 #define ISMOUSE_WHEEL(event_type) ((event_type) >= WHEELUPMOUSE && (event_type) <= WHEELOUTMOUSE)
373 #define ISMOUSE_GESTURE(event_type) ((event_type) >= MOUSEPAN && (event_type) <= MOUSEROTATE)
374 #define ISMOUSE_BUTTON(event_type) \
375  (ELEM(event_type, \
376  LEFTMOUSE, \
377  MIDDLEMOUSE, \
378  RIGHTMOUSE, \
379  BUTTON4MOUSE, \
380  BUTTON5MOUSE, \
381  BUTTON6MOUSE, \
382  BUTTON7MOUSE))
383 
384 /* test whether the event is tweak event */
385 #define ISTWEAK(event_type) ((event_type) >= EVT_TWEAK_L && (event_type) <= EVT_TWEAK_R)
386 
387 /* test whether the event is a NDOF event */
388 #define ISNDOF(event_type) ((event_type) >= NDOF_MOTION && (event_type) < NDOF_LAST)
389 
390 #define IS_EVENT_ACTIONZONE(event_type) \
391  ELEM(event_type, EVT_ACTIONZONE_AREA, EVT_ACTIONZONE_REGION, EVT_ACTIONZONE_FULLSCREEN)
392 
393 /* test whether event type is acceptable as hotkey, excluding modifiers */
394 #define ISHOTKEY(event_type) \
395  ((ISKEYBOARD(event_type) || ISMOUSE(event_type) || ISNDOF(event_type)) && \
396  (ISKEYMODIFIER(event_type) == false))
397 
398 /* internal helpers*/
399 #define _VA_IS_EVENT_MOD2(v, a) (CHECK_TYPE_INLINE(v, wmEvent *), ((v)->a))
400 #define _VA_IS_EVENT_MOD3(v, a, b) (_VA_IS_EVENT_MOD2(v, a) || ((v)->b))
401 #define _VA_IS_EVENT_MOD4(v, a, b, c) (_VA_IS_EVENT_MOD3(v, a, b) || ((v)->c))
402 #define _VA_IS_EVENT_MOD5(v, a, b, c, d) (_VA_IS_EVENT_MOD4(v, a, b, c) || ((v)->d))
403 
404 /* reusable IS_EVENT_MOD(event, shift, ctrl, alt, oskey), macro */
405 #define IS_EVENT_MOD(...) VA_NARGS_CALL_OVERLOAD(_VA_IS_EVENT_MOD, __VA_ARGS__)
406 
408  /* ISKEYMODIFIER */
410  /* ISKEYBOARD */
412  /* ISMOUSE_WHEEL */
414  /* ISMOUSE_BUTTON */
416  /* ISMOUSE_GESTURE */
418  /* ISMOUSE */
420  /* ISNDOF */
421  EVT_TYPE_MASK_NDOF = (1 << 6),
422  /* ISTWEAK */
424  /* IS_EVENT_ACTIONZONE */
426 };
427 #define EVT_TYPE_MASK_ALL \
428  (EVT_TYPE_MASK_KEYBOARD | EVT_TYPE_MASK_MOUSE | EVT_TYPE_MASK_NDOF | EVT_TYPE_MASK_TWEAK | \
429  EVT_TYPE_MASK_ACTIONZONE)
430 
431 #define EVT_TYPE_MASK_HOTKEY_INCLUDE \
432  (EVT_TYPE_MASK_KEYBOARD | EVT_TYPE_MASK_MOUSE | EVT_TYPE_MASK_NDOF)
433 #define EVT_TYPE_MASK_HOTKEY_EXCLUDE EVT_TYPE_MASK_KEYBOARD_MODIFIER
434 
435 bool WM_event_type_mask_test(const int event_type, const enum eEventType_Mask mask);
436 
437 /* ********** wmEvent.val ********** */
438 
439 /* Gestures */
440 /* NOTE: these values are saved in keymap files, do not change them but just add new ones */
441 enum {
442  /* value of tweaks and line gestures, note, KM_ANY (-1) works for this case too */
451 };
452 
453 /* File select */
454 enum {
459 };
460 
468 enum {
471 
475 
478 
483 
486 
490 
493 
496 
499 
502 };
503 
504 #ifdef __cplusplus
505 }
506 #endif
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
@ EVT_TABLET_NONE
@ EVT_TABLET_STYLUS
@ EVT_TABLET_ERASER
@ EVT_PAD8
@ EVT_F14KEY
@ EVT_PAD2
@ MOUSEPAN
@ BUTTON7MOUSE
@ RIGHTMOUSE
@ EVT_SIXKEY
@ EVT_BUT_CANCEL
@ EVT_QUOTEKEY
@ TIMERF
@ EVT_PADPERIOD
@ NDOF_BUTTON_SPIN_CW
@ EVT_OKEY
@ INPUTCHANGE
@ NDOF_BUTTON_TILT_CCW
@ TIMER
@ EVT_EKEY
@ EVT_PAD4
@ EVT_JKEY
@ EVT_PADASTERKEY
@ NDOF_BUTTON_7
@ BUTTON6MOUSE
@ EVT_BUT_OPEN
@ NDOF_BUTTON_SHIFT
@ 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
@ MOUSEZOOM
@ TIMERNOTIFIER
@ NDOF_BUTTON_8
@ EVT_IKEY
@ NDOF_BUTTON_MENU
@ EVT_F1KEY
@ EVT_PERIODKEY
@ EVT_PADSLASHKEY
@ EVT_XKEY
@ 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
@ EVT_F20KEY
@ EVT_CKEY
@ EVT_F2KEY
@ EVT_GKEY
@ EVT_ACTIONZONE_REGION
@ EVT_KKEY
@ EVT_TABKEY
@ EVT_DOWNARROWKEY
@ NDOF_BUTTON_ESC
@ NDOF_BUTTON_BACK
@ EVT_UKEY
@ EVT_MEDIASTOP
@ EVT_AKEY
@ EVT_PAD3
@ EVT_MINUSKEY
@ MOUSEROTATE
@ WHEELUPMOUSE
@ EVT_PAGEUPKEY
@ EVT_OSKEY
@ EVT_TWEAK_M
@ EVT_F4KEY
@ EVT_PAGEDOWNKEY
@ NDOF_BUTTON_5
@ TIMERAUTOSAVE
@ TIMER1
@ EVT_F8KEY
@ 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
@ NDOF_BUTTON_A
@ EVT_PAD6
@ EVT_ACTIONZONE_AREA
@ NDOF_BUTTON_ISO2
@ EVT_PAD5
@ EVT_HOMEKEY
@ TABLET_STYLUS
@ EVENT_NONE
@ MOUSEMOVE
@ EVT_FILESELECT
@ NDOF_LAST
@ EVT_RIGHTBRACKETKEY
@ EVT_WKEY
@ NDOF_BUTTON_PANZOOM
@ EVT_UNKNOWNKEY
@ WM_IME_COMPOSITE_END
@ EVT_ENDKEY
@ EVT_RIGHTALTKEY
@ EVT_MEDIALAST
@ NDOF_BUTTON_B
@ EVT_MKEY
@ WM_IME_COMPOSITE_START
@ EVT_LINEFEEDKEY
@ TIMER2
@ EVT_TKEY
@ EVT_HKEY
@ EVT_TWEAK_R
@ MOUSESMARTZOOM
@ NDOF_BUTTON_MINUS
@ NDOF_BUTTON_NONE
@ EVT_BACKSLASHKEY
@ EVT_FIVEKEY
@ EVT_APPKEY
@ EVT_F24KEY
@ TIMER0
@ EVT_ACCENTGRAVEKEY
@ NDOF_BUTTON_C
@ 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
@ NDOF_BUTTON_ALT
@ EVT_LEFTALTKEY
@ EVT_ZKEY
@ EVT_ESCKEY
@ NDOF_BUTTON_9
@ NDOF_BUTTON_LEFT
@ NDOF_BUTTON_FIT
@ EVT_THREEKEY
@ WHEELOUTMOUSE
@ EVT_BACKSPACEKEY
@ EVT_TWEAK_L
@ WHEELINMOUSE
@ EVT_F12KEY
@ INBETWEEN_MOUSEMOVE
@ EVT_DKEY
@ EVT_F16KEY
@ EVT_GIZMO_UPDATE
@ EVT_DROP
@ NDOF_BUTTON_4
@ EVT_PAD1
@ EVT_TWOKEY
@ EVT_GRLESSKEY
@ EVT_LKEY
@ EVT_RIGHTSHIFTKEY
@ NDOF_BUTTON_FRONT
@ EVT_PAUSEKEY
@ EVT_PAD7
@ NDOF_BUTTON_SPIN_CCW
@ EVT_LEFTSHIFTKEY
@ NDOF_BUTTON_ISO1
@ EVT_PADPLUSKEY
@ NDOF_BUTTON_6
@ EVT_F3KEY
@ NDOF_BUTTON_CTRL
@ NDOF_BUTTON_TOP
@ EVT_F9KEY
@ EVT_RKEY
@ WINDEACTIVATE
@ EVT_SEMICOLONKEY
@ EVT_BKEY
@ EVT_PKEY
@ TIMERREGION
@ NDOF_BUTTON_ROTATE
@ 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
@ EVT_DATA_NDOF_MOTION
@ EVT_DATA_DRAGDROP
@ EVT_DATA_TIMER
eEventType_Mask
@ EVT_TYPE_MASK_TWEAK
@ 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
bool WM_event_type_mask_test(const int event_type, const enum eEventType_Mask mask)
@ EVT_FILESELECT_FULL_OPEN
@ EVT_FILESELECT_CANCEL
@ EVT_FILESELECT_EXTERNAL_CANCEL
@ EVT_FILESELECT_EXEC
@ EVT_GESTURE_NW
@ EVT_GESTURE_SW
@ EVT_GESTURE_W
@ EVT_GESTURE_N
@ EVT_GESTURE_NE
@ EVT_GESTURE_SE
@ EVT_GESTURE_E
@ EVT_GESTURE_S