home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / df3os2.zip / KEYBOARD.H < prev    next >
C/C++ Source or Header  |  1993-09-27  |  4KB  |  133 lines

  1. // ------------ keyboard.h
  2. //
  3. // modified for OS/2 operation - jw21sep93
  4.  
  5. #ifndef KEYBOARD_H
  6. #define KEYBOARD_H
  7.  
  8. #define INCL_SUB
  9. #define INCL_NOPMAPI
  10. #include <os2.h>
  11.  
  12. #include "dflatdef.h"
  13.  
  14. class Keyboard    
  15.     {
  16.     int  shift;     // BIOS shift state
  17.     Bool insert;    // insert/overstrike mode
  18.  
  19.     HKBD        hKbd;
  20.     KBDINFO     ki;
  21.     KBDKEYINFO  kki;
  22.  
  23. public:
  24.     Keyboard();
  25.     Bool ShiftChanged();
  26.     int  AltConvert(int);
  27.     int  GetKey();
  28.     int  GetShift();
  29.     Bool KeyHit();
  30.     void clearBIOSbuffer();
  31.     void DispatchEvent();
  32.     int  ShiftState() { return shift = GetShift(); }
  33.     void SetInsertMode()   { insert = True; }
  34.     void ClearInsertMode() { insert = False; }
  35.     Bool InsertMode()      { return insert; }
  36.     };
  37.  
  38. inline void Keyboard::clearBIOSbuffer()
  39.     {
  40.     KbdFlushBuffer(0);
  41.     }
  42.  
  43.  
  44. const int ZEROFLAG = 0x40;
  45. const int OFFSET = 0x1000;
  46.  
  47. const int RUBOUT = 8;
  48. const int BELL   = 7;
  49. const int ESC    = 27;
  50. const unsigned F1          = (187+OFFSET);
  51. const unsigned F8          = (194+OFFSET);
  52. const unsigned SHIFT_F8    = (219+OFFSET);
  53. const unsigned F10         = (196+OFFSET);
  54. const unsigned HOME        = (199+OFFSET);
  55. const unsigned UP          = (200+OFFSET);
  56. const unsigned PGUP        = (201+OFFSET);
  57. const unsigned BS          = (203+OFFSET);
  58. const unsigned FWD         = (205+OFFSET);
  59. const unsigned END         = (207+OFFSET);
  60. const unsigned DN          = (208+OFFSET);
  61. const unsigned PGDN        = (209+OFFSET);
  62. const unsigned INS         = (210+OFFSET);
  63. const unsigned DEL         = (211+OFFSET);
  64. const unsigned CTRL_HOME   = (247+OFFSET);
  65. const unsigned CTRL_PGUP   = (132+OFFSET);
  66. const unsigned CTRL_BS     = (243+OFFSET);
  67. const unsigned CTRL_FIVE   = (143+OFFSET);
  68. const unsigned CTRL_FWD    = (244+OFFSET);
  69. const unsigned CTRL_END    = (245+OFFSET);
  70. const unsigned CTRL_PGDN   = (246+OFFSET);
  71. const unsigned SHIFT_HT    = (143+OFFSET);
  72. const unsigned ALT_A       = (158+OFFSET);
  73. const unsigned ALT_B       = (176+OFFSET);
  74. const unsigned ALT_C       = (174+OFFSET);
  75. const unsigned ALT_D       = (160+OFFSET);
  76. const unsigned ALT_E       = (146+OFFSET);
  77. const unsigned ALT_F       = (161+OFFSET);
  78. const unsigned ALT_G       = (162+OFFSET);
  79. const unsigned ALT_H       = (163+OFFSET);
  80. const unsigned ALT_I       = (151+OFFSET);
  81. const unsigned ALT_J       = (164+OFFSET);
  82. const unsigned ALT_K       = (165+OFFSET);
  83. const unsigned ALT_L       = (166+OFFSET);
  84. const unsigned ALT_M       = (178+OFFSET);
  85. const unsigned ALT_N       = (177+OFFSET);
  86. const unsigned ALT_O       = (152+OFFSET);
  87. const unsigned ALT_P       = (153+OFFSET);
  88. const unsigned ALT_Q       = (144+OFFSET);
  89. const unsigned ALT_R       = (147+OFFSET);
  90. const unsigned ALT_S       = (159+OFFSET);
  91. const unsigned ALT_T       = (148+OFFSET);
  92. const unsigned ALT_U       = (150+OFFSET);
  93. const unsigned ALT_V       = (175+OFFSET);
  94. const unsigned ALT_W       = (145+OFFSET);
  95. const unsigned ALT_X       = (173+OFFSET);
  96. const unsigned ALT_Y       = (149+OFFSET);
  97. const unsigned ALT_Z       = (172+OFFSET);
  98. const unsigned ALT_1      = (0xf8+OFFSET);
  99. const unsigned ALT_2      = (0xf9+OFFSET);
  100. const unsigned ALT_3      = (0xfa+OFFSET);
  101. const unsigned ALT_4      = (0xfb+OFFSET);
  102. const unsigned ALT_5      = (0xfc+OFFSET);
  103. const unsigned ALT_6      = (0xfd+OFFSET);
  104. const unsigned ALT_7      = (0xfe+OFFSET);
  105. const unsigned ALT_8      = (0xff+OFFSET);
  106. const unsigned ALT_9      = (0x80+OFFSET);
  107. const unsigned ALT_0      = (0x81+OFFSET);
  108. const unsigned ALT_HYPHEN = (130+OFFSET);
  109. const unsigned CTRL_F4    = (225+OFFSET);
  110. const unsigned ALT_F4     = (235+OFFSET);
  111. const unsigned ALT_F6     = (237+OFFSET);
  112.  
  113. enum 
  114.     {
  115.     CTRL_A=1,CTRL_B,CTRL_C,CTRL_D,CTRL_E,CTRL_F,CTRL_G,CTRL_H,
  116.     CTRL_I,CTRL_J,CTRL_K,CTRL_L,CTRL_M,CTRL_N,CTRL_O,CTRL_P,
  117.     CTRL_Q,CTRL_R,CTRL_S,CTRL_T,CTRL_U,CTRL_V,CTRL_W,CTRL_X,
  118.     CTRL_Y,CTRL_Z 
  119.     };
  120.  
  121. // ------- BIOS shift key mask values
  122. const int RIGHTSHIFT = 0x01;
  123. const int LEFTSHIFT  = 0x02;
  124. const int CTRLKEY    = 0x04;
  125. const int ALTKEY     = 0x08;
  126. const int SCROLLLOCK = 0x10;
  127. const int NUMLOCK    = 0x20;
  128. const int CAPSLOCK   = 0x40;
  129. const int INSERTKEY  = 0x80;
  130.  
  131. #endif
  132.  
  133.