Keyboard.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #ifndef KEYBOARD_H_
  2. #define KEYBOARD_H_
  3. namespace gameplay
  4. {
  5. /**
  6. * Keyboard key event and key definitions.
  7. */
  8. class Keyboard
  9. {
  10. friend class Platform;
  11. public:
  12. /**
  13. * The keyboard event.
  14. */
  15. enum KeyEvent
  16. {
  17. KEY_PRESS,
  18. KEY_RELEASE,
  19. KEY_CHAR
  20. };
  21. /**
  22. * The key (code).
  23. */
  24. enum Key
  25. {
  26. KEY_NONE = 0,
  27. KEY_PAUSE = 0x0013,
  28. KEY_SCROLL_LOCK = 0x1014,
  29. KEY_PRINT = 0x1061,
  30. KEY_SYSREQ = 0x106A,
  31. KEY_BREAK = 0x106B,
  32. KEY_ESCAPE = 0x001B,
  33. KEY_BACKSPACE = 0x0008,
  34. KEY_TAB = 0x0009,
  35. KEY_BACK_TAB = 0x0089,
  36. KEY_RETURN = 0x000D,
  37. KEY_CAPS_LOCK = 0x00E5,
  38. KEY_SHIFT = 0x00E1,
  39. KEY_CTRL = 0x00E3,
  40. KEY_ALT = 0x00E9,
  41. KEY_MENU = 0x1067,
  42. KEY_HYPER = 0x10ED,
  43. KEY_INSERT = 0x1063,
  44. KEY_HOME = 0x1050,
  45. KEY_PG_UP = 0x1055,
  46. KEY_DELETE = 0x10FF,
  47. KEY_END = 0x1057,
  48. KEY_PG_DOWN = 0x1056,
  49. KEY_LEFT_ARROW = 0x1051,
  50. KEY_RIGHT_ARROW = 0x1053,
  51. KEY_UP_ARROW = 0x1052,
  52. KEY_DOWN_ARROW = 0x1054,
  53. KEY_NUM_LOCK = 0x107F,
  54. KEY_KP_PLUS = 0x10AB,
  55. KEY_KP_MINUS = 0x10AD,
  56. KEY_KP_MULTIPLY = 0x10AA,
  57. KEY_KP_DIVIDE = 0x10AF,
  58. KEY_KP_ENTER = 0x108D,
  59. KEY_KP_HOME = 0x10B7,
  60. KEY_KP_UP = 0x10B8,
  61. KEY_KP_PG_UP = 0x10B9,
  62. KEY_KP_LEFT = 0x10B4,
  63. KEY_KP_FIVE = 0x10B5,
  64. KEY_KP_RIGHT = 0x10B6,
  65. KEY_KP_END = 0x10B1,
  66. KEY_KP_DOWN = 0x10B2,
  67. KEY_KP_PG_DOWN = 0x10B3,
  68. KEY_KP_INSERT = 0x10B0,
  69. KEY_KP_DELETE = 0x10AE,
  70. KEY_F1 = 0x00BE,
  71. KEY_F2 = 0x00BF,
  72. KEY_F3 = 0x00C0,
  73. KEY_F4 = 0x00C1,
  74. KEY_F5 = 0x00C2,
  75. KEY_F6 = 0x00C3,
  76. KEY_F7 = 0x00C4,
  77. KEY_F8 = 0x00C5,
  78. KEY_F9 = 0x00C6,
  79. KEY_F10 = 0x00C7,
  80. KEY_F11 = 0x00C8,
  81. KEY_F12 = 0x00C9,
  82. KEY_SPACE = ' ',
  83. KEY_EXCLAM = '!',
  84. KEY_QUOTE = '"',
  85. KEY_NUMBER = '#',
  86. KEY_DOLLAR = '$',
  87. KEY_PERCENT = '%',
  88. KEY_CIRCUMFLEX = '^',
  89. KEY_AMPERSAND = '&',
  90. KEY_APOSTROPHE = '\'',
  91. KEY_LEFT_PARENTHESIS = '(',
  92. KEY_RIGHT_PARENTHESIS = ')',
  93. KEY_ASTERISK = '*',
  94. KEY_PLUS = '+',
  95. KEY_COMMA = ',',
  96. KEY_MINUS = '-',
  97. KEY_PERIOD = '.',
  98. KEY_SLASH = '/',
  99. KEY_ZERO = '0',
  100. KEY_ONE = '1',
  101. KEY_TWO = '2',
  102. KEY_THREE = '3',
  103. KEY_FOUR = '4',
  104. KEY_FIVE = '5',
  105. KEY_SIX = '6',
  106. KEY_SEVEN = '7',
  107. KEY_EIGHT = '8',
  108. KEY_NINE = '9',
  109. KEY_COLON = ':',
  110. KEY_SEMICOLON = ';',
  111. KEY_LESS_THAN = '<',
  112. KEY_EQUAL = '=',
  113. KEY_GREATER_THAN = '>',
  114. KEY_QUESTION = '?',
  115. KEY_AT = '@',
  116. KEY_CAPITAL_A = 'A',
  117. KEY_CAPITAL_B = 'B',
  118. KEY_CAPITAL_C = 'C',
  119. KEY_CAPITAL_D = 'D',
  120. KEY_CAPITAL_E = 'E',
  121. KEY_CAPITAL_F = 'F',
  122. KEY_CAPITAL_G = 'G',
  123. KEY_CAPITAL_H = 'H',
  124. KEY_CAPITAL_I = 'I',
  125. KEY_CAPITAL_J = 'J',
  126. KEY_CAPITAL_K = 'K',
  127. KEY_CAPITAL_L = 'L',
  128. KEY_CAPITAL_M = 'M',
  129. KEY_CAPITAL_N = 'N',
  130. KEY_CAPITAL_O = 'O',
  131. KEY_CAPITAL_P = 'P',
  132. KEY_CAPITAL_Q = 'Q',
  133. KEY_CAPITAL_R = 'R',
  134. KEY_CAPITAL_S = 'S',
  135. KEY_CAPITAL_T = 'T',
  136. KEY_CAPITAL_U = 'U',
  137. KEY_CAPITAL_V = 'V',
  138. KEY_CAPITAL_W = 'W',
  139. KEY_CAPITAL_X = 'X',
  140. KEY_CAPITAL_Y = 'Y',
  141. KEY_CAPITAL_Z = 'Z',
  142. KEY_LEFT_BRACKET = '[',
  143. KEY_BACK_SLASH = '\\',
  144. KEY_RIGHT_BRACKET = ']',
  145. KEY_UNDERSCORE = '_',
  146. KEY_GRAVE = '`',
  147. KEY_A = 'a',
  148. KEY_B = 'b',
  149. KEY_C = 'c',
  150. KEY_D = 'd',
  151. KEY_E = 'e',
  152. KEY_F = 'f',
  153. KEY_G = 'g',
  154. KEY_H = 'h',
  155. KEY_I = 'i',
  156. KEY_J = 'j',
  157. KEY_K = 'k',
  158. KEY_L = 'l',
  159. KEY_M = 'm',
  160. KEY_N = 'n',
  161. KEY_O = 'o',
  162. KEY_P = 'p',
  163. KEY_Q = 'q',
  164. KEY_R = 'r',
  165. KEY_S = 's',
  166. KEY_T = 't',
  167. KEY_U = 'u',
  168. KEY_V = 'v',
  169. KEY_W = 'w',
  170. KEY_X = 'x',
  171. KEY_Y = 'y',
  172. KEY_Z = 'z',
  173. KEY_LEFT_BRACE = '{',
  174. KEY_BAR = '|',
  175. KEY_RIGHT_BRACE = '}',
  176. KEY_TILDE = '~',
  177. KEY_EURO = 0x20AC,
  178. KEY_POUND = 0x00A3,
  179. KEY_YEN = 0x00A5,
  180. KEY_MIDDLE_DOT = 0x0095,
  181. KEY_SEARCH = 0xFFAA
  182. };
  183. private:
  184. /**
  185. * Constructor. Private for static.
  186. */
  187. Keyboard() { }
  188. };
  189. }
  190. #endif