Spinning Topp Logo BlackTopp Studios
inc
inputenumerations.h
1 // © Copyright 2010 - 2016 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 
41 #ifndef _inputenumerations_h
42 #define _inputenumerations_h
43 
44 /// @todo This exists because somewhere in our chain of includes we have "winnt.h" (on windows) defining "KEY_EXECUTE", which causes the compile to fail at the line
45 /// declaring "KEY_EXECUTE". I am reasonably certain this only exists when <Ogre.h> is included above this file in the include chain.
46 #ifdef KEY_EXECUTE
47 #undef KEY_EXECUTE
48 #endif
49 
50 namespace Mezzanine
51 {
52  namespace Input
53  {
54  /// @brief The InputCode enum defines all the posible types of inputs.
55  /// @details It has one entry for each key on a most keyboards. Then it
56  /// has an entry for most mouse and joystick input methods.
57  /// @warning Once upon a time, this partially matched with ascii. It doesn't anymore.
58  enum InputCode
59  {
60  KEY_FIRST = 0, /**< KEY_FIRST Same Value as KEY_UNKOWN, is Guaranteed to be the lowest value of any key. */
61  KEY_UNKNOWN = 0, /**< KEY_UNKNOWN This is used for unsupported keys or keys that are not in Unicode. */
62 
63  KEY_A = 4,
64  KEY_B = 5,
65  KEY_C = 6,
66  KEY_D = 7,
67  KEY_E = 8,
68  KEY_F = 9,
69  KEY_G = 10,
70  KEY_H = 11,
71  KEY_I = 12,
72  KEY_J = 13,
73  KEY_K = 14,
74  KEY_L = 15,
75  KEY_M = 16,
76  KEY_N = 17,
77  KEY_O = 18,
78  KEY_P = 19,
79  KEY_Q = 20,
80  KEY_R = 21,
81  KEY_S = 22,
82  KEY_T = 23,
83  KEY_U = 24,
84  KEY_V = 25,
85  KEY_W = 26,
86  KEY_X = 27,
87  KEY_Y = 28,
88  KEY_Z = 29,
89 
90  KEY_1 = 30,
91  KEY_2 = 31,
92  KEY_3 = 32,
93  KEY_4 = 33,
94  KEY_5 = 34,
95  KEY_6 = 35,
96  KEY_7 = 36,
97  KEY_8 = 37,
98  KEY_9 = 38,
99  KEY_0 = 39,
100 
101  KEY_RETURN = 40,
102  KEY_ESCAPE = 41,
103  KEY_BACKSPACE = 42,
104  KEY_TAB = 43,
105  KEY_SPACE = 44,
106 
107  KEY_MINUS = 45,
108  KEY_EQUALS = 46,
109  KEY_LEFTBRACKET = 47,
110  KEY_RIGHTBRACKET = 48,
111  KEY_BACKSLASH = 49, /**< Located at the lower left of the return
112  * key on ISO keyboards and at the right end
113  * of the QWERTY row on ANSI keyboards.
114  * Produces REVERSE SOLIDUS (backslash) and
115  * VERTICAL LINE in a US layout, REVERSE
116  * SOLIDUS and VERTICAL LINE in a UK Mac
117  * layout, NUMBER SIGN and TILDE in a UK
118  * Windows layout, DOLLAR SIGN and POUND SIGN
119  * in a Swiss German layout, NUMBER SIGN and
120  * APOSTROPHE in a German layout, GRAVE
121  * ACCENT and POUND SIGN in a French Mac
122  * layout, and ASTERISK and MICRO SIGN in a
123  * French Windows layout.
124  */
125  KEY_NONUSHASH = 50, /**< ISO USB keyboards actually use this code
126  * instead of 49 for the same key, but all
127  * OSes I've seen treat the two codes
128  * identically. So, as an implementor, unless
129  * your keyboard generates both of those
130  * codes and your OS treats them differently,
131  * you should generate KEY_BACKSLASH
132  * instead of this code. As a user, you
133  * should not rely on this code because SDL
134  * will never generate it with most (all?)
135  * keyboards.
136  */
137  KEY_SEMICOLON = 51,
138  KEY_APOSTROPHE = 52,
139  KEY_GRAVE = 53, /**< Located in the top left corner (on both ANSI
140  * and ISO keyboards). Produces GRAVE ACCENT and
141  * TILDE in a US Windows layout and in US and UK
142  * Mac layouts on ANSI keyboards, GRAVE ACCENT
143  * and NOT SIGN in a UK Windows layout, SECTION
144  * SIGN and PLUS-MINUS SIGN in US and UK Mac
145  * layouts on ISO keyboards, SECTION SIGN and
146  * DEGREE SIGN in a Swiss German layout (Mac:
147  * only on ISO keyboards), CIRCUMFLEX ACCENT and
148  * DEGREE SIGN in a German layout (Mac: only on
149  * ISO keyboards), SUPERSCRIPT TWO and TILDE in a
150  * French Windows layout, COMMERCIAL AT and
151  * NUMBER SIGN in a French Mac layout on ISO
152  * keyboards, and LESS-THAN SIGN and GREATER-THAN
153  * SIGN in a Swiss German, German, or French Mac
154  * layout on ANSI keyboards.
155  */
156  KEY_COMMA = 54,
157  KEY_PERIOD = 55,
158  KEY_SLASH = 56,
159 
160  KEY_CAPSLOCK = 57,
161 
162  KEY_F1 = 58,
163  KEY_F2 = 59,
164  KEY_F3 = 60,
165  KEY_F4 = 61,
166  KEY_F5 = 62,
167  KEY_F6 = 63,
168  KEY_F7 = 64,
169  KEY_F8 = 65,
170  KEY_F9 = 66,
171  KEY_F10 = 67,
172  KEY_F11 = 68,
173  KEY_F12 = 69,
174 
175  KEY_PRINTSCREEN = 70,
176  KEY_SCROLLLOCK = 71,
177  KEY_PAUSE = 72,
178  KEY_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but
179  does send code 73, not 117) */
180  KEY_HOME = 74,
181  KEY_PAGEUP = 75,
182  KEY_DELETE = 76,
183  KEY_END = 77,
184  KEY_PAGEDOWN = 78,
185  KEY_RIGHT = 79,
186  KEY_LEFT = 80,
187  KEY_DOWN = 81,
188  KEY_UP = 82,
189 
190  KEY_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards
191  */
192  KEY_KP_DIVIDE = 84,
193  KEY_KP_MULTIPLY = 85,
194  KEY_KP_MINUS = 86,
195  KEY_KP_PLUS = 87,
196  KEY_KP_ENTER = 88,
197  KEY_KP_1 = 89,
198  KEY_KP_2 = 90,
199  KEY_KP_3 = 91,
200  KEY_KP_4 = 92,
201  KEY_KP_5 = 93,
202  KEY_KP_6 = 94,
203  KEY_KP_7 = 95,
204  KEY_KP_8 = 96,
205  KEY_KP_9 = 97,
206  KEY_KP_0 = 98,
207  KEY_KP_PERIOD = 99,
208 
209  KEY_NONUSBACKSLASH = 100, /**< This is the additional key that ISO
210  * keyboards have over ANSI ones,
211  * located between left shift and Y.
212  * Produces GRAVE ACCENT and TILDE in a
213  * US or UK Mac layout, REVERSE SOLIDUS
214  * (backslash) and VERTICAL LINE in a
215  * US or UK Windows layout, and
216  * LESS-THAN SIGN and GREATER-THAN SIGN
217  * in a Swiss German, German, or French
218  * layout. */
219  KEY_APPLICATION = 101, /**< windows contextual menu, compose */
220  KEY_POWER = 102, /**< The USB document says this is a status flag,
221  * not a physical key - but some Mac keyboards
222  * do have a power key. */
223  KEY_KP_EQUALS = 103,
224  KEY_F13 = 104,
225  KEY_F14 = 105,
226  KEY_F15 = 106,
227  KEY_F16 = 107,
228  KEY_F17 = 108,
229  KEY_F18 = 109,
230  KEY_F19 = 110,
231  KEY_F20 = 111,
232  KEY_F21 = 112,
233  KEY_F22 = 113,
234  KEY_F23 = 114,
235  KEY_F24 = 115,
236  KEY_EXECUTE = 116,
237  KEY_HELP = 117,
238  KEY_MENU = 118,
239  KEY_SELECT = 119,
240  KEY_STOP = 120,
241  KEY_AGAIN = 121, /**< redo */
242  KEY_UNDO = 122,
243  KEY_CUT = 123,
244  KEY_COPY = 124,
245  KEY_PASTE = 125,
246  KEY_FIND = 126,
247  KEY_MUTE = 127,
248  KEY_VOLUMEUP = 128,
249  KEY_VOLUMEDOWN = 129,
250  /* not sure whether there's a reason to enable these */
251  /* KEY_LOCKINGCAPSLOCK = 130, */
252  /* KEY_LOCKINGNUMLOCK = 131, */
253  /* KEY_LOCKINGSCROLLLOCK = 132, */
254  KEY_KP_COMMA = 133,
255  KEY_KP_EQUALSAS400 = 134,
256 
257  KEY_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see
258  footnotes in USB doc */
259  KEY_INTERNATIONAL2 = 136,
260  KEY_INTERNATIONAL3 = 137, /**< Yen */
261  KEY_INTERNATIONAL4 = 138,
262  KEY_INTERNATIONAL5 = 139,
263  KEY_INTERNATIONAL6 = 140,
264  KEY_INTERNATIONAL7 = 141,
265  KEY_INTERNATIONAL8 = 142,
266  KEY_INTERNATIONAL9 = 143,
267  KEY_LANG1 = 144, /**< Hangul/English toggle */
268  KEY_LANG2 = 145, /**< Hanja conversion */
269  KEY_LANG3 = 146, /**< Katakana */
270  KEY_LANG4 = 147, /**< Hiragana */
271  KEY_LANG5 = 148, /**< Zenkaku/Hankaku */
272  KEY_LANG6 = 149, /**< reserved */
273  KEY_LANG7 = 150, /**< reserved */
274  KEY_LANG8 = 151, /**< reserved */
275  KEY_LANG9 = 152, /**< reserved */
276 
277  KEY_ALTERASE = 153, /**< Erase-Eaze */
278  KEY_SYSREQ = 154,
279  KEY_CANCEL = 155,
280  KEY_CLEAR = 156,
281  KEY_PRIOR = 157,
282  KEY_RETURN2 = 158,
283  KEY_SEPARATOR = 159,
284  KEY_OUT = 160,
285  KEY_OPER = 161,
286  KEY_CLEARAGAIN = 162,
287  KEY_CRSEL = 163,
288  KEY_EXSEL = 164,
289 
290  KEY_KP_00 = 176,
291  KEY_KP_000 = 177,
292  KEY_THOUSANDSSEPARATOR = 178,
293  KEY_DECIMALSEPARATOR = 179,
294  KEY_CURRENCYUNIT = 180,
295  KEY_CURRENCYSUBUNIT = 181,
296  KEY_KP_LEFTPAREN = 182,
297  KEY_KP_RIGHTPAREN = 183,
298  KEY_KP_LEFTBRACE = 184,
299  KEY_KP_RIGHTBRACE = 185,
300  KEY_KP_TAB = 186,
301  KEY_KP_BACKSPACE = 187,
302  KEY_KP_A = 188,
303  KEY_KP_B = 189,
304  KEY_KP_C = 190,
305  KEY_KP_D = 191,
306  KEY_KP_E = 192,
307  KEY_KP_F = 193,
308  KEY_KP_XOR = 194,
309  KEY_KP_POWER = 195,
310  KEY_KP_PERCENT = 196,
311  KEY_KP_LESS = 197,
312  KEY_KP_GREATER = 198,
313  KEY_KP_AMPERSAND = 199,
314  KEY_KP_DBLAMPERSAND = 200,
315  KEY_KP_VERTICALBAR = 201,
316  KEY_KP_DBLVERTICALBAR = 202,
317  KEY_KP_COLON = 203,
318  KEY_KP_HASH = 204,
319  KEY_KP_SPACE = 205,
320  KEY_KP_AT = 206,
321  KEY_KP_EXCLAM = 207,
322  KEY_KP_MEMSTORE = 208,
323  KEY_KP_MEMRECALL = 209,
324  KEY_KP_MEMCLEAR = 210,
325  KEY_KP_MEMADD = 211,
326  KEY_KP_MEMSUBTRACT = 212,
327  KEY_KP_MEMMULTIPLY = 213,
328  KEY_KP_MEMDIVIDE = 214,
329  KEY_KP_PLUSMINUS = 215,
330  KEY_KP_CLEAR = 216,
331  KEY_KP_CLEARENTRY = 217,
332  KEY_KP_BINARY = 218,
333  KEY_KP_OCTAL = 219,
334  KEY_KP_DECIMAL = 220,
335  KEY_KP_HEXADECIMAL = 221,
336 
337  KEY_LCTRL = 224,
338  KEY_LSHIFT = 225,
339  KEY_LALT = 226, /**< alt, option */
340  KEY_LSUPER = 227, /**< windows, command (apple), meta */
341  KEY_RCTRL = 228,
342  KEY_RSHIFT = 229,
343  KEY_RALT = 230, /**< alt gr, option */
344  KEY_RSUPER = 231, /**< windows, command (apple), meta */
345 
346  KEY_MODE = 257, /**< I'm not sure if this is really not covered
347  * by any of the above, but since there's a
348  * special KMOD_MODE for it I'm adding it here
349  */
350 
351  /*@}*//*Usage page 0x07*/
352 
353  /**
354  * \name Usage page 0x0C
355  *
356  * These values are mapped from usage page 0x0C (USB consumer page).
357  */
358  /*@{*/
359 
360  KEY_AUDIONEXT = 258,
361  KEY_AUDIOPREV = 259,
362  KEY_AUDIOSTOP = 260,
363  KEY_AUDIOPLAY = 261,
364  KEY_AUDIOMUTE = 262,
365  KEY_MEDIASELECT = 263,
366  KEY_WWW = 264,
367  KEY_MAIL = 265,
368  KEY_CALCULATOR = 266,
369  KEY_COMPUTER = 267,
370  KEY_AC_SEARCH = 268,
371  KEY_AC_HOME = 269,
372  KEY_AC_BACK = 270,
373  KEY_AC_FORWARD = 271,
374  KEY_AC_STOP = 272,
375  KEY_AC_REFRESH = 273,
376  KEY_AC_BOOKMARKS = 274,
377 
378  /*@}*//*Usage page 0x0C*/
379 
380  /**
381  * \name Walther keys
382  *
383  * These are values that Christian Walther added (for mac keyboard?).
384  */
385  /*@{*/
386 
387  KEY_BRIGHTNESSDOWN = 275,
388  KEY_BRIGHTNESSUP = 276,
389  KEY_DISPLAYSWITCH = 277, /**< display mirroring/dual display
390  switch, video mode switch */
391  KEY_KBDILLUMTOGGLE = 278,
392  KEY_KBDILLUMDOWN = 279,
393  KEY_KBDILLUMUP = 280,
394  KEY_EJECT = 281,
395  KEY_SLEEP = 282,
396  // Copying from SDL ends here
397 
398  KEY_LAST = 379, ///< The last Keyboard InputCode, all Keys values will be less than this, and all Events will be larger than that
399 
400 
401  MOUSE_FIRST = 380, ///< The First Mouse event, all Mouse Event values will be more than this
402  MOUSEBUTTON = 380, ///< This is the generic Some mouse button code. You can add the number of the mouse button to this and you will get the approriate code. Example (MOUSEBUTTON_1 == MOUSEBUTTON + 1)
403  MOUSEBUTTON_FIRST = 381, ///< This is the lowest mouse button value, all mice values will be larger of equal to this
404  MOUSEBUTTON_1 = 381, ///< Most commonly left click.
405  MOUSEBUTTON_2 = 382, ///< Most Commonly Right click
406  MOUSEBUTTON_3 = 383, ///< Most commonly middle click
407  MOUSEBUTTON_4 = 384,
408  MOUSEBUTTON_5 = 385,
409  MOUSEBUTTON_6 = 386,
410  MOUSEBUTTON_7 = 387,
411  MOUSEBUTTON_8 = 388,
412  MOUSEBUTTON_9 = 389,
413  MOUSEBUTTON_10 = 390,
414  MOUSEBUTTON_11 = 391,
415  MOUSEBUTTON_12 = 392,
416  MOUSEBUTTON_13 = 393,
417  MOUSEBUTTON_14 = 394,
418  MOUSEBUTTON_15 = 395,
419  MOUSEBUTTON_16 = 396,
420  MOUSEBUTTON_17 = 397,
421  MOUSEBUTTON_18 = 398,
422  MOUSEBUTTON_19 = 399,
423  MOUSEBUTTON_20 = 400,
424  MOUSEBUTTON_LAST = 400, ///< The Last mouse button event, all mouse button event will be lower or equal to this.
425 
426  INPUTEVENT_FIRST = 401, ///< The First non-button event, all Mouse and keyboard button values will be Less than this
427  MOUSEMOTION_FIRST = 402,
428  MOUSEABSOLUTEVERTICAL = 402,
429  MOUSEABSOLUTEHORIZONTAL = 403,
430  MOUSEVERTICAL = 404,
431  MOUSEHORIZONTAL = 405,
432  MOUSEWHEELVERTICAL = 406,
433  MOUSEWHEELHORIZONTAL = 407,
434  MOUSEMOTION_LAST = 410,
435  MOUSE_LAST = 410, ///< The last MouseEvent Code, all Mouse events will be less than this
436 
437  MOTION_FIRST = 420, ///< The first Motion event
438  MOTION_LAST = 429, ///< The last Motion event
439 
440  MULTITOUCH_FIRST = 440, ///< The first Multi Touch event
441  MULTITOUCH_ACTION = 441,
442  MULTITOUCH_GESTURE = 442,
443  MULTITOUCH_PINCH = 443,
444  MULTITOUCH_STRETCH = 444,
445  MULTITOUCH_LAST = 449, ///< The last Multi Touch event
446 
447  CONTROLLER_FIRST = 450, ///< The First JoyStick event, all Controller Event values will be more than this
448  CONTROLLERBUTTON = 450, ///< This is the generic Some stickbutton button code. You can add the number of the jpystick button to this and you will get the approriate code. Example (JOYSTICKBUTTON_1 == JOYSTICKBUTTON + 1)
449  CONTROLLERBUTTON_FIRST = 451, ///< This is the lowest Controller button value, all joystickbutton values will be larger of equal to this.
450  CONTROLLERBUTTON_1 = 451,
451  CONTROLLERBUTTON_2 = 452,
452  CONTROLLERBUTTON_3 = 453,
453  CONTROLLERBUTTON_4 = 454,
454  CONTROLLERBUTTON_5 = 455,
455  CONTROLLERBUTTON_6 = 456,
456  CONTROLLERBUTTON_7 = 457,
457  CONTROLLERBUTTON_8 = 458,
458  CONTROLLERBUTTON_9 = 459,
459  CONTROLLERBUTTON_10 = 460,
460  CONTROLLERBUTTON_11 = 461,
461  CONTROLLERBUTTON_12 = 462,
462  CONTROLLERBUTTON_13 = 463,
463  CONTROLLERBUTTON_14 = 464,
464  CONTROLLERBUTTON_15 = 465,
465  CONTROLLERBUTTON_16 = 466,
466  CONTROLLERBUTTON_17 = 467,
467  CONTROLLERBUTTON_18 = 468,
468  CONTROLLERBUTTON_19 = 469,
469  CONTROLLERBUTTON_20 = 470,
470  CONTROLLERBUTTON_LAST = 470, ///< The Last Controller button event, all Controller button event will be lower or equal to this.
471 
472  CONTROLLERAXIS = 480, ///< This is the generic Controller axis code. You can add the number of the Controller axis to this and you will get the approriate code. Example (JOYSTICKAXIS_1 == JOYSTICKAXIS + 1)
473  CONTROLLERAXIS_FIRST = 481, ///< This is the lowest Controller axis value, all jpystick values will be larger of equal to this
474  CONTROLLERAXIS_1 = 481,
475  CONTROLLERAXIS_2 = 482,
476  CONTROLLERAXIS_3 = 483,
477  CONTROLLERAXIS_4 = 484,
478  CONTROLLERAXIS_5 = 485,
479  CONTROLLERAXIS_6 = 486,
480  CONTROLLERAXIS_7 = 487,
481  CONTROLLERAXIS_8 = 488,
482  CONTROLLERAXIS_9 = 489,
483  CONTROLLERAXIS_10 = 490,
484  CONTROLLERAXIS_11 = 491,
485  CONTROLLERAXIS_12 = 492,
486  CONTROLLERAXIS_13 = 493,
487  CONTROLLERAXIS_14 = 494,
488  CONTROLLERAXIS_15 = 495,
489  CONTROLLERAXIS_16 = 496,
490  CONTROLLERAXIS_17 = 497,
491  CONTROLLERAXIS_18 = 498,
492  CONTROLLERAXIS_19 = 499,
493  CONTROLLERAXIS_20 = 500,
494  CONTROLLERAXIS_LAST = 500, ///< The Last Controller axis event, all joystick axis event will be lower or equal to this.
495 
496  CONTROLLERBALL = 501,
497  CONTROLLERBALL_FIRST = 502,
498  CONTROLLERBALL_1_VERTICAL = 502,
499  CONTROLLERBALL_1_HORIZONTAL = 503,
500  CONTROLLERBALL_2_VERTICAL = 504,
501  CONTROLLERBALL_2_HORIZONTAL = 505,
502  CONTROLLERBALL_LAST = 505,
503 
504  CONTROLLERHAT = 506,
505  CONTROLLERHAT_FIRST = 507,
506  CONTROLLERHAT_1 = 507,
507  CONTROLLERHAT_2 = 508,
508  CONTROLLERHAT_3 = 509,
509  CONTROLLERHAT_4 = 510,
510  CONTROLLERHAT_5 = 511,
511  CONTROLLERHAT_LAST = 511,
512 
513  CONTROLLER_LAST = 512, ///< The last Controller Input Code, all Controller events will be less than this.
514 
515  // Compound Inputs
516  COMPOUNDINPUT_FIRST = 768,
517  COMPOUNDINPUT_MOUSEMULTICLICKFIRST = 769,
518  COMPOUNDINPUT_MOUSELEFTMULTICLICK = 769,
519  COMPOUNDINPUT_MOUSERIGHTMULTICLICK = 770,
520  COMPOUNDINPUT_MOUSEMULTICLICKLAST = 790,
521  COMPOUNDINPUT_CUSTOMSEQUENCE = 799,
522  COMPOUNDINPUT_LAST = 800,
523 
524  OSTEXTINPUT = 900, /** This represents text as detected by the OS as it is supposed to be presented when printed.
525  * OS text events are useful for non-english languages where a keystroke can represent multiple characters,
526  * or multiple keystrokes can represent a single character. A MetaCode with this type of input code will
527  * always represent only one character, but the event that creates it may make multiple MetaCodes.
528  */
529 
530  INPUTEVENT_LAST = 1024 ///< The last Input Code, all event codes will be less than this.
531  };//InputCode
532 
533  /// @brief An enum listing containing the different kind of input devices, useful for some query functions.
535  {
536  DEVICE_UNKNOWN = 0,
537  DEVICE_KEYBOARD = 1,
538  DEVICE_MOUSE = 2,
539  DEVICE_MULTITOUCH = 3,
540  DEVICE_CONTROLLER = 4
541  };//InputDevice
542 
543  /// @brief An Optional listing of value that can be used in a metacode to represent the information of a button press
544  /// @details This is optional set of values that can make working with buttons easier. The values the engine pass
545  /// via the the event manager will all use these whereever appropriate.
547  {
548  BUTTON_LIFTING = 1, /**< Used when the key stops being pressed. */
549  BUTTON_UP = 2, /**< The default state of a key. */
550  BUTTON_PRESSING = 4, /**< This is used at the exact point in time that a key goes from unpressed to pressed. */
551  BUTTON_DOWN = 8 /**< This is used the entire time a key is down. */
552  };//ButtonState
553 
554  /// @brief An Optional listing of values that can be used in a metacode Indicate spin, digital or binary travel in a directionl
555  /// @details This is optional set of values that can make working with the MouseWheel and other items that can be moved along 1 axis in two dirctions easier. The values the engine pass
556  /// via the the event manager will all use these whereever appropriate.
558  {
559  DIRECTIONALMOTION_UPLEFT = 1, /**< Optionally Used when the device is spun/moved up or to the left as a MetaValue */
560  DIRECTIONALMOTION_UNCHANGED = 0, /**< This really isn't used in normal situations, but if a mousewheel or joyhat event is ever needed when the device is unmoved */
561  DIRECTIONALMOTION_DOWNRIGHT = -1 /**< Optionally Used when the MouseWheel/Joyhat is spun Down/Right as a Meta Code */
562  };//DirectionalMotionState
563 
564  /// @brief An optional listing of the possible states a hat on a controller can take.
565  /// @details This is optional set of values that can make working with controller hats easier. The values the engine pass
566  /// via the the event manager will all use these whereever appropriate.
567  enum HatState
568  {
569  CONTROLLERHAT_CENTERED = 0,
570  CONTROLLERHAT_UP = 1,
571  CONTROLLERHAT_RIGHT = 2,
572  CONTROLLERHAT_DOWN = 4,
573  CONTROLLERHAT_LEFT = 8,
574  CONTROLLERHAT_RIGHTUP = ( CONTROLLERHAT_RIGHT | CONTROLLERHAT_UP ),
575  CONTROLLERHAT_RIGHTDOWN = ( CONTROLLERHAT_RIGHT | CONTROLLERHAT_DOWN ),
576  CONTROLLERHAT_LEFTUP = ( CONTROLLERHAT_LEFT | CONTROLLERHAT_UP ),
577  CONTROLLERHAT_LEFTDOWN = ( CONTROLLERHAT_LEFT | CONTROLLERHAT_DOWN )
578  };//JoystickHatState
579  }//Input
580 }//Mezzanine
581 
582 #endif
DirectionalMotionState
An Optional listing of values that can be used in a metacode Indicate spin, digital or binary travel ...
This is the lowest mouse button value, all mice values will be larger of equal to this...
InputCode
The InputCode enum defines all the posible types of inputs.
The First non-button event, all Mouse and keyboard button values will be Less than this...
The last Multi Touch event.
The First JoyStick event, all Controller Event values will be more than this.
The last MouseEvent Code, all Mouse events will be less than this.
The Last Controller axis event, all joystick axis event will be lower or equal to this...
The Last mouse button event, all mouse button event will be lower or equal to this.
The first Motion event.
The last Motion event.
Most Commonly Right click.
The Last Controller button event, all Controller button event will be lower or equal to this...
The first Multi Touch event.
This is the lowest Controller button value, all joystickbutton values will be larger of equal to this...
This is the generic Some stickbutton button code. You can add the number of the jpystick button to th...
This is the generic Controller axis code. You can add the number of the Controller axis to this and y...
Most commonly left click.
The last Keyboard InputCode, all Keys values will be less than this, and all Events will be larger th...
This is the generic Some mouse button code. You can add the number of the mouse button to this and yo...
This is the lowest Controller axis value, all jpystick values will be larger of equal to this...
InputDevice
An enum listing containing the different kind of input devices, useful for some query functions...
Most commonly middle click.
The last Controller Input Code, all Controller events will be less than this.
The bulk of the engine components go in this namspace.
Definition: actor.cpp:56
ButtonState
An Optional listing of value that can be used in a metacode to represent the information of a button ...
The First Mouse event, all Mouse Event values will be more than this.
The last Input Code, all event codes will be less than this.
HatState
An optional listing of the possible states a hat on a controller can take.