![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: DtKeyState.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef DtKeyState_H_ 00010 #define DtKeyState_H_ 00011 00015 00016 #include <vrvCore/vrvCore.h> 00017 00018 #include <string> 00019 00020 namespace makVrv 00021 { 00024 class DT_DLL_VRVCORE DtKeyState 00025 { 00026 public: 00028 enum KeyType { 00029 KEY_BACKSPACE = 0x08, 00030 KEY_TAB = 0x09, 00031 KEY_CLEAR = 0x0C, 00032 KEY_ENTER = 0x0D, 00033 KEY_PAUSE = 0x13, 00034 KEY_ESCAPE = 0x1B, 00035 00036 KEY_SPACE = 0x20, 00037 KEY_PAGE_UP = 0x21, 00038 KEY_PAGE_DOWN = 0x22, 00039 KEY_END = 0x23, 00040 KEY_HOME = 0x24, 00041 KEY_LEFT = 0x25, 00042 KEY_UP = 0x26, 00043 KEY_RIGHT = 0x27, 00044 KEY_DOWN = 0x28, 00045 KEY_PRINT_SCREEN = 0x2C, 00046 KEY_INSERT = 0x2D, 00047 KEY_DELETE = 0x2E, 00048 00049 KEY_0 = 0x30, 00050 KEY_1 = 0x31, 00051 KEY_2 = 0x32, 00052 KEY_3 = 0x33, 00053 KEY_4 = 0x34, 00054 KEY_5 = 0x35, 00055 KEY_6 = 0x36, 00056 KEY_7 = 0x37, 00057 KEY_8 = 0x38, 00058 KEY_9 = 0x39, 00059 KEY_A = 0x41, 00060 KEY_B = 0x42, 00061 KEY_C = 0x43, 00062 KEY_D = 0x44, 00063 KEY_E = 0x45, 00064 KEY_F = 0x46, 00065 KEY_G = 0x47, 00066 KEY_H = 0x48, 00067 KEY_I = 0x49, 00068 KEY_J = 0x4A, 00069 KEY_K = 0x4B, 00070 KEY_L = 0x4C, 00071 KEY_M = 0x4D, 00072 KEY_N = 0x4E, 00073 KEY_O = 0x4F, 00074 KEY_P = 0x50, 00075 KEY_Q = 0x51, 00076 KEY_R = 0x52, 00077 KEY_S = 0x53, 00078 KEY_T = 0x54, 00079 KEY_U = 0x55, 00080 KEY_V = 0x56, 00081 KEY_W = 0x57, 00082 KEY_X = 0x58, 00083 KEY_Y = 0x59, 00084 KEY_Z = 0x5A, 00085 00086 KEY_PAD_0 = 0x60, 00087 KEY_PAD_1 = 0x61, 00088 KEY_PAD_2 = 0x62, 00089 KEY_PAD_3 = 0x63, 00090 KEY_PAD_4 = 0x64, 00091 KEY_PAD_5 = 0x65, 00092 KEY_PAD_6 = 0x66, 00093 KEY_PAD_7 = 0x67, 00094 KEY_PAD_8 = 0x68, 00095 KEY_PAD_9 = 0x69, 00096 KEY_PAD_ADD = 0x6B, 00097 KEY_PAD_SUBTRACT = 0x6D, 00098 KEY_PAD_MULTIPLY = 0x6A, 00099 KEY_PAD_DIVIDE = 0x6F, 00100 KEY_PAD_DECIMAL = 0x6E, 00101 00102 KEY_F1 = 0x70, 00103 KEY_F2 = 0x71, 00104 KEY_F3 = 0x72, 00105 KEY_F4 = 0x73, 00106 KEY_F5 = 0x74, 00107 KEY_F6 = 0x75, 00108 KEY_F7 = 0x76, 00109 KEY_F8 = 0x77, 00110 KEY_F9 = 0x78, 00111 KEY_F10 = 0x79, 00112 KEY_F11 = 0x7A, 00113 KEY_F12 = 0x7B, 00114 00115 KEY_LEFT_SHIFT = 0xA0, 00116 KEY_RIGHT_SHIFT = 0xA1, 00117 KEY_LEFT_CTRL = 0xA2, 00118 KEY_RIGHT_CTRL = 0xA3, 00119 KEY_LEFT_ALT = 0xA4, 00120 KEY_RIGHT_ALT = 0xA5, 00121 00122 KEY_SEMICOLON = 0xBA, 00123 KEY_EQUAL_SIGN = 0xBB, 00124 KEY_COMMA = 0xBC, 00125 KEY_MINUS_SIGN = 0xBD, 00126 KEY_PERIOD = 0xBE, 00127 KEY_SLASH = 0xBF, 00128 00129 KEY_GRAVE = 0xC0, 00130 00131 KEY_LEFT_BRACKET = 0xDB, 00132 KEY_BACKSLASH = 0xDC, 00133 KEY_RIGHT_BRACKET = 0xDD, 00134 KEY_APOSTROPHE = 0xDE, 00135 KEY_NO_KEY = 0xFF 00136 }; 00137 00139 enum KeyModifier { 00140 NO_MODIFIER = 0x0, 00141 ALT_MODIFIER = 0x1, 00142 CTRL_MODIFIER = 0x2, 00143 SHIFT_MODIFIER = 0x4 00144 }; 00145 public: 00146 static std::string keyTypeToString( KeyType key ); 00147 00148 public: 00149 00151 DtKeyState(); 00152 00154 DtKeyState( KeyType key, KeyModifier modifiers ); 00155 00157 virtual ~DtKeyState(); 00158 00160 DtKeyState(const DtKeyState&); 00161 00163 DtKeyState &operator=(const DtKeyState&); 00164 00166 virtual KeyType keyType() const; 00167 00169 virtual void setKeyType( KeyType keyType ); 00170 00172 virtual bool altDown() const; 00173 00175 virtual void setAltDown( bool altDown ); 00176 00178 virtual bool ctrlDown() const; 00179 00181 virtual void setCtrlDown( bool ctrlDown ); 00182 00184 virtual bool shiftDown() const; 00185 00187 virtual void setShiftDown( bool shiftDown ); 00188 00190 virtual KeyModifier modifiers() const; 00191 00193 virtual void setModifiers( KeyModifier modifiers ); 00194 00195 protected: 00196 00197 KeyType myKeyType; 00198 KeyModifier myModifiers; 00199 00200 }; 00201 } //end namespace 00202 00203 #endif 00204