home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / c / ccua_dbc.zip / DB_KEY.H < prev    next >
C/C++ Source or Header  |  1992-09-11  |  9KB  |  330 lines

  1. /****************************************************************************/
  2. /*                 HEADER FILE FOR DATABOSS MODULE: DB_KEY                  */
  3. /****************************************************************************/
  4.  
  5. /*********************************  TYPES  **********************************/
  6.  
  7. typedef enum {BasicChrs,IBMGraphics,AllChrs} prtmode;
  8. typedef enum {NoB,LeftB,RightB,BothB,CenterB,CLeftB,CRightB,AllB} mouseb;
  9.  
  10. typedef struct {
  11.     uchar ch;
  12.     bool _xkey;
  13. } mkey;
  14.  
  15. typedef void (*background)(void);
  16. typedef uchar (*casemapfun)(uchar inch);
  17.  
  18. typedef struct {
  19.     word    date_format;
  20.     uchar   currency_chars[5];
  21.     uchar   thou_sep[2];
  22.     uchar   dec_sep[2];
  23.     uchar   date_sep[2];
  24.     uchar   time_sep[2];
  25.     byte    currency_format;
  26.     byte    sig_digits;
  27.     byte    time_format;
  28.     ptr     case_map;
  29.     uchar   datalist_sep[2];
  30.     word    reserved[5];
  31. } cditype;
  32.  
  33. typedef bool  (*kpressfunc)(void);
  34. typedef uchar (*getkeyfunc)(void);
  35.  
  36. /*******************************  CONSTANTS  ********************************/
  37.  
  38. /* Special keys */
  39.  
  40. #define MouseCV  13
  41. #define MouseCH  40
  42.  
  43. #define Nul      0
  44. #define Space    32
  45. #define BackSp   8
  46. #define Tab      9
  47. #define Enter    13
  48. #define Esc      27
  49. #define STab     143
  50.  
  51. /*********************************************
  52. *  [DG] 09/11/92 -- Added CtrlEnter keycode  *
  53. *********************************************/
  54. #define CtrlEnter 10
  55.  
  56. /* Numpad keys */
  57.  
  58. #define PgUp       201
  59. #define PgDn       209
  60. #define EndKey     207
  61. #define Home       199
  62. #define Ins        210
  63. #define Del        211
  64. #define CtrlPrtsc  242
  65. #define LArr       203
  66. #define RArr       205
  67. #define UArr       200
  68. #define DArr       208
  69. #define CtrlLArr   243
  70. #define CtrlRArr   244
  71. #define CtrlPgUp   132
  72. #define CtrlPgDn   246
  73. #define CtrlHome   247
  74. #define CtrlEnd    245
  75.  
  76. /* Function keys */
  77.  
  78. #define F1   187
  79. #define F2   188
  80. #define F3   189
  81. #define F4   190
  82. #define F5   191
  83. #define F6   192
  84. #define F7   193
  85. #define F8   194
  86. #define F9   195
  87. #define F10  196
  88. #define F11  133
  89. #define F12  134
  90.  
  91. /* Shifted function keys */
  92.  
  93. #define sF1   212
  94. #define sF2   213
  95. #define sF3   214
  96. #define sF4   215
  97. #define sF5   216
  98. #define sF6   217
  99. #define sF7   218
  100. #define sF8   219
  101. #define sF9   220
  102. #define sF10  221
  103. #define sF11  135
  104. #define sF12  136
  105.  
  106. /* Control function keys */
  107.  
  108. #define cF1   222
  109. #define cF2   223
  110. #define cF3   224
  111. #define cF4   225
  112. #define cF5   226
  113. #define cF6   227
  114. #define cF7   228
  115. #define cF8   229
  116. #define cF9   230
  117. #define cF10  231
  118. #define cF11  137
  119. #define cF12  138
  120.  
  121. /* Alt function keys */
  122.  
  123. #define aF1   232
  124. #define aF2   233
  125. #define aF3   234
  126. #define aF4   235
  127. #define aF5   236
  128. #define aF6   237
  129. #define aF7   238
  130. #define aF8   239
  131. #define aF9   240
  132. #define aF10  241
  133. #define aF11  139
  134. #define aF12  140
  135.  
  136. /* Control keys */
  137.  
  138. #define CtrlA  1
  139. #define CtrlB  2
  140. #define CtrlC  3
  141. #define CtrlD  4
  142. #define CtrlE  5
  143. #define CtrlF  6
  144. #define CtrlG  7
  145. #define CtrlH  8
  146. #define CtrlI  9
  147. #define CtrlJ  10
  148. #define CtrlK  11
  149. #define CtrlL  12
  150. #define CtrlM  13
  151. #define CtrlN  14
  152. #define CtrlO  15
  153. #define CtrlP  16
  154. #define CtrlQ  17
  155. #define CtrlR  18
  156. #define CtrlS  19
  157. #define CtrlT  20
  158. #define CtrlU  21
  159. #define CtrlV  22
  160. #define CtrlW  23
  161. #define CtrlX  24
  162. #define CtrlY  25
  163. #define CtrlZ  26
  164.  
  165. /* Alt keys */
  166.  
  167. #define AltA  158
  168. #define AltB  176
  169. #define AltC  174
  170. #define AltD  160
  171. #define AltE  146
  172. #define AltF  161
  173. #define AltG  162
  174. #define AltH  163
  175. #define AltI  151
  176. #define AltJ  164
  177. #define AltK  165
  178. #define AltL  166
  179. #define AltM  178
  180. #define AltN  177
  181. #define AltO  152
  182. #define AltP  153
  183. #define AltQ  144
  184. #define AltR  147
  185. #define AltS  159
  186. #define AltT  148
  187. #define AltU  150
  188. #define AltV  175
  189. #define AltW  145
  190. #define AltX  173
  191. #define AltY  149
  192. #define AltZ  172
  193. #define Alt1  248
  194. #define Alt2  249
  195. #define Alt3  250
  196. #define Alt4  251
  197. #define Alt5  252
  198. #define Alt6  253
  199. #define Alt7  254
  200. #define Alt8  255
  201. #define Alt9  128
  202. #define Alt0  129
  203. #define AltMinus   130
  204. #define AltEquals  131
  205.  
  206. /* Mouse Keys */
  207.  
  208. extern const mkey MLeftB;    /*  = {Enter, False  */
  209. extern const mkey MRightB;   /*  = {Esc,   False  */
  210. extern const mkey MBothB;    /*  = {F1,    True}  */
  211. extern const mkey MCenterB;  /*  = {F1,    True}  */
  212. extern const mkey MCLeftB;   /*  = {F1,    True}  */
  213. extern const mkey MCRightB;  /*  = {F1,    True}  */
  214. extern const mkey MAllB;     /*  = {F1,    True}  */
  215. extern const mkey MUp;       /*  = {UArr,  True}  */
  216. extern const mkey MDown;     /*  = {DArr,  True}  */
  217. extern const mkey MLeft;     /*  = {LArr,  True}  */
  218. extern const mkey MRight;    /*  = {RArr,  True}  */
  219.  
  220. /* Keyboard status bit masks */
  221.  
  222. #define RShiftKey   0x01
  223. #define LShiftKey   0x02
  224. #define CtrlKey     0x04
  225. #define AltKey      0x08
  226. #define ScrollLock  0x10
  227. #define NumLock     0x20
  228. #define CapsLock    0x40
  229.  
  230. #define LCtrlKey    0x01
  231. #define LAltKey     0x02
  232. #define RCtrlKey    0x04
  233. #define RAltKey     0x08
  234. #define SysReq      0x80
  235.  
  236. /* Character translate tables */
  237.  
  238. extern uchar Uxlate[];
  239. /*
  240.     #00,#01,#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,
  241.     #16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,
  242.     ' ','!','"','#','$','%','&',#39,'(',')','*','+',',','-','.','/',
  243.     '0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
  244.     '@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
  245.     'P','Q','R','S','T','U','V','W','X','Y','Z','[','\',']','^','_',
  246.     '`','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
  247.     'P','Q','R','S','T','U','V','W','X','Y','Z','{','|','}','~',#127,
  248.     'Ç','Ü','É','â','Ä','à','Å','Ç','ê','ë','è','ï','î','ì','Ä','Å',
  249.     'É','Æ','Æ','ô','Ö','ò','û','ù','ÿ','Ö','Ü','¢','£','¥','₧','ƒ',
  250.     'á','í','ó','ú','Ñ','Ñ','ª','º','¿','⌐','¬','½','¼','¡','«','»',
  251.     '░','▒','▓','│','┤','╡','╢','╖','╕','╣','║','╗','╝','╜','╛','┐',
  252.     '└','┴','┬','├','─','┼','╞','╟','╚','╔','╩','╦','╠','═','╬','╧',
  253.     '╨','╤','╥','╙','╘','╒','╓','╫','╪','┘','┌','█','▄','▌','▐','▀',
  254.     'α','ß','Γ','π','Σ','σ','µ','τ','Φ','Θ','Ω','δ','∞','φ','ε','∩',
  255.     '≡','±','≥','≤','⌠','⌡','÷','≈','°','∙','·','√','ⁿ','²','■',#255
  256. */
  257. extern uchar Lxlate[];
  258. /*
  259.     #00,#01,#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,
  260.     #16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,
  261.     ' ','!','"','#','$','%','&',#39,'(',')','*','+',',','-','.','/',
  262.     '0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
  263.     '@','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
  264.     'p','q','r','s','t','u','v','w','x','y','z','[','\',']','^','_',
  265.     '`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
  266.     'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~',#127,
  267.     'ç','ü','é','â','ä','à','å','ç','ê','ë','è','ï','î','ì','ä','å',
  268.     'é','æ','æ','ô','ö','ò','û','ù','ÿ','ö','ü','¢','£','¥','₧','ƒ',
  269.     'á','í','ó','ú','ñ','ñ','ª','º','¿','⌐','¬','½','¼','¡','«','»',
  270.     '░','▒','▓','│','┤','╡','╢','╖','╕','╣','║','╗','╝','╜','╛','┐',
  271.     '└','┴','┬','├','─','┼','╞','╟','╚','╔','╩','╦','╠','═','╬','╧',
  272.     '╨','╤','╥','╙','╘','╒','╓','╫','╪','┘','┌','█','▄','▌','▐','▀',
  273.     'α','ß','Γ','π','Σ','σ','µ','τ','Φ','Θ','Ω','δ','∞','φ','ε','∩',
  274.     '≡','±','≥','≤','⌠','⌡','÷','≈','°','∙','·','√','ⁿ','²','■',#255
  275. */
  276. extern const uchar IBMGrLines[];
  277.     /*  = "│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀"  */
  278. extern const uchar BasicLines[];
  279.     /*  = "+++++++\"+++++++++-++++++++=+++++++++++++|-||-"  */
  280.  
  281. /*******************************  VARIABLES  ********************************/
  282.  
  283. extern bool       ehk;
  284. extern bool       _xkey;
  285. extern bool       _ckey;
  286. extern bool       _akey;
  287. extern bool       mousekey;
  288. extern bool       moused;
  289. extern background ssave;
  290. extern bool       scrrecurs;
  291. extern bool       resetdeltas;
  292. extern cditype    cdi;
  293. extern casemapfun casemapupch;
  294. extern kpressfunc kpressed;
  295. extern getkeyfunc getkey;
  296.  
  297. /*******************************  PROTOTYPES  *******************************/
  298.  
  299. word      getvmode(void);
  300. bool      printer_ok(byte prt);
  301. bool      mouseinstalled(void);
  302. void      setratio(int x, int y);
  303. void      showmouse(void);
  304. void      hidemouse(void);
  305. void      getmouse(mouseb *button, int *column, int *row);
  306. void      mgotoxy(int col, int row);
  307. void      mousehl(int left, int right);
  308. void      mousevl(int top, int bot);
  309. void      mousechar(int ordchar);
  310. uchar     filterch(uchar inch, prtmode pmode);
  311. strptr    filterstr(strptr destination, strptr source, prtmode printMode);  /* SN 3.5 */
  312. uchar     upperch(uchar ch);
  313. strptr    upper(strptr sout, strptr strg);
  314. uchar     lowerch(uchar ch);
  315. strptr    lower(strptr sout, strptr strg);
  316. bool      detectk(byte key);
  317. bool      enhdetectk(byte key);
  318. void      setcaplock(bool on);
  319. void      setnumlock(bool on);
  320. void      setscrolllock(bool on);
  321. strptr    keystat(strptr sout, byte mode);
  322. void      kflush(void);
  323. bool      internalkpressed(void);
  324. uchar     internalgetkey(void);
  325. void      delaykey(int time);
  326.  
  327. void      db_key_init(void);
  328.  
  329. /***************************** END OF DB_KEY.H *****************************/
  330.