00001 #pragma once
00002
00003 #include "VVector.h"
00004
00005 class VEvent
00006 {
00007 public:
00008
00009 VEvent()
00010 {
00011 };
00012
00013 ~VEvent()
00014 {
00015 };
00016
00017 private:
00018
00019 };
00020
00021 class VMouseEvent : public VEvent
00022 {
00023 public:
00024
00025 enum Button
00026 {
00027 BUTTON_NONE = -1,
00028 BUTTON_LEFT = 0,
00029 BUTTON_MIDDLE = 1,
00030 BUTTON_RIGHT = 2
00031 };
00032
00033 enum State
00034 {
00035 STATE_NONE = -1,
00036 STATE_UP = 0,
00037 STATE_DOWN = 1
00038 };
00039
00040 enum Modifier
00041 {
00042 MODIFIER_SHIFT = 0x00200000,
00043 MODIFIER_CTRL = 0x00400000,
00044 MODIFIER_ALT = 0x00800000
00045 };
00046
00047 VMouseEvent( const VVector & vecPosition,
00048 const int iButton,
00049 const int iStateLeft,
00050 const int iStateMiddle,
00051 const int iStateRight,
00052 const int iModifiers) : position(vecPosition),
00053 button(iButton),
00054 modifier(iModifiers)
00055 {
00056 state[BUTTON_LEFT] = iStateLeft;
00057 state[BUTTON_MIDDLE] = iStateMiddle;
00058 state[BUTTON_RIGHT] = iStateRight;
00059 };
00060
00061 VMouseEvent()
00062 {
00063 state[BUTTON_LEFT] = STATE_UP;
00064 state[BUTTON_MIDDLE] = STATE_UP;
00065 state[BUTTON_RIGHT] = STATE_UP;
00066 };
00067
00068 ~VMouseEvent()
00069 {
00070 };
00071
00072 const VVector & getPosition() const
00073 {
00074 return position;
00075 };
00076
00077 const int getButton() const
00078 {
00079 return button;
00080 };
00081
00082 const int getState() const
00083 {
00084 return state[button];
00085 };
00086
00087 const int getLeftState() const
00088 {
00089 return state[BUTTON_LEFT];
00090 };
00091
00092 const int getMiddleState() const
00093 {
00094 return state[BUTTON_MIDDLE];
00095 };
00096
00097 const int getRightState() const
00098 {
00099 return state[BUTTON_RIGHT];
00100 };
00101
00102 const int getModifiers() const
00103 {
00104 return modifier;
00105 };
00106
00107 private:
00108
00109 VVector position;
00110 int modifier;
00111 int button;
00112 int state[3];
00113 };
00114
00115 class VKeyboardEvent : public VEvent
00116 {
00117 public:
00118
00119 enum Key
00120 {
00121
00122 KEY_ESCAPE = 0x1000,
00123 KEY_TAB = 0x1001,
00124 KEY_BACKTAB = 0x1002,
00125 KEY_BACKSPACE = 0x1003,
00126 KEY_RETURN = 0x1004,
00127 KEY_ENTER = 0x1005,
00128 KEY_INSERT = 0x1006,
00129 KEY_DELETE = 0x1007,
00130 KEY_PAUSE = 0x1008,
00131 KEY_PRINT = 0x1009,
00132 KEY_SYSREQ = 0x100A,
00133
00134
00135 KEY_HOME = 0x1010,
00136 KEY_END = 0x1011,
00137 KEY_LEFT = 0x1012,
00138 KEY_UP = 0x1013,
00139 KEY_RIGHT = 0x1014,
00140 KEY_DOWN = 0x1015,
00141 KEY_PRIOR = 0x1016, KEY_PAGEUP = KEY_PRIOR,
00142 KEY_NEXT = 0x1017, KEY_PAGEDOWN = KEY_NEXT,
00143
00144
00145 KEY_SHIFT = 0x1020,
00146 KEY_CONTROL = 0x1021,
00147 KEY_META = 0x1022,
00148 KEY_ALT = 0x1023,
00149 KEY_CAPSLOCK = 0x1024,
00150 KEY_NUMLOCK = 0x1025,
00151 KEY_SCROLLLOCK = 0x1026,
00152
00153
00154 KEY_F1 = 0x1030,
00155 KEY_F2 = 0x1031,
00156 KEY_F3 = 0x1032,
00157 KEY_F4 = 0x1033,
00158 KEY_F5 = 0x1034,
00159 KEY_F6 = 0x1035,
00160 KEY_F7 = 0x1036,
00161 KEY_F8 = 0x1037,
00162 KEY_F9 = 0x1038,
00163 KEY_F10 = 0x1039,
00164 KEY_F11 = 0x103A,
00165 KEY_F12 = 0x103B,
00166 KEY_F13 = 0x103C,
00167 KEY_F14 = 0x103D,
00168 KEY_F15 = 0x103E,
00169 KEY_F16 = 0x103F,
00170 KEY_F17 = 0x1040,
00171 KEY_F18 = 0x1041,
00172 KEY_F19 = 0x1042,
00173 KEY_F20 = 0x1043,
00174 KEY_F21 = 0x1044,
00175 KEY_F22 = 0x1045,
00176 KEY_F23 = 0x1046,
00177 KEY_F24 = 0x1047,
00178
00179
00180 KEY_F25 = 0x1048,
00181 KEY_F26 = 0x1049,
00182 KEY_F27 = 0x104A,
00183 KEY_F28 = 0x104B,
00184 KEY_F29 = 0x104C,
00185 KEY_F30 = 0x104D,
00186 KEY_F31 = 0x104E,
00187 KEY_F32 = 0x104F,
00188 KEY_F33 = 0x1050,
00189 KEY_F34 = 0x1051,
00190 KEY_F35 = 0x1052,
00191
00192
00193 KEY_SUPER_L = 0x1053,
00194 KEY_SUPER_R = 0x1054,
00195 KEY_MENU = 0x1055,
00196 KEY_HYPER_L = 0x1056,
00197 KEY_HYPER_R = 0x1057,
00198 KEY_HELP = 0x1058,
00199
00200
00201 KEY_SPACE = 0x20,
00202 KEY_ANY = KEY_SPACE,
00203 KEY_EXCLAM = 0x21,
00204 KEY_QUOTEDBL = 0x22,
00205 KEY_NUMBERSIGN = 0x23,
00206 KEY_DOLLAR = 0x24,
00207 KEY_PERCENT = 0x25,
00208 KEY_AMPERSAND = 0x26,
00209 KEY_APOSTROPHE = 0x27,
00210 KEY_PARENLEFT = 0x28,
00211 KEY_PARENRIGHT = 0x29,
00212 KEY_ASTERISK = 0x2A,
00213 KEY_PLUS = 0x2B,
00214 KEY_COMMA = 0x2C,
00215 KEY_MINUS = 0x2D,
00216 KEY_PERIOD = 0x2E,
00217 KEY_SLASH = 0x2F,
00218 KEY_0 = 0x30,
00219 KEY_1 = 0x31,
00220 KEY_2 = 0x32,
00221 KEY_3 = 0x33,
00222 KEY_4 = 0x34,
00223 KEY_5 = 0x35,
00224 KEY_6 = 0x36,
00225 KEY_7 = 0x37,
00226 KEY_8 = 0x38,
00227 KEY_9 = 0x39,
00228 KEY_COLON = 0x3A,
00229 KEY_SEMICOLON = 0x3B,
00230 KEY_LESS = 0x3C,
00231 KEY_EQUAL = 0x3D,
00232 KEY_GREATER = 0x3E,
00233 KEY_QUESTION = 0x3F,
00234 KEY_AT = 0x40,
00235 KEY_A = 0x41,
00236 KEY_B = 0x42,
00237 KEY_C = 0x43,
00238 KEY_D = 0x44,
00239 KEY_E = 0x45,
00240 KEY_F = 0x46,
00241 KEY_G = 0x47,
00242 KEY_H = 0x48,
00243 KEY_I = 0x49,
00244 KEY_J = 0x4A,
00245 KEY_K = 0x4B,
00246 KEY_L = 0x4C,
00247 KEY_M = 0x4D,
00248 KEY_N = 0x4E,
00249 KEY_O = 0x4F,
00250 KEY_P = 0x50,
00251 KEY_Q = 0x51,
00252 KEY_R = 0x52,
00253 KEY_S = 0x53,
00254 KEY_T = 0x54,
00255 KEY_U = 0x55,
00256 KEY_V = 0x56,
00257 KEY_W = 0x57,
00258 KEY_X = 0x58,
00259 KEY_Y = 0x59,
00260 KEY_Z = 0x5A,
00261 KEY_BRACKETLEFT = 0x5B,
00262 KEY_BACKSLASH = 0x5C,
00263 KEY_BRACKETRIGHT = 0x5D,
00264 KEY_ASCIICIRCUM = 0x5E,
00265 KEY_UNDERSCORE = 0x5F,
00266 KEY_QUOTELEFT = 0x60,
00267 KEY_BRACELEFT = 0x7B,
00268 KEY_BAR = 0x7C,
00269 KEY_BRACERIGHT = 0x7D,
00270 KEY_ASCIITILDE = 0x7E
00271 };
00272
00273 enum Modifier
00274 {
00275 MODIFIER_SHIFT = 0x00200000,
00276 MODIFIER_CTRL = 0x00400000,
00277 MODIFIER_ALT = 0x00800000
00278 };
00279
00280 public:
00281
00282 VKeyboardEvent(const int iKey, const int iModifiers) : key(iKey), modifier(iModifiers)
00283 {
00284 };
00285
00286 ~VKeyboardEvent()
00287 {
00288 };
00289
00290 const int getKey() const
00291 {
00292 return key;
00293 };
00294
00295 const int getModifiers() const
00296 {
00297 return modifier;
00298 };
00299
00300 private:
00301
00302 int key;
00303 int modifier;
00304 };