keycodes.bmx 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. SuperStrict
  2. Rem
  3. bbdoc: User input/Key codes
  4. End Rem
  5. Module BRL.KeyCodes
  6. ModuleInfo "Version: 1.05"
  7. ModuleInfo "Author: Mark Sibly"
  8. ModuleInfo "License: zlib/libpng"
  9. ModuleInfo "Copyright: Blitz Research Ltd"
  10. ModuleInfo "Modserver: BRL"
  11. ModuleInfo "History: 1.05 Release"
  12. ModuleInfo "History: Removed KEY_NUMSLASH from docs"
  13. Const MOUSE_LEFT:Int=1
  14. Const MOUSE_RIGHT:Int=2
  15. Const MOUSE_MIDDLE:Int=3
  16. Const MODIFIER_NONE:Int=0
  17. Const MODIFIER_SHIFT:Int=1 'shift key
  18. Const MODIFIER_CONTROL:Int=2 'ctrl key
  19. Const MODIFIER_OPTION:Int=4 'alt or menu key
  20. Const MODIFIER_SYSTEM:Int=8 'windows or apple key
  21. Const MODIFIER_LMOUSE:Int=16 'reserved by Mark!
  22. Const MODIFIER_RMOUSE:Int=32 'reserved by Mark!
  23. Const MODIFIER_MMOUSE:Int=64 'reserved by Mark!
  24. Const MODIFIER_ALT:Int=MODIFIER_OPTION
  25. Const MODIFIER_MENU:Int=MODIFIER_OPTION
  26. Const MODIFIER_APPLE:Int=MODIFIER_SYSTEM
  27. Const MODIFIER_WINDOWS:Int=MODIFIER_SYSTEM
  28. ?MACOS
  29. Const MODIFIER_COMMAND:Int=MODIFIER_APPLE
  30. ?Win32
  31. Const MODIFIER_COMMAND:Int=MODIFIER_CONTROL
  32. ?Linux
  33. Const MODIFIER_COMMAND:Int=MODIFIER_CONTROL
  34. ?
  35. Const KEY_BACKSPACE:Int=8
  36. Const KEY_TAB:Int=9
  37. Const KEY_CLEAR:Int=12
  38. Const KEY_RETURN:Int=13
  39. Const KEY_ENTER:Int=13
  40. Const KEY_ESCAPE:Int=27
  41. Const KEY_SPACE:Int=32
  42. Const KEY_PAGEUP:Int=33
  43. Const KEY_PAGEDOWN:Int=34
  44. Const KEY_END:Int=35
  45. Const KEY_HOME:Int=36
  46. Const KEY_LEFT:Int=37,KEY_UP:Int=38,KEY_RIGHT:Int=39,KEY_DOWN:Int=40
  47. Const KEY_SELECT:Int=41
  48. Const KEY_PRINT:Int=42
  49. Const KEY_EXECUTE:Int=43
  50. Const KEY_SCREEN:Int=44
  51. Const KEY_INSERT:Int=45
  52. Const KEY_DELETE:Int=46
  53. Const KEY_0:Int=48,KEY_1:Int=49,KEY_2:Int=50,KEY_3:Int=51,KEY_4:Int=52
  54. Const KEY_5:Int=53,KEY_6:Int=54,KEY_7:Int=55,KEY_8:Int=56,KEY_9:Int=57
  55. Const KEY_A:Int=65,KEY_B:Int=66,KEY_C:Int=67,KEY_D:Int=68,KEY_E:Int=69
  56. Const KEY_F:Int=70,KEY_G:Int=71,KEY_H:Int=72,KEY_I:Int=73,KEY_J:Int=74
  57. Const KEY_K:Int=75,KEY_L:Int=76,KEY_M:Int=77,KEY_N:Int=78,KEY_O:Int=79
  58. Const KEY_P:Int=80,KEY_Q:Int=81,KEY_R:Int=82,KEY_S:Int=83,KEY_T:Int=84
  59. Const KEY_U:Int=85,KEY_V:Int=86,KEY_W:Int=87,KEY_X:Int=88,KEY_Y:Int=89
  60. Const KEY_Z:Int=90
  61. Const KEY_NUM0:Int=96
  62. Const KEY_NUM1:Int=97
  63. Const KEY_NUM2:Int=98
  64. Const KEY_NUM3:Int=99
  65. Const KEY_NUM4:Int=100
  66. Const KEY_NUM5:Int=101
  67. Const KEY_NUM6:Int=102
  68. Const KEY_NUM7:Int=103
  69. Const KEY_NUM8:Int=104
  70. Const KEY_NUM9:Int=105
  71. Const KEY_NUMMULTIPLY:Int=106
  72. Const KEY_NUMADD:Int=107
  73. Const KEY_NUMSUBTRACT:Int=109
  74. Const KEY_NUMDECIMAL:Int=110
  75. Const KEY_NUMDIVIDE:Int=111
  76. Const KEY_F1:Int=112
  77. Const KEY_F2:Int=113
  78. Const KEY_F3:Int=114
  79. Const KEY_F4:Int=115
  80. Const KEY_F5:Int=116
  81. Const KEY_F6:Int=117
  82. Const KEY_F7:Int=118
  83. Const KEY_F8:Int=119
  84. Const KEY_F9:Int=120
  85. Const KEY_F10:Int=121
  86. Const KEY_F11:Int=122
  87. Const KEY_F12:Int=123
  88. Const KEY_TILDE:Int=192
  89. Const KEY_MINUS:Int=189
  90. Const KEY_EQUALS:Int=187
  91. Const KEY_OPENBRACKET:Int=219
  92. Const KEY_CLOSEBRACKET:Int=221
  93. Const KEY_BACKSLASH:Int=226
  94. Const KEY_SEMICOLON:Int=186
  95. Const KEY_QUOTES:Int=222
  96. Const KEY_COMMA:Int=188
  97. Const KEY_PERIOD:Int=190
  98. Const KEY_SLASH:Int=191
  99. Const KEY_LSHIFT:Int=160
  100. Const KEY_RSHIFT:Int=161
  101. Const KEY_LCONTROL:Int=162
  102. Const KEY_RCONTROL:Int=163
  103. Const KEY_LALT:Int=164
  104. Const KEY_RALT:Int=165
  105. Const KEY_LSYS:Int=91
  106. Const KEY_RSYS:Int=92
  107. Const KEY_BROWSER_BACK:Int=166
  108. Const KEY_BROWSER_FORWARD:Int=167
  109. Const KEY_BROWSER_REFRESH:Int=168
  110. Const KEY_BROWSER_STOP:Int=169
  111. Const KEY_BROWSER_SEARCH:Int=170
  112. Const KEY_BROWSER_FAVORITES:Int=171
  113. Const KEY_BROWSER_HOME:Int=172
  114. Rem
  115. Const KEY_PAUSE:Int=19
  116. Const KEY_CAPSLOCK:Int=20
  117. Const KEY_HELP:Int=47
  118. Const KEY_NUMSLASH:Int=108
  119. Const KEY_START:Int=93
  120. Const KEY_NUMLOCK:Int=144
  121. Const KEY_SCROLL:Int=145
  122. Const KEY_VOLUME_MUTE:Int=173
  123. Const KEY_VOLUME_DOWN:Int=174
  124. Const KEY_VOLUME_UP:Int=175
  125. Const KEY_MEDIA_NEXT_TRACK:Int=176
  126. Const KEY_MEDIA_PREV_TRACK:Int=177
  127. Const KEY_MEDIA_STOP:Int=178
  128. Const KEY_MEDIA_PLAY_PAUSE:Int=179
  129. Const KEY_LAUNCH_MAIL:Int=180
  130. Const KEY_LAUNCH_MEDIA_SELECT:Int=181
  131. Const KEY_LAUNCH_APP1:Int=182
  132. Const KEY_LAUNCH_APP2:Int=183
  133. End Rem
  134. Function NameForKey:String( key:Int )
  135. Select key
  136. Case KEY_BACKSPACE Return "Backspace"
  137. Case KEY_TAB Return "Tab"
  138. Case KEY_CLEAR Return "Clear"
  139. Case KEY_RETURN Return "Return"
  140. Case KEY_ENTER Return "Enter"
  141. Case KEY_ESCAPE Return "Esc"
  142. Case KEY_SPACE Return "Space"
  143. Case KEY_PAGEUP Return "Page Up"
  144. Case KEY_PAGEDOWN Return "Page Down"
  145. Case KEY_END Return "End"
  146. Case KEY_HOME Return "Home"
  147. Case KEY_LEFT Return "Left"
  148. Case KEY_UP Return "Up"
  149. Case KEY_RIGHT Return "Right"
  150. Case KEY_DOWN Return "Down"
  151. Case KEY_SELECT Return "Select"
  152. Case KEY_PRINT Return "Print"
  153. Case KEY_EXECUTE Return "Execute"
  154. Case KEY_SCREEN Return "Screen"
  155. Case KEY_INSERT Return "Insert"
  156. Case KEY_DELETE Return "Delete"
  157. Case KEY_0 Return "0"
  158. Case KEY_1 Return "1"
  159. Case KEY_2 Return "2"
  160. Case KEY_3 Return "3"
  161. Case KEY_4 Return "4"
  162. Case KEY_5 Return "5"
  163. Case KEY_6 Return "6"
  164. Case KEY_7 Return "7"
  165. Case KEY_8 Return "8"
  166. Case KEY_9 Return "9"
  167. Case KEY_A Return "A"
  168. Case KEY_B Return "B"
  169. Case KEY_C Return "C"
  170. Case KEY_D Return "D"
  171. Case KEY_E Return "E"
  172. Case KEY_F Return "F"
  173. Case KEY_G Return "G"
  174. Case KEY_H Return "H"
  175. Case KEY_I Return "I"
  176. Case KEY_J Return "J"
  177. Case KEY_K Return "K"
  178. Case KEY_L Return "L"
  179. Case KEY_M Return "M"
  180. Case KEY_N Return "N"
  181. Case KEY_O Return "O"
  182. Case KEY_P Return "P"
  183. Case KEY_Q Return "Q"
  184. Case KEY_R Return "R"
  185. Case KEY_S Return "S"
  186. Case KEY_T Return "T"
  187. Case KEY_U Return "U"
  188. Case KEY_V Return "V"
  189. Case KEY_W Return "W"
  190. Case KEY_X Return "X"
  191. Case KEY_Y Return "Y"
  192. Case KEY_Z Return "Z"
  193. Case KEY_NUM0 Return "Num 0"
  194. Case KEY_NUM1 Return "Num 1"
  195. Case KEY_NUM2 Return "Num 2"
  196. Case KEY_NUM3 Return "Num 3"
  197. Case KEY_NUM4 Return "Num 4"
  198. Case KEY_NUM5 Return "Num 5"
  199. Case KEY_NUM6 Return "Num 6"
  200. Case KEY_NUM7 Return "Num 7"
  201. Case KEY_NUM8 Return "Num 8"
  202. Case KEY_NUM9 Return "Num 9"
  203. Case KEY_NUMMULTIPLY Return "Num Mul"
  204. Case KEY_NUMADD Return "Num Add"
  205. Case KEY_NUMSUBTRACT Return "Num Sub"
  206. Case KEY_NUMDECIMAL Return "Num Dec"
  207. Case KEY_NUMDIVIDE Return "Num Div"
  208. Case KEY_F1 Return "F1"
  209. Case KEY_F2 Return "F2"
  210. Case KEY_F3 Return "F3"
  211. Case KEY_F4 Return "F4"
  212. Case KEY_F5 Return "F5"
  213. Case KEY_F6 Return "F6"
  214. Case KEY_F7 Return "F7"
  215. Case KEY_F8 Return "F8"
  216. Case KEY_F9 Return "F9"
  217. Case KEY_F10 Return "F10"
  218. Case KEY_F11 Return "F11"
  219. Case KEY_F12 Return "F12"
  220. Case KEY_TILDE Return "~~"
  221. Case KEY_MINUS Return "-"
  222. Case KEY_EQUALS Return "="
  223. Case KEY_OPENBRACKET Return "("
  224. Case KEY_CLOSEBRACKET Return ")"
  225. Case KEY_BACKSLASH Return "Back Slash"
  226. Case KEY_SEMICOLON Return "Semi"
  227. Case KEY_QUOTES Return "~q"
  228. Case KEY_COMMA Return "Comma"
  229. Case KEY_PERIOD Return "Period"
  230. Case KEY_SLASH Return "Slash"
  231. Case KEY_LSHIFT Return "Left Shift"
  232. Case KEY_RSHIFT Return "Right Shift"
  233. Case KEY_LCONTROL Return "Left Ctrl"
  234. Case KEY_RCONTROL Return "Right Ctrl"
  235. Case KEY_LALT Return "Left Alt"
  236. Case KEY_RALT Return "Right Alt"
  237. Case KEY_LSYS Return "Left Sys"
  238. Case KEY_RSYS Return "Right Sys"
  239. Case KEY_BROWSER_BACK Return "Browser Back"
  240. Case KEY_BROWSER_FORWARD Return "Browser Forward"
  241. Case KEY_BROWSER_REFRESH Return "Browser Refresh"
  242. Case KEY_BROWSER_STOP Return "Browser Stop"
  243. Case KEY_BROWSER_SEARCH Return "Browser Search"
  244. Case KEY_BROWSER_FAVORITES Return "Browser Favorites"
  245. Case KEY_BROWSER_HOME Return "Browser Home"
  246. End Select
  247. End Function
  248. Function KeyForName:Int( name:String )
  249. Select name
  250. Case "Backspace" Return KEY_BACKSPACE
  251. Case "Tab" Return KEY_TAB
  252. Case "Clear" Return KEY_CLEAR
  253. Case "Return" Return KEY_RETURN
  254. Case "Enter" Return KEY_ENTER
  255. Case "Esc" Return KEY_ESCAPE
  256. Case "Space" Return KEY_SPACE
  257. Case "Page Up" Return KEY_PAGEUP
  258. Case "Page Down" Return KEY_PAGEDOWN
  259. Case "End" Return KEY_END
  260. Case "Home" Return KEY_HOME
  261. Case "Left" Return KEY_LEFT
  262. Case "Up" Return KEY_UP
  263. Case "Right" Return KEY_RIGHT
  264. Case "Down" Return KEY_DOWN
  265. Case "Select" Return KEY_SELECT
  266. Case "Print" Return KEY_PRINT
  267. Case "Execute" Return KEY_EXECUTE
  268. Case "Screen" Return KEY_SCREEN
  269. Case "Insert" Return KEY_INSERT
  270. Case "Delete" Return KEY_DELETE
  271. Case "0" Return KEY_0
  272. Case "1" Return KEY_1
  273. Case "2" Return KEY_2
  274. Case "3" Return KEY_3
  275. Case "4" Return KEY_4
  276. Case "5" Return KEY_5
  277. Case "6" Return KEY_6
  278. Case "7" Return KEY_7
  279. Case "8" Return KEY_8
  280. Case "9" Return KEY_9
  281. Case "A" Return KEY_A
  282. Case "B" Return KEY_B
  283. Case "C" Return KEY_C
  284. Case "D" Return KEY_D
  285. Case "E" Return KEY_E
  286. Case "F" Return KEY_F
  287. Case "G" Return KEY_G
  288. Case "H" Return KEY_H
  289. Case "I" Return KEY_I
  290. Case "J" Return KEY_J
  291. Case "K" Return KEY_K
  292. Case "L" Return KEY_L
  293. Case "M" Return KEY_M
  294. Case "N" Return KEY_N
  295. Case "O" Return KEY_O
  296. Case "P" Return KEY_P
  297. Case "Q" Return KEY_Q
  298. Case "R" Return KEY_R
  299. Case "S" Return KEY_S
  300. Case "T" Return KEY_T
  301. Case "U" Return KEY_U
  302. Case "V" Return KEY_V
  303. Case "W" Return KEY_W
  304. Case "X" Return KEY_X
  305. Case "Y" Return KEY_Y
  306. Case "Z" Return KEY_Z
  307. Case "Num 0" Return KEY_NUM0
  308. Case "Num 1" Return KEY_NUM1
  309. Case "Num 2" Return KEY_NUM2
  310. Case "Num 3" Return KEY_NUM3
  311. Case "Num 4" Return KEY_NUM4
  312. Case "Num 5" Return KEY_NUM5
  313. Case "Num 6" Return KEY_NUM6
  314. Case "Num 7" Return KEY_NUM7
  315. Case "Num 8" Return KEY_NUM8
  316. Case "Num 9" Return KEY_NUM9
  317. Case "Num Mul" Return KEY_NUMMULTIPLY
  318. Case "Num Add" Return KEY_NUMADD
  319. Case "Num Sub" Return KEY_NUMSUBTRACT
  320. Case "Num Dec" Return KEY_NUMDECIMAL
  321. Case "Num Div" Return KEY_NUMDIVIDE
  322. Case "F1" Return KEY_F1
  323. Case "F2" Return KEY_F2
  324. Case "F3" Return KEY_F3
  325. Case "F4" Return KEY_F4
  326. Case "F5" Return KEY_F5
  327. Case "F6" Return KEY_F6
  328. Case "F7" Return KEY_F7
  329. Case "F8" Return KEY_F8
  330. Case "F9" Return KEY_F9
  331. Case "F10" Return KEY_F10
  332. Case "F11" Return KEY_F11
  333. Case "F12" Return KEY_F12
  334. Case "~~" Return KEY_TILDE
  335. Case "-" Return KEY_MINUS
  336. Case "=" Return KEY_EQUALS
  337. Case "(" Return KEY_OPENBRACKET
  338. Case ")" Return KEY_CLOSEBRACKET
  339. Case "Back Slash" Return KEY_BACKSLASH
  340. Case "Semi" Return KEY_SEMICOLON
  341. Case "~q" Return KEY_QUOTES
  342. Case "Comma" Return KEY_COMMA
  343. Case "Period" Return KEY_PERIOD
  344. Case "Slash" Return KEY_SLASH
  345. Case "Left Shift" Return KEY_LSHIFT
  346. Case "Right Shift" Return KEY_RSHIFT
  347. Case "Left Ctrl" Return KEY_LCONTROL
  348. Case "Right Ctrl" Return KEY_RCONTROL
  349. Case "Left Alt" Return KEY_LALT
  350. Case "Right Alt" Return KEY_RALT
  351. Case "Left Sys" Return KEY_LSYS
  352. Case "Right Sys" Return KEY_RSYS
  353. Case "Browser Back" Return KEY_BROWSER_BACK
  354. Case "Browser Forward" Return KEY_BROWSER_FORWARD
  355. Case "Browser Refresh" Return KEY_BROWSER_REFRESH
  356. Case "Browser Stop" Return KEY_BROWSER_STOP
  357. Case "Browser Search" Return KEY_BROWSER_SEARCH
  358. Case "Browser Favorites" Return KEY_BROWSER_FAVORITES
  359. Case "Browser Home" Return KEY_BROWSER_HOME
  360. End Select
  361. End Function