InputConstants.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. //
  2. // Copyright (c) 2008-2020 the Urho3D project.
  3. //
  4. // Permission is hereby granted, free of charge, to any person obtaining a copy
  5. // of this software and associated documentation files (the "Software"), to deal
  6. // in the Software without restriction, including without limitation the rights
  7. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. // copies of the Software, and to permit persons to whom the Software is
  9. // furnished to do so, subject to the following conditions:
  10. //
  11. // The above copyright notice and this permission notice shall be included in
  12. // all copies or substantial portions of the Software.
  13. //
  14. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. // THE SOFTWARE.
  21. //
  22. /// \file
  23. #pragma once
  24. #include "../Container/FlagSet.h"
  25. #include "../Math/MathDefs.h"
  26. #include <SDL/SDL_joystick.h>
  27. #include <SDL/SDL_gamecontroller.h>
  28. #include <SDL/SDL_keycode.h>
  29. #include <SDL/SDL_mouse.h>
  30. namespace Urho3D
  31. {
  32. enum MouseButton : unsigned
  33. {
  34. MOUSEB_NONE,
  35. MOUSEB_LEFT = SDL_BUTTON_LMASK,
  36. MOUSEB_MIDDLE = SDL_BUTTON_MMASK,
  37. MOUSEB_RIGHT = SDL_BUTTON_RMASK,
  38. MOUSEB_X1 = SDL_BUTTON_X1MASK,
  39. MOUSEB_X2 = SDL_BUTTON_X2MASK,
  40. MOUSEB_ANY = M_MAX_UNSIGNED
  41. };
  42. URHO3D_FLAGSET(MouseButton, MouseButtonFlags);
  43. enum Qualifier : unsigned
  44. {
  45. QUAL_NONE = 0,
  46. QUAL_SHIFT = 1,
  47. QUAL_CTRL = 2,
  48. QUAL_ALT = 4,
  49. QUAL_ANY = 8
  50. };
  51. URHO3D_FLAGSET(Qualifier, QualifierFlags);
  52. enum Key : unsigned
  53. {
  54. KEY_UNKNOWN = SDLK_UNKNOWN,
  55. KEY_A = SDLK_a,
  56. KEY_B = SDLK_b,
  57. KEY_C = SDLK_c,
  58. KEY_D = SDLK_d,
  59. KEY_E = SDLK_e,
  60. KEY_F = SDLK_f,
  61. KEY_G = SDLK_g,
  62. KEY_H = SDLK_h,
  63. KEY_I = SDLK_i,
  64. KEY_J = SDLK_j,
  65. KEY_K = SDLK_k,
  66. KEY_L = SDLK_l,
  67. KEY_M = SDLK_m,
  68. KEY_N = SDLK_n,
  69. KEY_O = SDLK_o,
  70. KEY_P = SDLK_p,
  71. KEY_Q = SDLK_q,
  72. KEY_R = SDLK_r,
  73. KEY_S = SDLK_s,
  74. KEY_T = SDLK_t,
  75. KEY_U = SDLK_u,
  76. KEY_V = SDLK_v,
  77. KEY_W = SDLK_w,
  78. KEY_X = SDLK_x,
  79. KEY_Y = SDLK_y,
  80. KEY_Z = SDLK_z,
  81. KEY_0 = SDLK_0,
  82. KEY_1 = SDLK_1,
  83. KEY_2 = SDLK_2,
  84. KEY_3 = SDLK_3,
  85. KEY_4 = SDLK_4,
  86. KEY_5 = SDLK_5,
  87. KEY_6 = SDLK_6,
  88. KEY_7 = SDLK_7,
  89. KEY_8 = SDLK_8,
  90. KEY_9 = SDLK_9,
  91. KEY_BACKSPACE = SDLK_BACKSPACE,
  92. KEY_TAB = SDLK_TAB,
  93. KEY_RETURN = SDLK_RETURN,
  94. KEY_RETURN2 = SDLK_RETURN2,
  95. KEY_KP_ENTER = SDLK_KP_ENTER,
  96. KEY_SHIFT = SDLK_LSHIFT,
  97. KEY_CTRL = SDLK_LCTRL,
  98. KEY_ALT = SDLK_LALT,
  99. KEY_GUI = SDLK_LGUI,
  100. KEY_PAUSE = SDLK_PAUSE,
  101. KEY_CAPSLOCK = SDLK_CAPSLOCK,
  102. KEY_ESCAPE = SDLK_ESCAPE,
  103. KEY_SPACE = SDLK_SPACE,
  104. KEY_PAGEUP = SDLK_PAGEUP,
  105. KEY_PAGEDOWN = SDLK_PAGEDOWN,
  106. KEY_END = SDLK_END,
  107. KEY_HOME = SDLK_HOME,
  108. KEY_LEFT = SDLK_LEFT,
  109. KEY_UP = SDLK_UP,
  110. KEY_RIGHT = SDLK_RIGHT,
  111. KEY_DOWN = SDLK_DOWN,
  112. KEY_SELECT = SDLK_SELECT,
  113. KEY_PRINTSCREEN = SDLK_PRINTSCREEN,
  114. KEY_INSERT = SDLK_INSERT,
  115. KEY_DELETE = SDLK_DELETE,
  116. KEY_LGUI = SDLK_LGUI,
  117. KEY_RGUI = SDLK_RGUI,
  118. KEY_APPLICATION = SDLK_APPLICATION,
  119. KEY_KP_0 = SDLK_KP_0,
  120. KEY_KP_1 = SDLK_KP_1,
  121. KEY_KP_2 = SDLK_KP_2,
  122. KEY_KP_3 = SDLK_KP_3,
  123. KEY_KP_4 = SDLK_KP_4,
  124. KEY_KP_5 = SDLK_KP_5,
  125. KEY_KP_6 = SDLK_KP_6,
  126. KEY_KP_7 = SDLK_KP_7,
  127. KEY_KP_8 = SDLK_KP_8,
  128. KEY_KP_9 = SDLK_KP_9,
  129. KEY_KP_MULTIPLY = SDLK_KP_MULTIPLY,
  130. KEY_KP_PLUS = SDLK_KP_PLUS,
  131. KEY_KP_MINUS = SDLK_KP_MINUS,
  132. KEY_KP_PERIOD = SDLK_KP_PERIOD,
  133. KEY_KP_DIVIDE = SDLK_KP_DIVIDE,
  134. KEY_F1 = SDLK_F1,
  135. KEY_F2 = SDLK_F2,
  136. KEY_F3 = SDLK_F3,
  137. KEY_F4 = SDLK_F4,
  138. KEY_F5 = SDLK_F5,
  139. KEY_F6 = SDLK_F6,
  140. KEY_F7 = SDLK_F7,
  141. KEY_F8 = SDLK_F8,
  142. KEY_F9 = SDLK_F9,
  143. KEY_F10 = SDLK_F10,
  144. KEY_F11 = SDLK_F11,
  145. KEY_F12 = SDLK_F12,
  146. KEY_F13 = SDLK_F13,
  147. KEY_F14 = SDLK_F14,
  148. KEY_F15 = SDLK_F15,
  149. KEY_F16 = SDLK_F16,
  150. KEY_F17 = SDLK_F17,
  151. KEY_F18 = SDLK_F18,
  152. KEY_F19 = SDLK_F19,
  153. KEY_F20 = SDLK_F20,
  154. KEY_F21 = SDLK_F21,
  155. KEY_F22 = SDLK_F22,
  156. KEY_F23 = SDLK_F23,
  157. KEY_F24 = SDLK_F24,
  158. KEY_NUMLOCKCLEAR = SDLK_NUMLOCKCLEAR,
  159. KEY_SCROLLLOCK = SDLK_SCROLLLOCK,
  160. KEY_LSHIFT = SDLK_LSHIFT,
  161. KEY_RSHIFT = SDLK_RSHIFT,
  162. KEY_LCTRL = SDLK_LCTRL,
  163. KEY_RCTRL = SDLK_RCTRL,
  164. KEY_LALT = SDLK_LALT,
  165. KEY_RALT = SDLK_RALT,
  166. KEY_AC_BACK = SDLK_AC_BACK,
  167. KEY_AC_BOOKMARKS = SDLK_AC_BOOKMARKS,
  168. KEY_AC_FORWARD = SDLK_AC_FORWARD,
  169. KEY_AC_HOME = SDLK_AC_HOME,
  170. KEY_AC_REFRESH = SDLK_AC_REFRESH,
  171. KEY_AC_SEARCH = SDLK_AC_SEARCH,
  172. KEY_AC_STOP = SDLK_AC_STOP,
  173. KEY_AGAIN = SDLK_AGAIN,
  174. KEY_ALTERASE = SDLK_ALTERASE,
  175. KEY_AMPERSAND = SDLK_AMPERSAND,
  176. KEY_ASTERISK = SDLK_ASTERISK,
  177. KEY_AT = SDLK_AT,
  178. KEY_AUDIOMUTE = SDLK_AUDIOMUTE,
  179. KEY_AUDIONEXT = SDLK_AUDIONEXT,
  180. KEY_AUDIOPLAY = SDLK_AUDIOPLAY,
  181. KEY_AUDIOPREV = SDLK_AUDIOPREV,
  182. KEY_AUDIOSTOP = SDLK_AUDIOSTOP,
  183. KEY_BACKQUOTE = SDLK_BACKQUOTE,
  184. KEY_BACKSLASH = SDLK_BACKSLASH,
  185. KEY_BRIGHTNESSDOWN = SDLK_BRIGHTNESSDOWN,
  186. KEY_BRIGHTNESSUP = SDLK_BRIGHTNESSUP,
  187. KEY_CALCULATOR = SDLK_CALCULATOR,
  188. KEY_CANCEL = SDLK_CANCEL,
  189. KEY_CARET = SDLK_CARET,
  190. KEY_CLEAR = SDLK_CLEAR,
  191. KEY_CLEARAGAIN = SDLK_CLEARAGAIN,
  192. KEY_COLON = SDLK_COLON,
  193. KEY_COMMA = SDLK_COMMA,
  194. KEY_COMPUTER = SDLK_COMPUTER,
  195. KEY_COPY = SDLK_COPY,
  196. KEY_CRSEL = SDLK_CRSEL,
  197. KEY_CURRENCYSUBUNIT = SDLK_CURRENCYSUBUNIT,
  198. KEY_CURRENCYUNIT = SDLK_CURRENCYUNIT,
  199. KEY_CUT = SDLK_CUT,
  200. KEY_DECIMALSEPARATOR = SDLK_DECIMALSEPARATOR,
  201. KEY_DISPLAYSWITCH = SDLK_DISPLAYSWITCH,
  202. KEY_DOLLAR = SDLK_DOLLAR,
  203. KEY_EJECT = SDLK_EJECT,
  204. KEY_EQUALS = SDLK_EQUALS,
  205. KEY_EXCLAIM = SDLK_EXCLAIM,
  206. KEY_EXSEL = SDLK_EXSEL,
  207. KEY_FIND = SDLK_FIND,
  208. KEY_GREATER = SDLK_GREATER,
  209. KEY_HASH = SDLK_HASH,
  210. KEY_HELP = SDLK_HELP,
  211. KEY_KBDILLUMDOWN = SDLK_KBDILLUMDOWN,
  212. KEY_KBDILLUMTOGGLE = SDLK_KBDILLUMTOGGLE,
  213. KEY_KBDILLUMUP = SDLK_KBDILLUMUP,
  214. KEY_KP_00 = SDLK_KP_00,
  215. KEY_KP_000 = SDLK_KP_000,
  216. KEY_KP_A = SDLK_KP_A,
  217. KEY_KP_AMPERSAND = SDLK_KP_AMPERSAND,
  218. KEY_KP_AT = SDLK_KP_AT,
  219. KEY_KP_B = SDLK_KP_B,
  220. KEY_KP_BACKSPACE = SDLK_KP_BACKSPACE,
  221. KEY_KP_BINARY = SDLK_KP_BINARY,
  222. KEY_KP_C = SDLK_KP_C,
  223. KEY_KP_CLEAR = SDLK_KP_CLEAR,
  224. KEY_KP_CLEARENTRY = SDLK_KP_CLEARENTRY,
  225. KEY_KP_COLON = SDLK_KP_COLON,
  226. KEY_KP_COMMA = SDLK_KP_COMMA,
  227. KEY_KP_D = SDLK_KP_D,
  228. KEY_KP_DBLAMPERSAND = SDLK_KP_DBLAMPERSAND,
  229. KEY_KP_DBLVERTICALBAR = SDLK_KP_DBLVERTICALBAR,
  230. KEY_KP_DECIMAL = SDLK_KP_DECIMAL,
  231. KEY_KP_E = SDLK_KP_E,
  232. KEY_KP_EQUALS = SDLK_KP_EQUALS,
  233. KEY_KP_EQUALSAS400 = SDLK_KP_EQUALSAS400,
  234. KEY_KP_EXCLAM = SDLK_KP_EXCLAM,
  235. KEY_KP_F = SDLK_KP_F,
  236. KEY_KP_GREATER = SDLK_KP_GREATER,
  237. KEY_KP_HASH = SDLK_KP_HASH,
  238. KEY_KP_HEXADECIMAL = SDLK_KP_HEXADECIMAL,
  239. KEY_KP_LEFTBRACE = SDLK_KP_LEFTBRACE,
  240. KEY_KP_LEFTPAREN = SDLK_KP_LEFTPAREN,
  241. KEY_KP_LESS = SDLK_KP_LESS,
  242. KEY_KP_MEMADD = SDLK_KP_MEMADD,
  243. KEY_KP_MEMCLEAR = SDLK_KP_MEMCLEAR,
  244. KEY_KP_MEMDIVIDE = SDLK_KP_MEMDIVIDE,
  245. KEY_KP_MEMMULTIPLY = SDLK_KP_MEMMULTIPLY,
  246. KEY_KP_MEMRECALL = SDLK_KP_MEMRECALL,
  247. KEY_KP_MEMSTORE = SDLK_KP_MEMSTORE,
  248. KEY_KP_MEMSUBTRACT = SDLK_KP_MEMSUBTRACT,
  249. KEY_KP_OCTAL = SDLK_KP_OCTAL,
  250. KEY_KP_PERCENT = SDLK_KP_PERCENT,
  251. KEY_KP_PLUSMINUS = SDLK_KP_PLUSMINUS,
  252. KEY_KP_POWER = SDLK_KP_POWER,
  253. KEY_KP_RIGHTBRACE = SDLK_KP_RIGHTBRACE,
  254. KEY_KP_RIGHTPAREN = SDLK_KP_RIGHTPAREN,
  255. KEY_KP_SPACE = SDLK_KP_SPACE,
  256. KEY_KP_TAB = SDLK_KP_TAB,
  257. KEY_KP_VERTICALBAR = SDLK_KP_VERTICALBAR,
  258. KEY_KP_XOR = SDLK_KP_XOR,
  259. KEY_LEFTBRACKET = SDLK_LEFTBRACKET,
  260. KEY_LEFTPAREN = SDLK_LEFTPAREN,
  261. KEY_LESS = SDLK_LESS,
  262. KEY_MAIL = SDLK_MAIL,
  263. KEY_MEDIASELECT = SDLK_MEDIASELECT,
  264. KEY_MENU = SDLK_MENU,
  265. KEY_MINUS = SDLK_MINUS,
  266. KEY_MODE = SDLK_MODE,
  267. KEY_MUTE = SDLK_MUTE,
  268. KEY_OPER = SDLK_OPER,
  269. KEY_OUT = SDLK_OUT,
  270. KEY_PASTE = SDLK_PASTE,
  271. KEY_PERCENT = SDLK_PERCENT,
  272. KEY_PERIOD = SDLK_PERIOD,
  273. KEY_PLUS = SDLK_PLUS,
  274. KEY_POWER = SDLK_POWER,
  275. KEY_PRIOR = SDLK_PRIOR,
  276. KEY_QUESTION = SDLK_QUESTION,
  277. KEY_QUOTE = SDLK_QUOTE,
  278. KEY_QUOTEDBL = SDLK_QUOTEDBL,
  279. KEY_RIGHTBRACKET = SDLK_RIGHTBRACKET,
  280. KEY_RIGHTPAREN = SDLK_RIGHTPAREN,
  281. KEY_SEMICOLON = SDLK_SEMICOLON,
  282. KEY_SEPARATOR = SDLK_SEPARATOR,
  283. KEY_SLASH = SDLK_SLASH,
  284. KEY_SLEEP = SDLK_SLEEP,
  285. KEY_STOP = SDLK_STOP,
  286. KEY_SYSREQ = SDLK_SYSREQ,
  287. KEY_THOUSANDSSEPARATOR = SDLK_THOUSANDSSEPARATOR,
  288. KEY_UNDERSCORE = SDLK_UNDERSCORE,
  289. KEY_UNDO = SDLK_UNDO,
  290. KEY_VOLUMEDOWN = SDLK_VOLUMEDOWN,
  291. KEY_VOLUMEUP = SDLK_VOLUMEUP,
  292. KEY_WWW = SDLK_WWW,
  293. };
  294. enum Scancode : unsigned
  295. {
  296. SCANCODE_UNKNOWN = SDL_SCANCODE_UNKNOWN,
  297. SCANCODE_CTRL = SDL_SCANCODE_LCTRL,
  298. SCANCODE_SHIFT = SDL_SCANCODE_LSHIFT,
  299. SCANCODE_ALT = SDL_SCANCODE_LALT,
  300. SCANCODE_GUI = SDL_SCANCODE_LGUI,
  301. SCANCODE_A = SDL_SCANCODE_A,
  302. SCANCODE_B = SDL_SCANCODE_B,
  303. SCANCODE_C = SDL_SCANCODE_C,
  304. SCANCODE_D = SDL_SCANCODE_D,
  305. SCANCODE_E = SDL_SCANCODE_E,
  306. SCANCODE_F = SDL_SCANCODE_F,
  307. SCANCODE_G = SDL_SCANCODE_G,
  308. SCANCODE_H = SDL_SCANCODE_H,
  309. SCANCODE_I = SDL_SCANCODE_I,
  310. SCANCODE_J = SDL_SCANCODE_J,
  311. SCANCODE_K = SDL_SCANCODE_K,
  312. SCANCODE_L = SDL_SCANCODE_L,
  313. SCANCODE_M = SDL_SCANCODE_M,
  314. SCANCODE_N = SDL_SCANCODE_N,
  315. SCANCODE_O = SDL_SCANCODE_O,
  316. SCANCODE_P = SDL_SCANCODE_P,
  317. SCANCODE_Q = SDL_SCANCODE_Q,
  318. SCANCODE_R = SDL_SCANCODE_R,
  319. SCANCODE_S = SDL_SCANCODE_S,
  320. SCANCODE_T = SDL_SCANCODE_T,
  321. SCANCODE_U = SDL_SCANCODE_U,
  322. SCANCODE_V = SDL_SCANCODE_V,
  323. SCANCODE_W = SDL_SCANCODE_W,
  324. SCANCODE_X = SDL_SCANCODE_X,
  325. SCANCODE_Y = SDL_SCANCODE_Y,
  326. SCANCODE_Z = SDL_SCANCODE_Z,
  327. SCANCODE_1 = SDL_SCANCODE_1,
  328. SCANCODE_2 = SDL_SCANCODE_2,
  329. SCANCODE_3 = SDL_SCANCODE_3,
  330. SCANCODE_4 = SDL_SCANCODE_4,
  331. SCANCODE_5 = SDL_SCANCODE_5,
  332. SCANCODE_6 = SDL_SCANCODE_6,
  333. SCANCODE_7 = SDL_SCANCODE_7,
  334. SCANCODE_8 = SDL_SCANCODE_8,
  335. SCANCODE_9 = SDL_SCANCODE_9,
  336. SCANCODE_0 = SDL_SCANCODE_0,
  337. SCANCODE_RETURN = SDL_SCANCODE_RETURN,
  338. SCANCODE_ESCAPE = SDL_SCANCODE_ESCAPE,
  339. SCANCODE_BACKSPACE = SDL_SCANCODE_BACKSPACE,
  340. SCANCODE_TAB = SDL_SCANCODE_TAB,
  341. SCANCODE_SPACE = SDL_SCANCODE_SPACE,
  342. SCANCODE_MINUS = SDL_SCANCODE_MINUS,
  343. SCANCODE_EQUALS = SDL_SCANCODE_EQUALS,
  344. SCANCODE_LEFTBRACKET = SDL_SCANCODE_LEFTBRACKET,
  345. SCANCODE_RIGHTBRACKET = SDL_SCANCODE_RIGHTBRACKET,
  346. SCANCODE_BACKSLASH = SDL_SCANCODE_BACKSLASH,
  347. SCANCODE_NONUSHASH = SDL_SCANCODE_NONUSHASH,
  348. SCANCODE_SEMICOLON = SDL_SCANCODE_SEMICOLON,
  349. SCANCODE_APOSTROPHE = SDL_SCANCODE_APOSTROPHE,
  350. SCANCODE_GRAVE = SDL_SCANCODE_GRAVE,
  351. SCANCODE_COMMA = SDL_SCANCODE_COMMA,
  352. SCANCODE_PERIOD = SDL_SCANCODE_PERIOD,
  353. SCANCODE_SLASH = SDL_SCANCODE_SLASH,
  354. SCANCODE_CAPSLOCK = SDL_SCANCODE_CAPSLOCK,
  355. SCANCODE_F1 = SDL_SCANCODE_F1,
  356. SCANCODE_F2 = SDL_SCANCODE_F2,
  357. SCANCODE_F3 = SDL_SCANCODE_F3,
  358. SCANCODE_F4 = SDL_SCANCODE_F4,
  359. SCANCODE_F5 = SDL_SCANCODE_F5,
  360. SCANCODE_F6 = SDL_SCANCODE_F6,
  361. SCANCODE_F7 = SDL_SCANCODE_F7,
  362. SCANCODE_F8 = SDL_SCANCODE_F8,
  363. SCANCODE_F9 = SDL_SCANCODE_F9,
  364. SCANCODE_F10 = SDL_SCANCODE_F10,
  365. SCANCODE_F11 = SDL_SCANCODE_F11,
  366. SCANCODE_F12 = SDL_SCANCODE_F12,
  367. SCANCODE_PRINTSCREEN = SDL_SCANCODE_PRINTSCREEN,
  368. SCANCODE_SCROLLLOCK = SDL_SCANCODE_SCROLLLOCK,
  369. SCANCODE_PAUSE = SDL_SCANCODE_PAUSE,
  370. SCANCODE_INSERT = SDL_SCANCODE_INSERT,
  371. SCANCODE_HOME = SDL_SCANCODE_HOME,
  372. SCANCODE_PAGEUP = SDL_SCANCODE_PAGEUP,
  373. SCANCODE_DELETE = SDL_SCANCODE_DELETE,
  374. SCANCODE_END = SDL_SCANCODE_END,
  375. SCANCODE_PAGEDOWN = SDL_SCANCODE_PAGEDOWN,
  376. SCANCODE_RIGHT = SDL_SCANCODE_RIGHT,
  377. SCANCODE_LEFT = SDL_SCANCODE_LEFT,
  378. SCANCODE_DOWN = SDL_SCANCODE_DOWN,
  379. SCANCODE_UP = SDL_SCANCODE_UP,
  380. SCANCODE_NUMLOCKCLEAR = SDL_SCANCODE_NUMLOCKCLEAR,
  381. SCANCODE_KP_DIVIDE = SDL_SCANCODE_KP_DIVIDE,
  382. SCANCODE_KP_MULTIPLY = SDL_SCANCODE_KP_MULTIPLY,
  383. SCANCODE_KP_MINUS = SDL_SCANCODE_KP_MINUS,
  384. SCANCODE_KP_PLUS = SDL_SCANCODE_KP_PLUS,
  385. SCANCODE_KP_ENTER = SDL_SCANCODE_KP_ENTER,
  386. SCANCODE_KP_1 = SDL_SCANCODE_KP_1,
  387. SCANCODE_KP_2 = SDL_SCANCODE_KP_2,
  388. SCANCODE_KP_3 = SDL_SCANCODE_KP_3,
  389. SCANCODE_KP_4 = SDL_SCANCODE_KP_4,
  390. SCANCODE_KP_5 = SDL_SCANCODE_KP_5,
  391. SCANCODE_KP_6 = SDL_SCANCODE_KP_6,
  392. SCANCODE_KP_7 = SDL_SCANCODE_KP_7,
  393. SCANCODE_KP_8 = SDL_SCANCODE_KP_8,
  394. SCANCODE_KP_9 = SDL_SCANCODE_KP_9,
  395. SCANCODE_KP_0 = SDL_SCANCODE_KP_0,
  396. SCANCODE_KP_PERIOD = SDL_SCANCODE_KP_PERIOD,
  397. SCANCODE_NONUSBACKSLASH = SDL_SCANCODE_NONUSBACKSLASH,
  398. SCANCODE_APPLICATION = SDL_SCANCODE_APPLICATION,
  399. SCANCODE_POWER = SDL_SCANCODE_POWER,
  400. SCANCODE_KP_EQUALS = SDL_SCANCODE_KP_EQUALS,
  401. SCANCODE_F13 = SDL_SCANCODE_F13,
  402. SCANCODE_F14 = SDL_SCANCODE_F14,
  403. SCANCODE_F15 = SDL_SCANCODE_F15,
  404. SCANCODE_F16 = SDL_SCANCODE_F16,
  405. SCANCODE_F17 = SDL_SCANCODE_F17,
  406. SCANCODE_F18 = SDL_SCANCODE_F18,
  407. SCANCODE_F19 = SDL_SCANCODE_F19,
  408. SCANCODE_F20 = SDL_SCANCODE_F20,
  409. SCANCODE_F21 = SDL_SCANCODE_F21,
  410. SCANCODE_F22 = SDL_SCANCODE_F22,
  411. SCANCODE_F23 = SDL_SCANCODE_F23,
  412. SCANCODE_F24 = SDL_SCANCODE_F24,
  413. SCANCODE_EXECUTE = SDL_SCANCODE_EXECUTE,
  414. SCANCODE_HELP = SDL_SCANCODE_HELP,
  415. SCANCODE_MENU = SDL_SCANCODE_MENU,
  416. SCANCODE_SELECT = SDL_SCANCODE_SELECT,
  417. SCANCODE_STOP = SDL_SCANCODE_STOP,
  418. SCANCODE_AGAIN = SDL_SCANCODE_AGAIN,
  419. SCANCODE_UNDO = SDL_SCANCODE_UNDO,
  420. SCANCODE_CUT = SDL_SCANCODE_CUT,
  421. SCANCODE_COPY = SDL_SCANCODE_COPY,
  422. SCANCODE_PASTE = SDL_SCANCODE_PASTE,
  423. SCANCODE_FIND = SDL_SCANCODE_FIND,
  424. SCANCODE_MUTE = SDL_SCANCODE_MUTE,
  425. SCANCODE_VOLUMEUP = SDL_SCANCODE_VOLUMEUP,
  426. SCANCODE_VOLUMEDOWN = SDL_SCANCODE_VOLUMEDOWN,
  427. SCANCODE_KP_COMMA = SDL_SCANCODE_KP_COMMA,
  428. SCANCODE_KP_EQUALSAS400 = SDL_SCANCODE_KP_EQUALSAS400,
  429. SCANCODE_INTERNATIONAL1 = SDL_SCANCODE_INTERNATIONAL1,
  430. SCANCODE_INTERNATIONAL2 = SDL_SCANCODE_INTERNATIONAL2,
  431. SCANCODE_INTERNATIONAL3 = SDL_SCANCODE_INTERNATIONAL3,
  432. SCANCODE_INTERNATIONAL4 = SDL_SCANCODE_INTERNATIONAL4,
  433. SCANCODE_INTERNATIONAL5 = SDL_SCANCODE_INTERNATIONAL5,
  434. SCANCODE_INTERNATIONAL6 = SDL_SCANCODE_INTERNATIONAL6,
  435. SCANCODE_INTERNATIONAL7 = SDL_SCANCODE_INTERNATIONAL7,
  436. SCANCODE_INTERNATIONAL8 = SDL_SCANCODE_INTERNATIONAL8,
  437. SCANCODE_INTERNATIONAL9 = SDL_SCANCODE_INTERNATIONAL9,
  438. SCANCODE_LANG1 = SDL_SCANCODE_LANG1,
  439. SCANCODE_LANG2 = SDL_SCANCODE_LANG2,
  440. SCANCODE_LANG3 = SDL_SCANCODE_LANG3,
  441. SCANCODE_LANG4 = SDL_SCANCODE_LANG4,
  442. SCANCODE_LANG5 = SDL_SCANCODE_LANG5,
  443. SCANCODE_LANG6 = SDL_SCANCODE_LANG6,
  444. SCANCODE_LANG7 = SDL_SCANCODE_LANG7,
  445. SCANCODE_LANG8 = SDL_SCANCODE_LANG8,
  446. SCANCODE_LANG9 = SDL_SCANCODE_LANG9,
  447. SCANCODE_ALTERASE = SDL_SCANCODE_ALTERASE,
  448. SCANCODE_SYSREQ = SDL_SCANCODE_SYSREQ,
  449. SCANCODE_CANCEL = SDL_SCANCODE_CANCEL,
  450. SCANCODE_CLEAR = SDL_SCANCODE_CLEAR,
  451. SCANCODE_PRIOR = SDL_SCANCODE_PRIOR,
  452. SCANCODE_RETURN2 = SDL_SCANCODE_RETURN2,
  453. SCANCODE_SEPARATOR = SDL_SCANCODE_SEPARATOR,
  454. SCANCODE_OUT = SDL_SCANCODE_OUT,
  455. SCANCODE_OPER = SDL_SCANCODE_OPER,
  456. SCANCODE_CLEARAGAIN = SDL_SCANCODE_CLEARAGAIN,
  457. SCANCODE_CRSEL = SDL_SCANCODE_CRSEL,
  458. SCANCODE_EXSEL = SDL_SCANCODE_EXSEL,
  459. SCANCODE_KP_00 = SDL_SCANCODE_KP_00,
  460. SCANCODE_KP_000 = SDL_SCANCODE_KP_000,
  461. SCANCODE_THOUSANDSSEPARATOR = SDL_SCANCODE_THOUSANDSSEPARATOR,
  462. SCANCODE_DECIMALSEPARATOR = SDL_SCANCODE_DECIMALSEPARATOR,
  463. SCANCODE_CURRENCYUNIT = SDL_SCANCODE_CURRENCYUNIT,
  464. SCANCODE_CURRENCYSUBUNIT = SDL_SCANCODE_CURRENCYSUBUNIT,
  465. SCANCODE_KP_LEFTPAREN = SDL_SCANCODE_KP_LEFTPAREN,
  466. SCANCODE_KP_RIGHTPAREN = SDL_SCANCODE_KP_RIGHTPAREN,
  467. SCANCODE_KP_LEFTBRACE = SDL_SCANCODE_KP_LEFTBRACE,
  468. SCANCODE_KP_RIGHTBRACE = SDL_SCANCODE_KP_RIGHTBRACE,
  469. SCANCODE_KP_TAB = SDL_SCANCODE_KP_TAB,
  470. SCANCODE_KP_BACKSPACE = SDL_SCANCODE_KP_BACKSPACE,
  471. SCANCODE_KP_A = SDL_SCANCODE_KP_A,
  472. SCANCODE_KP_B = SDL_SCANCODE_KP_B,
  473. SCANCODE_KP_C = SDL_SCANCODE_KP_C,
  474. SCANCODE_KP_D = SDL_SCANCODE_KP_D,
  475. SCANCODE_KP_E = SDL_SCANCODE_KP_E,
  476. SCANCODE_KP_F = SDL_SCANCODE_KP_F,
  477. SCANCODE_KP_XOR = SDL_SCANCODE_KP_XOR,
  478. SCANCODE_KP_POWER = SDL_SCANCODE_KP_POWER,
  479. SCANCODE_KP_PERCENT = SDL_SCANCODE_KP_PERCENT,
  480. SCANCODE_KP_LESS = SDL_SCANCODE_KP_LESS,
  481. SCANCODE_KP_GREATER = SDL_SCANCODE_KP_GREATER,
  482. SCANCODE_KP_AMPERSAND = SDL_SCANCODE_KP_AMPERSAND,
  483. SCANCODE_KP_DBLAMPERSAND = SDL_SCANCODE_KP_DBLAMPERSAND,
  484. SCANCODE_KP_VERTICALBAR = SDL_SCANCODE_KP_VERTICALBAR,
  485. SCANCODE_KP_DBLVERTICALBAR = SDL_SCANCODE_KP_DBLVERTICALBAR,
  486. SCANCODE_KP_COLON = SDL_SCANCODE_KP_COLON,
  487. SCANCODE_KP_HASH = SDL_SCANCODE_KP_HASH,
  488. SCANCODE_KP_SPACE = SDL_SCANCODE_KP_SPACE,
  489. SCANCODE_KP_AT = SDL_SCANCODE_KP_AT,
  490. SCANCODE_KP_EXCLAM = SDL_SCANCODE_KP_EXCLAM,
  491. SCANCODE_KP_MEMSTORE = SDL_SCANCODE_KP_MEMSTORE,
  492. SCANCODE_KP_MEMRECALL = SDL_SCANCODE_KP_MEMRECALL,
  493. SCANCODE_KP_MEMCLEAR = SDL_SCANCODE_KP_MEMCLEAR,
  494. SCANCODE_KP_MEMADD = SDL_SCANCODE_KP_MEMADD,
  495. SCANCODE_KP_MEMSUBTRACT = SDL_SCANCODE_KP_MEMSUBTRACT,
  496. SCANCODE_KP_MEMMULTIPLY = SDL_SCANCODE_KP_MEMMULTIPLY,
  497. SCANCODE_KP_MEMDIVIDE = SDL_SCANCODE_KP_MEMDIVIDE,
  498. SCANCODE_KP_PLUSMINUS = SDL_SCANCODE_KP_PLUSMINUS,
  499. SCANCODE_KP_CLEAR = SDL_SCANCODE_KP_CLEAR,
  500. SCANCODE_KP_CLEARENTRY = SDL_SCANCODE_KP_CLEARENTRY,
  501. SCANCODE_KP_BINARY = SDL_SCANCODE_KP_BINARY,
  502. SCANCODE_KP_OCTAL = SDL_SCANCODE_KP_OCTAL,
  503. SCANCODE_KP_DECIMAL = SDL_SCANCODE_KP_DECIMAL,
  504. SCANCODE_KP_HEXADECIMAL = SDL_SCANCODE_KP_HEXADECIMAL,
  505. SCANCODE_LCTRL = SDL_SCANCODE_LCTRL,
  506. SCANCODE_LSHIFT = SDL_SCANCODE_LSHIFT,
  507. SCANCODE_LALT = SDL_SCANCODE_LALT,
  508. SCANCODE_LGUI = SDL_SCANCODE_LGUI,
  509. SCANCODE_RCTRL = SDL_SCANCODE_RCTRL,
  510. SCANCODE_RSHIFT = SDL_SCANCODE_RSHIFT,
  511. SCANCODE_RALT = SDL_SCANCODE_RALT,
  512. SCANCODE_RGUI = SDL_SCANCODE_RGUI,
  513. SCANCODE_MODE = SDL_SCANCODE_MODE,
  514. SCANCODE_AUDIONEXT = SDL_SCANCODE_AUDIONEXT,
  515. SCANCODE_AUDIOPREV = SDL_SCANCODE_AUDIOPREV,
  516. SCANCODE_AUDIOSTOP = SDL_SCANCODE_AUDIOSTOP,
  517. SCANCODE_AUDIOPLAY = SDL_SCANCODE_AUDIOPLAY,
  518. SCANCODE_AUDIOMUTE = SDL_SCANCODE_AUDIOMUTE,
  519. SCANCODE_MEDIASELECT = SDL_SCANCODE_MEDIASELECT,
  520. SCANCODE_WWW = SDL_SCANCODE_WWW,
  521. SCANCODE_MAIL = SDL_SCANCODE_MAIL,
  522. SCANCODE_CALCULATOR = SDL_SCANCODE_CALCULATOR,
  523. SCANCODE_COMPUTER = SDL_SCANCODE_COMPUTER,
  524. SCANCODE_AC_SEARCH = SDL_SCANCODE_AC_SEARCH,
  525. SCANCODE_AC_HOME = SDL_SCANCODE_AC_HOME,
  526. SCANCODE_AC_BACK = SDL_SCANCODE_AC_BACK,
  527. SCANCODE_AC_FORWARD = SDL_SCANCODE_AC_FORWARD,
  528. SCANCODE_AC_STOP = SDL_SCANCODE_AC_STOP,
  529. SCANCODE_AC_REFRESH = SDL_SCANCODE_AC_REFRESH,
  530. SCANCODE_AC_BOOKMARKS = SDL_SCANCODE_AC_BOOKMARKS,
  531. SCANCODE_BRIGHTNESSDOWN = SDL_SCANCODE_BRIGHTNESSDOWN,
  532. SCANCODE_BRIGHTNESSUP = SDL_SCANCODE_BRIGHTNESSUP,
  533. SCANCODE_DISPLAYSWITCH = SDL_SCANCODE_DISPLAYSWITCH,
  534. SCANCODE_KBDILLUMTOGGLE = SDL_SCANCODE_KBDILLUMTOGGLE,
  535. SCANCODE_KBDILLUMDOWN = SDL_SCANCODE_KBDILLUMDOWN,
  536. SCANCODE_KBDILLUMUP = SDL_SCANCODE_KBDILLUMUP,
  537. SCANCODE_EJECT = SDL_SCANCODE_EJECT,
  538. SCANCODE_SLEEP = SDL_SCANCODE_SLEEP,
  539. SCANCODE_APP1 = SDL_SCANCODE_APP1,
  540. SCANCODE_APP2 = SDL_SCANCODE_APP2,
  541. };
  542. enum HatPosition : unsigned
  543. {
  544. HAT_CENTER = SDL_HAT_CENTERED,
  545. HAT_UP = SDL_HAT_UP,
  546. HAT_RIGHT = SDL_HAT_RIGHT,
  547. HAT_DOWN = SDL_HAT_DOWN,
  548. HAT_LEFT = SDL_HAT_LEFT,
  549. };
  550. enum ControllerButton : unsigned
  551. {
  552. CONTROLLER_BUTTON_A = SDL_CONTROLLER_BUTTON_A,
  553. CONTROLLER_BUTTON_B = SDL_CONTROLLER_BUTTON_B,
  554. CONTROLLER_BUTTON_X = SDL_CONTROLLER_BUTTON_X,
  555. CONTROLLER_BUTTON_Y = SDL_CONTROLLER_BUTTON_Y,
  556. CONTROLLER_BUTTON_BACK = SDL_CONTROLLER_BUTTON_BACK,
  557. CONTROLLER_BUTTON_GUIDE = SDL_CONTROLLER_BUTTON_GUIDE,
  558. CONTROLLER_BUTTON_START = SDL_CONTROLLER_BUTTON_START,
  559. CONTROLLER_BUTTON_LEFTSTICK = SDL_CONTROLLER_BUTTON_LEFTSTICK,
  560. CONTROLLER_BUTTON_RIGHTSTICK = SDL_CONTROLLER_BUTTON_RIGHTSTICK,
  561. CONTROLLER_BUTTON_LEFTSHOULDER = SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
  562. CONTROLLER_BUTTON_RIGHTSHOULDER = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
  563. CONTROLLER_BUTTON_DPAD_UP = SDL_CONTROLLER_BUTTON_DPAD_UP,
  564. CONTROLLER_BUTTON_DPAD_DOWN = SDL_CONTROLLER_BUTTON_DPAD_DOWN,
  565. CONTROLLER_BUTTON_DPAD_LEFT = SDL_CONTROLLER_BUTTON_DPAD_LEFT,
  566. CONTROLLER_BUTTON_DPAD_RIGHT = SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
  567. };
  568. enum ControllerAxis : unsigned
  569. {
  570. CONTROLLER_AXIS_LEFTX = SDL_CONTROLLER_AXIS_LEFTX,
  571. CONTROLLER_AXIS_LEFTY = SDL_CONTROLLER_AXIS_LEFTY,
  572. CONTROLLER_AXIS_RIGHTX = SDL_CONTROLLER_AXIS_RIGHTX,
  573. CONTROLLER_AXIS_RIGHTY = SDL_CONTROLLER_AXIS_RIGHTY,
  574. CONTROLLER_AXIS_TRIGGERLEFT = SDL_CONTROLLER_AXIS_TRIGGERLEFT,
  575. CONTROLLER_AXIS_TRIGGERRIGHT = SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
  576. };
  577. }