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 >
Wrap
C/C++ Source or Header
|
1992-09-11
|
9KB
|
330 lines
/****************************************************************************/
/* HEADER FILE FOR DATABOSS MODULE: DB_KEY */
/****************************************************************************/
/********************************* TYPES **********************************/
typedef enum {BasicChrs,IBMGraphics,AllChrs} prtmode;
typedef enum {NoB,LeftB,RightB,BothB,CenterB,CLeftB,CRightB,AllB} mouseb;
typedef struct {
uchar ch;
bool _xkey;
} mkey;
typedef void (*background)(void);
typedef uchar (*casemapfun)(uchar inch);
typedef struct {
word date_format;
uchar currency_chars[5];
uchar thou_sep[2];
uchar dec_sep[2];
uchar date_sep[2];
uchar time_sep[2];
byte currency_format;
byte sig_digits;
byte time_format;
ptr case_map;
uchar datalist_sep[2];
word reserved[5];
} cditype;
typedef bool (*kpressfunc)(void);
typedef uchar (*getkeyfunc)(void);
/******************************* CONSTANTS ********************************/
/* Special keys */
#define MouseCV 13
#define MouseCH 40
#define Nul 0
#define Space 32
#define BackSp 8
#define Tab 9
#define Enter 13
#define Esc 27
#define STab 143
/*********************************************
* [DG] 09/11/92 -- Added CtrlEnter keycode *
*********************************************/
#define CtrlEnter 10
/* Numpad keys */
#define PgUp 201
#define PgDn 209
#define EndKey 207
#define Home 199
#define Ins 210
#define Del 211
#define CtrlPrtsc 242
#define LArr 203
#define RArr 205
#define UArr 200
#define DArr 208
#define CtrlLArr 243
#define CtrlRArr 244
#define CtrlPgUp 132
#define CtrlPgDn 246
#define CtrlHome 247
#define CtrlEnd 245
/* Function keys */
#define F1 187
#define F2 188
#define F3 189
#define F4 190
#define F5 191
#define F6 192
#define F7 193
#define F8 194
#define F9 195
#define F10 196
#define F11 133
#define F12 134
/* Shifted function keys */
#define sF1 212
#define sF2 213
#define sF3 214
#define sF4 215
#define sF5 216
#define sF6 217
#define sF7 218
#define sF8 219
#define sF9 220
#define sF10 221
#define sF11 135
#define sF12 136
/* Control function keys */
#define cF1 222
#define cF2 223
#define cF3 224
#define cF4 225
#define cF5 226
#define cF6 227
#define cF7 228
#define cF8 229
#define cF9 230
#define cF10 231
#define cF11 137
#define cF12 138
/* Alt function keys */
#define aF1 232
#define aF2 233
#define aF3 234
#define aF4 235
#define aF5 236
#define aF6 237
#define aF7 238
#define aF8 239
#define aF9 240
#define aF10 241
#define aF11 139
#define aF12 140
/* Control keys */
#define CtrlA 1
#define CtrlB 2
#define CtrlC 3
#define CtrlD 4
#define CtrlE 5
#define CtrlF 6
#define CtrlG 7
#define CtrlH 8
#define CtrlI 9
#define CtrlJ 10
#define CtrlK 11
#define CtrlL 12
#define CtrlM 13
#define CtrlN 14
#define CtrlO 15
#define CtrlP 16
#define CtrlQ 17
#define CtrlR 18
#define CtrlS 19
#define CtrlT 20
#define CtrlU 21
#define CtrlV 22
#define CtrlW 23
#define CtrlX 24
#define CtrlY 25
#define CtrlZ 26
/* Alt keys */
#define AltA 158
#define AltB 176
#define AltC 174
#define AltD 160
#define AltE 146
#define AltF 161
#define AltG 162
#define AltH 163
#define AltI 151
#define AltJ 164
#define AltK 165
#define AltL 166
#define AltM 178
#define AltN 177
#define AltO 152
#define AltP 153
#define AltQ 144
#define AltR 147
#define AltS 159
#define AltT 148
#define AltU 150
#define AltV 175
#define AltW 145
#define AltX 173
#define AltY 149
#define AltZ 172
#define Alt1 248
#define Alt2 249
#define Alt3 250
#define Alt4 251
#define Alt5 252
#define Alt6 253
#define Alt7 254
#define Alt8 255
#define Alt9 128
#define Alt0 129
#define AltMinus 130
#define AltEquals 131
/* Mouse Keys */
extern const mkey MLeftB; /* = {Enter, False */
extern const mkey MRightB; /* = {Esc, False */
extern const mkey MBothB; /* = {F1, True} */
extern const mkey MCenterB; /* = {F1, True} */
extern const mkey MCLeftB; /* = {F1, True} */
extern const mkey MCRightB; /* = {F1, True} */
extern const mkey MAllB; /* = {F1, True} */
extern const mkey MUp; /* = {UArr, True} */
extern const mkey MDown; /* = {DArr, True} */
extern const mkey MLeft; /* = {LArr, True} */
extern const mkey MRight; /* = {RArr, True} */
/* Keyboard status bit masks */
#define RShiftKey 0x01
#define LShiftKey 0x02
#define CtrlKey 0x04
#define AltKey 0x08
#define ScrollLock 0x10
#define NumLock 0x20
#define CapsLock 0x40
#define LCtrlKey 0x01
#define LAltKey 0x02
#define RCtrlKey 0x04
#define RAltKey 0x08
#define SysReq 0x80
/* Character translate tables */
extern uchar Uxlate[];
/*
#00,#01,#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,
#16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,
' ','!','"','#','$','%','&',#39,'(',')','*','+',',','-','.','/',
'0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
'@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z','[','\',']','^','_',
'`','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z','{','|','}','~',#127,
'Ç','Ü','É','â','Ä','à','Å','Ç','ê','ë','è','ï','î','ì','Ä','Å',
'É','Æ','Æ','ô','Ö','ò','û','ù','ÿ','Ö','Ü','¢','£','¥','₧','ƒ',
'á','í','ó','ú','Ñ','Ñ','ª','º','¿','⌐','¬','½','¼','¡','«','»',
'░','▒','▓','│','┤','╡','╢','╖','╕','╣','║','╗','╝','╜','╛','┐',
'└','┴','┬','├','─','┼','╞','╟','╚','╔','╩','╦','╠','═','╬','╧',
'╨','╤','╥','╙','╘','╒','╓','╫','╪','┘','┌','█','▄','▌','▐','▀',
'α','ß','Γ','π','Σ','σ','µ','τ','Φ','Θ','Ω','δ','∞','φ','ε','∩',
'≡','±','≥','≤','⌠','⌡','÷','≈','°','∙','·','√','ⁿ','²','■',#255
*/
extern uchar Lxlate[];
/*
#00,#01,#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,
#16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,
' ','!','"','#','$','%','&',#39,'(',')','*','+',',','-','.','/',
'0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
'@','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z','[','\',']','^','_',
'`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~',#127,
'ç','ü','é','â','ä','à','å','ç','ê','ë','è','ï','î','ì','ä','å',
'é','æ','æ','ô','ö','ò','û','ù','ÿ','ö','ü','¢','£','¥','₧','ƒ',
'á','í','ó','ú','ñ','ñ','ª','º','¿','⌐','¬','½','¼','¡','«','»',
'░','▒','▓','│','┤','╡','╢','╖','╕','╣','║','╗','╝','╜','╛','┐',
'└','┴','┬','├','─','┼','╞','╟','╚','╔','╩','╦','╠','═','╬','╧',
'╨','╤','╥','╙','╘','╒','╓','╫','╪','┘','┌','█','▄','▌','▐','▀',
'α','ß','Γ','π','Σ','σ','µ','τ','Φ','Θ','Ω','δ','∞','φ','ε','∩',
'≡','±','≥','≤','⌠','⌡','÷','≈','°','∙','·','√','ⁿ','²','■',#255
*/
extern const uchar IBMGrLines[];
/* = "│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀" */
extern const uchar BasicLines[];
/* = "+++++++\"+++++++++-++++++++=+++++++++++++|-||-" */
/******************************* VARIABLES ********************************/
extern bool ehk;
extern bool _xkey;
extern bool _ckey;
extern bool _akey;
extern bool mousekey;
extern bool moused;
extern background ssave;
extern bool scrrecurs;
extern bool resetdeltas;
extern cditype cdi;
extern casemapfun casemapupch;
extern kpressfunc kpressed;
extern getkeyfunc getkey;
/******************************* PROTOTYPES *******************************/
word getvmode(void);
bool printer_ok(byte prt);
bool mouseinstalled(void);
void setratio(int x, int y);
void showmouse(void);
void hidemouse(void);
void getmouse(mouseb *button, int *column, int *row);
void mgotoxy(int col, int row);
void mousehl(int left, int right);
void mousevl(int top, int bot);
void mousechar(int ordchar);
uchar filterch(uchar inch, prtmode pmode);
strptr filterstr(strptr destination, strptr source, prtmode printMode); /* SN 3.5 */
uchar upperch(uchar ch);
strptr upper(strptr sout, strptr strg);
uchar lowerch(uchar ch);
strptr lower(strptr sout, strptr strg);
bool detectk(byte key);
bool enhdetectk(byte key);
void setcaplock(bool on);
void setnumlock(bool on);
void setscrolllock(bool on);
strptr keystat(strptr sout, byte mode);
void kflush(void);
bool internalkpressed(void);
uchar internalgetkey(void);
void delaykey(int time);
void db_key_init(void);
/***************************** END OF DB_KEY.H *****************************/