home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / harbb30g.zip / INCLUDE / inkey.ch < prev    next >
Text File  |  1999-09-17  |  16KB  |  276 lines

  1. /*
  2.  * $Id: inkey.ch,v 1.9 1999/09/17 01:29:08 vszel Exp $
  3.  */
  4.  
  5. /*
  6.  * Harbour Project source code:
  7.  * Header file for INKEY() function
  8.  *
  9.  * Copyright 1999 {list of individual authors and e-mail addresses}
  10.  * www - http://www.harbour-project.org
  11.  *
  12.  * This program is free software; you can redistribute it and/or modify
  13.  * it under the terms of the GNU General Public License as published by
  14.  * the Free Software Foundation; either version 2 of the License, or
  15.  * (at your option) any later version, with one exception:
  16.  *
  17.  * The exception is that if you link the Harbour Runtime Library (HRL)
  18.  * and/or the Harbour Virtual Machine (HVM) with other files to produce
  19.  * an executable, this does not by itself cause the resulting executable
  20.  * to be covered by the GNU General Public License. Your use of that
  21.  * executable is in no way restricted on account of linking the HRL
  22.  * and/or HVM code into it.
  23.  *
  24.  * This program is distributed in the hope that it will be useful,
  25.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  26.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27.  * GNU General Public License for more details.
  28.  *
  29.  * You should have received a copy of the GNU General Public License
  30.  * along with this program; if not, write to the Free Software
  31.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
  32.  * their web site at http://www.gnu.org/).
  33.  *
  34.  */
  35.  
  36. /* NOTE: This file is also used by C code. */
  37.  
  38. /* NOTE: Keystroke descriptions marked with an asterisk (*) are only */
  39. /*       available on enhanced keyboards (those with more than 84 keys) */
  40.  
  41. #ifndef _INKEY_CH
  42. #define _INKEY_CH
  43.  
  44. /* Input event masks */
  45.  
  46. #define INKEY_MOVE              1
  47. #define INKEY_LDOWN             2
  48. #define INKEY_LUP               4
  49. #define INKEY_RDOWN             8
  50. #define INKEY_RUP               16
  51. #define INKEY_KEYBOARD          128
  52. #define INKEY_ALL               159
  53. #define INKEY_EXTENDED          256
  54.  
  55. /* Mouse events */
  56.  
  57. #define K_MOUSEMOVE             1001
  58. #define K_LBUTTONDOWN           1002
  59. #define K_LBUTTONUP             1003
  60. #define K_RBUTTONDOWN           1004
  61. #define K_RBUTTONUP             1005
  62. #define K_LDBLCLK               1006
  63. #define K_RDBLCLK               1007
  64.  
  65. /* Cursor movement keys */
  66.  
  67. #define K_UP                    5     /*   Up arrow, Ctrl-E              */
  68. #define K_DOWN                  24    /*   Down arrow, Ctrl-X            */
  69. #define K_LEFT                  19    /*   Left arrow, Ctrl-S            */
  70. #define K_RIGHT                 4     /*   Right arrow, Ctrl-D           */
  71. #define K_HOME                  1     /*   Home, Ctrl-A                  */
  72. #define K_END                   6     /*   End, Ctrl-F                   */
  73. #define K_PGUP                  18    /*   PgUp, Ctrl-R                  */
  74. #define K_PGDN                  3     /*   PgDn, Ctrl-C                  */
  75.  
  76. #define K_CTRL_UP               397   /* * Ctrl-Up arrow                 */
  77. #define K_CTRL_DOWN             401   /* * Ctrl-Down arrow               */
  78. #define K_CTRL_LEFT             26    /*   Ctrl-Left arrow, Ctrl-Z       */
  79. #define K_CTRL_RIGHT            2     /*   Ctrl-Right arrow, Ctrl-B      */
  80. #define K_CTRL_HOME             29    /*   Ctrl-Home, Ctrl-]             */
  81. #define K_CTRL_END              23    /*   Ctrl-End, Ctrl-W              */
  82. #define K_CTRL_PGUP             31    /*   Ctrl-PgUp, Ctrl-Hyphen        */
  83. #define K_CTRL_PGDN             30    /*   Ctrl-PgDn, Ctrl-^             */
  84.  
  85. #define K_ALT_UP                408   /* * Alt-Up arrow                  */
  86. #define K_ALT_DOWN              416   /* * Alt-Down arrow                */
  87. #define K_ALT_LEFT              411   /* * Alt-Left arrow                */
  88. #define K_ALT_RIGHT             413   /* * Alt-Right arrow               */
  89. #define K_ALT_HOME              407   /* * Alt-Home                      */
  90. #define K_ALT_END               415   /* * Alt-End                       */
  91. #define K_ALT_PGUP              409   /* * Alt-PgUp                      */
  92. #define K_ALT_PGDN              417   /* * Alt-PgDn                      */
  93.  
  94. /* Misc. keys */
  95.  
  96. #define K_ENTER                 13    /*   Enter, Ctrl-M                 */
  97. #define K_INTRO                 13    /*                                 */
  98. #define K_RETURN                13    /*   Return, Ctrl-M                */
  99. #define K_SPACE                 32    /*   Space bar                     */
  100. #define K_ESC                   27    /*   Esc, Ctrl-[                   */
  101.  
  102. #define K_CTRL_ENTER            10    /*   Ctrl-Enter                    */
  103. #define K_CTRL_RETURN           10    /*   Ctrl-Return                   */
  104. #define K_CTRL_RET              10    /*   Ctrl-Return (Compatibility)   */
  105. #define K_CTRL_PRTSCR           379   /* * Ctrl-Print Screen             */
  106. #define K_CTRL_QUESTION         309   /*   Ctrl-?                        */
  107.  
  108. #define K_ALT_ENTER             284   /* * Alt-Enter                     */
  109. #define K_ALT_RETURN            284   /* * Alt-Return                    */
  110. #define K_ALT_EQUALS            387   /* * Alt-Equals                    */
  111. #define K_ALT_ESC               257   /* * Alt-Esc                       */
  112.  
  113. /* Keypad keys */
  114.  
  115. #define KP_ALT_ENTER            422   /* * Keypad Alt-Enter              */
  116.  
  117. #define KP_CTRL_5               399   /* * Keypad Ctrl-5                 */
  118. #define KP_CTRL_SLASH           405   /* * Keypad Ctrl-/                 */
  119. #define KP_CTRL_ASTERISK        406   /* * Keypad Ctrl-*                 */
  120. #define KP_CTRL_MINUS           398   /* * Keypad Ctrl--                 */
  121. #define KP_CTRL_PLUS            400   /* * Keypad Ctrl-+                 */
  122.  
  123. #define KP_ALT_5                5     /* * Keypad Alt-5                  */
  124. #define KP_ALT_SLASH            420   /* * Keypad Alt-/                  */
  125. #define KP_ALT_ASTERISK         311   /* * Keypad Alt-*                  */
  126. #define KP_ALT_MINUS            330   /* * Keypad Alt--                  */
  127. #define KP_ALT_PLUS             334   /* * Keypad Alt-+                  */
  128.  
  129. /* Editing keys */
  130.  
  131. #define K_INS                   22    /*   Ins, Ctrl-V                   */
  132. #define K_DEL                   7     /*   Del, Ctrl-G                   */
  133. #define K_BS                    8     /*   Backspace, Ctrl-H             */
  134. #define K_TAB                   9     /*   Tab, Ctrl-I                   */
  135. #define K_SH_TAB                271   /*   Shift-Tab                     */
  136.  
  137. #define K_CTRL_INS              402   /* * Ctrl-Ins                      */
  138. #define K_CTRL_DEL              403   /* * Ctrl-Del                      */
  139. #define K_CTRL_BS               127   /*   Ctrl-Backspace                */
  140. #define K_CTRL_TAB              404   /* * Ctrl-Tab                      */
  141.  
  142. #define K_ALT_INS               418   /* * Alt-Ins                       */
  143. #define K_ALT_DEL               419   /* * Alt-Del                       */
  144. #define K_ALT_BS                270   /* * Alt-Backspace                 */
  145. #define K_ALT_TAB               421   /* * Alt-Tab                       */
  146.  
  147. /* Control keys */
  148.  
  149. #define K_CTRL_A                1     /*   Ctrl-A, Home                  */
  150. #define K_CTRL_B                2     /*   Ctrl-B, Ctrl-Right arrow      */
  151. #define K_CTRL_C                3     /*   Ctrl-C, PgDn, Ctrl-ScrollLock */
  152. #define K_CTRL_D                4     /*   Ctrl-D, Right arrow           */
  153. #define K_CTRL_E                5     /*   Ctrl-E, Up arrow              */
  154. #define K_CTRL_F                6     /*   Ctrl-F, End                   */
  155. #define K_CTRL_G                7     /*   Ctrl-G, Del                   */
  156. #define K_CTRL_H                8     /*   Ctrl-H, Backspace             */
  157. #define K_CTRL_I                9     /*   Ctrl-I, Tab                   */
  158. #define K_CTRL_J                10    /*   Ctrl-J                        */
  159. #define K_CTRL_K                11    /*   Ctrl-K                        */
  160. #define K_CTRL_L                12    /*   Ctrl-L                        */
  161. #define K_CTRL_M                13    /*   Ctrl-M, Return                */
  162. #define K_CTRL_N                14    /*   Ctrl-N                        */
  163. #define K_CTRL_O                15    /*   Ctrl-O                        */
  164. #define K_CTRL_P                16    /*   Ctrl-P                        */
  165. #define K_CTRL_Q                17    /*   Ctrl-Q                        */
  166. #define K_CTRL_R                18    /*   Ctrl-R, PgUp                  */
  167. #define K_CTRL_S                19    /*   Ctrl-S, Left arrow            */
  168. #define K_CTRL_T                20    /*   Ctrl-T                        */
  169. #define K_CTRL_U                21    /*   Ctrl-U                        */
  170. #define K_CTRL_V                22    /*   Ctrl-V, Ins                   */
  171. #define K_CTRL_W                23    /*   Ctrl-W, Ctrl-End              */
  172. #define K_CTRL_X                24    /*   Ctrl-X, Down arrow            */
  173. #define K_CTRL_Y                25    /*   Ctrl-Y                        */
  174. #define K_CTRL_Z                26    /*   Ctrl-Z, Ctrl-Left arrow       */
  175.  
  176. /* Alt keys */
  177.  
  178. #define K_ALT_A                 286   /*   Alt-A                         */
  179. #define K_ALT_B                 304   /*   Alt-B                         */
  180. #define K_ALT_C                 302   /*   Alt-C                         */
  181. #define K_ALT_D                 288   /*   Alt-D                         */
  182. #define K_ALT_E                 274   /*   Alt-E                         */
  183. #define K_ALT_F                 289   /*   Alt-F                         */
  184. #define K_ALT_G                 290   /*   Alt-G                         */
  185. #define K_ALT_H                 291   /*   Alt-H                         */
  186. #define K_ALT_I                 279   /*   Alt-I                         */
  187. #define K_ALT_J                 292   /*   Alt-J                         */
  188. #define K_ALT_K                 293   /*   Alt-K                         */
  189. #define K_ALT_L                 294   /*   Alt-L                         */
  190. #define K_ALT_M                 306   /*   Alt-M                         */
  191. #define K_ALT_N                 305   /*   Alt-N                         */
  192. #define K_ALT_O                 280   /*   Alt-O                         */
  193. #define K_ALT_P                 281   /*   Alt-P                         */
  194. #define K_ALT_Q                 272   /*   Alt-Q                         */
  195. #define K_ALT_R                 275   /*   Alt-R                         */
  196. #define K_ALT_S                 287   /*   Alt-S                         */
  197. #define K_ALT_T                 276   /*   Alt-T                         */
  198. #define K_ALT_U                 278   /*   Alt-U                         */
  199. #define K_ALT_V                 303   /*   Alt-V                         */
  200. #define K_ALT_W                 273   /*   Alt-W                         */
  201. #define K_ALT_X                 301   /*   Alt-X                         */
  202. #define K_ALT_Y                 277   /*   Alt-Y                         */
  203. #define K_ALT_Z                 300   /*   Alt-Z                         */
  204. #define K_ALT_1                 376   /*   Alt-1                         */
  205. #define K_ALT_2                 377   /*   Alt-2                         */
  206. #define K_ALT_3                 378   /*   Alt-3                         */
  207. #define K_ALT_4                 379   /*   Alt-4                         */
  208. #define K_ALT_5                 380   /*   Alt-5                         */
  209. #define K_ALT_6                 381   /*   Alt-6                         */
  210. #define K_ALT_7                 382   /*   Alt-7                         */
  211. #define K_ALT_8                 383   /*   Alt-8                         */
  212. #define K_ALT_9                 384   /*   Alt-9                         */
  213. #define K_ALT_0                 385   /*   Alt-0                         */
  214.  
  215. /* Function keys */
  216.  
  217. #define K_F1                    28    /*   F1, Ctrl-Backslash            */
  218. #define K_F2                    -1    /*   F2                            */
  219. #define K_F3                    -2    /*   F3                            */
  220. #define K_F4                    -3    /*   F4                            */
  221. #define K_F5                    -4    /*   F5                            */
  222. #define K_F6                    -5    /*   F6                            */
  223. #define K_F7                    -6    /*   F7                            */
  224. #define K_F8                    -7    /*   F8                            */
  225. #define K_F9                    -8    /*   F9                            */
  226. #define K_F10                   -9    /*   F10                           */
  227. #define K_F11                   -40   /* * F11                           */
  228. #define K_F12                   -41   /* * F12                           */
  229.  
  230. /* Control-function keys */
  231.  
  232. #define K_CTRL_F1               -20   /*   Ctrl-F1                       */
  233. #define K_CTRL_F2               -21   /*   Ctrl-F2                       */
  234. #define K_CTRL_F3               -22   /*   Ctrl-F4                       */
  235. #define K_CTRL_F4               -23   /*   Ctrl-F3                       */
  236. #define K_CTRL_F5               -24   /*   Ctrl-F5                       */
  237. #define K_CTRL_F6               -25   /*   Ctrl-F6                       */
  238. #define K_CTRL_F7               -26   /*   Ctrl-F7                       */
  239. #define K_CTRL_F8               -27   /*   Ctrl-F8                       */
  240. #define K_CTRL_F9               -28   /*   Ctrl-F9                       */
  241. #define K_CTRL_F10              -29   /*   Ctrl-F10                      */
  242. #define K_CTRL_F11              -44   /* * Ctrl-F11                      */
  243. #define K_CTRL_F12              -45   /* * Ctrl-F12                      */
  244.  
  245. /* Alt-function keys */
  246.  
  247. #define K_ALT_F1                -30   /*   Alt-F1                        */
  248. #define K_ALT_F2                -31   /*   Alt-F2                        */
  249. #define K_ALT_F3                -32   /*   Alt-F3                        */
  250. #define K_ALT_F4                -33   /*   Alt-F4                        */
  251. #define K_ALT_F5                -34   /*   Alt-F5                        */
  252. #define K_ALT_F6                -35   /*   Alt-F6                        */
  253. #define K_ALT_F7                -36   /*   Alt-F7                        */
  254. #define K_ALT_F8                -37   /*   Alt-F8                        */
  255. #define K_ALT_F9                -38   /*   Alt-F9                        */
  256. #define K_ALT_F10               -39   /*   Alt-F10                       */
  257. #define K_ALT_F11               -46   /* * Alt-F11                       */
  258. #define K_ALT_F12               -47   /* * Alt-F12                       */
  259.  
  260. /* Shift-function keys */
  261.  
  262. #define K_SH_F1                 -10   /*   Shift-F1                      */
  263. #define K_SH_F2                 -11   /*   Shift-F2                      */
  264. #define K_SH_F3                 -12   /*   Shift-F3                      */
  265. #define K_SH_F4                 -13   /*   Shift-F4                      */
  266. #define K_SH_F5                 -14   /*   Shift-F5                      */
  267. #define K_SH_F6                 -15   /*   Shift-F6                      */
  268. #define K_SH_F7                 -16   /*   Shift-F7                      */
  269. #define K_SH_F8                 -17   /*   Shift-F8                      */
  270. #define K_SH_F9                 -18   /*   Shift-F9                      */
  271. #define K_SH_F10                -19   /*   Shift-F10                     */
  272. #define K_SH_F11                -42   /* * Shift-F11                     */
  273. #define K_SH_F12                -43   /* * Shift-F12                     */
  274.  
  275. #endif /* _INKEY_CH */
  276.