key_code.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #pragma once
  6. namespace crown
  7. {
  8. /// Enumerates keyboard modifier buttons.
  9. ///
  10. /// @ingroup Input
  11. struct ModifierButton
  12. {
  13. enum Enum
  14. {
  15. SHIFT = 1,
  16. CTRL = 2,
  17. ALT = 4
  18. };
  19. };
  20. /// Enumerates keyboard buttons.
  21. ///
  22. /// @ingroup Input
  23. struct KeyboardButton
  24. {
  25. enum Enum
  26. {
  27. NONE = 0x00,
  28. TAB = 0x09, // ASCII value
  29. ENTER = 0x0D, // ASCII value
  30. ESCAPE = 0x1B, // ASCII value
  31. SPACE = 0x20, // ASCII value
  32. BACKSPACE = 0x7F, // ASCII value
  33. /* KeyPad */
  34. KP_0 = 0x80,
  35. KP_1 = 0x81,
  36. KP_2 = 0x82,
  37. KP_3 = 0x83,
  38. KP_4 = 0x84,
  39. KP_5 = 0x85,
  40. KP_6 = 0x86,
  41. KP_7 = 0x87,
  42. KP_8 = 0x88,
  43. KP_9 = 0x89,
  44. /* Function keys */
  45. F1 = 0x90,
  46. F2 = 0x91,
  47. F3 = 0x92,
  48. F4 = 0x93,
  49. F5 = 0x94,
  50. F6 = 0x95,
  51. F7 = 0x96,
  52. F8 = 0x97,
  53. F9 = 0x98,
  54. F10 = 0x99,
  55. F11 = 0x9A,
  56. F12 = 0x9B,
  57. /* Other keys */
  58. HOME = 0xA0,
  59. LEFT = 0xA1,
  60. UP = 0xA2,
  61. RIGHT = 0xA3,
  62. DOWN = 0xA4,
  63. PAGE_UP = 0xA5,
  64. PAGE_DOWN = 0xA6,
  65. /* Modifier keys */
  66. LCONTROL = 0xB0,
  67. RCONTROL = 0xB1,
  68. LSHIFT = 0xB2,
  69. RSHIFT = 0xB3,
  70. CAPS_LOCK = 0xB4,
  71. LALT = 0xB5,
  72. RALT = 0xB6,
  73. LSUPER = 0xB7,
  74. RSUPER = 0xB8,
  75. /* [0x30, 0x39] reserved for ASCII digits */
  76. NUM_0 = 0x30,
  77. NUM_1 = 0x31,
  78. NUM_2 = 0x32,
  79. NUM_3 = 0x33,
  80. NUM_4 = 0x34,
  81. NUM_5 = 0x35,
  82. NUM_6 = 0x36,
  83. NUM_7 = 0x37,
  84. NUM_8 = 0x38,
  85. NUM_9 = 0x39,
  86. /* [0x41, 0x5A] reserved for ASCII alphabet */
  87. A = 0x41,
  88. B = 0x42,
  89. C = 0x43,
  90. D = 0x44,
  91. E = 0x45,
  92. F = 0x46,
  93. G = 0x47,
  94. H = 0x48,
  95. I = 0x49,
  96. J = 0x4A,
  97. K = 0x4B,
  98. L = 0x4C,
  99. M = 0x4D,
  100. N = 0x4E,
  101. O = 0x4F,
  102. P = 0x50,
  103. Q = 0x51,
  104. R = 0x52,
  105. S = 0x53,
  106. T = 0x54,
  107. U = 0x55,
  108. V = 0x56,
  109. W = 0x57,
  110. X = 0x58,
  111. Y = 0x59,
  112. Z = 0x5A,
  113. /* [0x61, 0x7A] reserved for ASCII alphabet */
  114. // The last key _must_ be <= 0xFF
  115. COUNT = 0xFF
  116. };
  117. };
  118. } // namespace crown