KeyCode.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. // Copyright (C) 2009-2020, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #pragma once
  6. #include <anki/util/Enum.h>
  7. namespace anki
  8. {
  9. /// Keyboard scancodes taken from SDL
  10. enum class KeyCode
  11. {
  12. UNKNOWN = 0,
  13. RETURN,
  14. ESCAPE,
  15. BACKSPACE,
  16. TAB,
  17. SPACE,
  18. EXCLAIM,
  19. QUOTEDBL,
  20. HASH,
  21. PERCENT,
  22. DOLLAR,
  23. AMPERSAND,
  24. QUOTE,
  25. LEFTPAREN,
  26. RIGHTPAREN,
  27. ASTERISK,
  28. PLUS,
  29. COMMA,
  30. MINUS,
  31. PERIOD,
  32. SLASH,
  33. _0,
  34. _1,
  35. _2,
  36. _3,
  37. _4,
  38. _5,
  39. _6,
  40. _7,
  41. _8,
  42. _9,
  43. COLON,
  44. SEMICOLON,
  45. LESS,
  46. EQUALS,
  47. GREATER,
  48. QUESTION,
  49. AT,
  50. LEFTBRACKET,
  51. BACKSLASH,
  52. RIGHTBRACKET,
  53. CARET,
  54. UNDERSCORE,
  55. BACKQUOTE,
  56. A,
  57. B,
  58. C,
  59. D,
  60. E,
  61. F,
  62. G,
  63. H,
  64. I,
  65. J,
  66. K,
  67. L,
  68. M,
  69. N,
  70. O,
  71. P,
  72. Q,
  73. R,
  74. S,
  75. T,
  76. U,
  77. V,
  78. W,
  79. X,
  80. Y,
  81. Z,
  82. CAPSLOCK,
  83. F1,
  84. F2,
  85. F3,
  86. F4,
  87. F5,
  88. F6,
  89. F7,
  90. F8,
  91. F9,
  92. F10,
  93. F11,
  94. F12,
  95. PRINTSCREEN,
  96. SCROLLLOCK,
  97. PAUSE,
  98. INSERT,
  99. HOME,
  100. PAGEUP,
  101. DELETE,
  102. END,
  103. PAGEDOWN,
  104. RIGHT,
  105. LEFT,
  106. DOWN,
  107. UP,
  108. NUMLOCKCLEAR,
  109. KP_DIVIDE,
  110. KP_MULTIPLY,
  111. KP_MINUS,
  112. KP_PLUS,
  113. KP_ENTER,
  114. KP_1,
  115. KP_2,
  116. KP_3,
  117. KP_4,
  118. KP_5,
  119. KP_6,
  120. KP_7,
  121. KP_8,
  122. KP_9,
  123. KP_0,
  124. KP_PERIOD,
  125. APPLICATION,
  126. POWER,
  127. KP_EQUALS,
  128. F13,
  129. F14,
  130. F15,
  131. F16,
  132. F17,
  133. F18,
  134. F19,
  135. F20,
  136. F21,
  137. F22,
  138. F23,
  139. F24,
  140. EXECUTE,
  141. HELP,
  142. MENU,
  143. SELECT,
  144. STOP,
  145. AGAIN,
  146. UNDO,
  147. CUT,
  148. COPY,
  149. PASTE,
  150. FIND,
  151. MUTE,
  152. VOLUMEUP,
  153. VOLUMEDOWN,
  154. KP_COMMA,
  155. KP_EQUALSAS400,
  156. ALTERASE,
  157. SYSREQ,
  158. CANCEL,
  159. CLEAR,
  160. PRIOR,
  161. RETURN2,
  162. SEPARATOR,
  163. OUT,
  164. OPER,
  165. CLEARAGAIN,
  166. CRSEL,
  167. EXSEL,
  168. KP_00,
  169. KP_000,
  170. THOUSANDSSEPARATOR,
  171. DECIMALSEPARATOR,
  172. CURRENCYUNIT,
  173. CURRENCYSUBUNIT,
  174. KP_LEFTPAREN,
  175. KP_RIGHTPAREN,
  176. KP_LEFTBRACE,
  177. KP_RIGHTBRACE,
  178. KP_TAB,
  179. KP_BACKSPACE,
  180. KP_A,
  181. KP_B,
  182. KP_C,
  183. KP_D,
  184. KP_E,
  185. KP_F,
  186. KP_XOR,
  187. KP_POWER,
  188. KP_PERCENT,
  189. KP_LESS,
  190. KP_GREATER,
  191. KP_AMPERSAND,
  192. KP_DBLAMPERSAND,
  193. KP_VERTICALBAR,
  194. KP_DBLVERTICALBAR,
  195. KP_COLON,
  196. KP_HASH,
  197. KP_SPACE,
  198. KP_AT,
  199. KP_EXCLAM,
  200. KP_MEMSTORE,
  201. KP_MEMRECALL,
  202. KP_MEMCLEAR,
  203. KP_MEMADD,
  204. KP_MEMSUBTRACT,
  205. KP_MEMMULTIPLY,
  206. KP_MEMDIVIDE,
  207. KP_PLUSMINUS,
  208. KP_CLEAR,
  209. KP_CLEARENTRY,
  210. KP_BINARY,
  211. KP_OCTAL,
  212. KP_DECIMAL,
  213. KP_HEXADECIMAL,
  214. LCTRL,
  215. LSHIFT,
  216. LALT,
  217. LGUI,
  218. RCTRL,
  219. RSHIFT,
  220. RALT,
  221. RGUI,
  222. MODE,
  223. AUDIONEXT,
  224. AUDIOPREV,
  225. AUDIOSTOP,
  226. AUDIOPLAY,
  227. AUDIOMUTE,
  228. MEDIASELECT,
  229. WWW,
  230. MAIL,
  231. CALCULATOR,
  232. COMPUTER,
  233. AC_SEARCH,
  234. AC_HOME,
  235. AC_BACK,
  236. AC_FORWARD,
  237. AC_STOP,
  238. AC_REFRESH,
  239. AC_BOOKMARKS,
  240. BRIGHTNESSDOWN,
  241. BRIGHTNESSUP,
  242. DISPLAYSWITCH,
  243. KBDILLUMTOGGLE,
  244. KBDILLUMDOWN,
  245. KBDILLUMUP,
  246. EJECT,
  247. SLEEP,
  248. COUNT,
  249. FIRST = 0,
  250. };
  251. ANKI_ENUM_ALLOW_NUMERIC_OPERATIONS(KeyCode)
  252. enum class MouseButton
  253. {
  254. LEFT,
  255. MIDDLE,
  256. RIGHT,
  257. SCROLL_UP,
  258. SCROLL_DOWN,
  259. COUNT
  260. };
  261. ANKI_ENUM_ALLOW_NUMERIC_OPERATIONS(MouseButton)
  262. } // end namespace anki