00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #pragma once
00029 #ifndef KEYEVENT_H
00030 #define KEYEVENT_H
00031
00032 #include "..\Pointers.h"
00033 #include ".\Event.h"
00034
00035 namespace ui
00036 {
00037 namespace event
00038 {
00042 class KeyEvent : public Event
00043 {
00044 public:
00057 KeyEvent(Component* source, int id, int keyCode, int modifiers);
00058
00059 enum
00060 {
00064 KEY_PRESSED,
00065
00069 KEY_RELEASED,
00070
00071 KEY_TYPED
00072 } KeyEventTypes;
00073
00074 enum
00075 {
00076 VKUI_UNKNOWN = 0,
00077 VKUI_FIRST = 0,
00078 VKUI_BACKSPACE = 8,
00079 VKUI_TAB = 9,
00080 VKUI_ENTER = 10,
00081 VKUI_CLEAR = 12,
00082 VKUI_RETURN = 13,
00083 VKUI_CTRL = 17,
00084 VKUI_ALT = 18,
00085 VKUI_PAUSE = 19,
00086 VKUI_CAPSLOCK = 20,
00087 VKUI_ESCAPE = 27,
00088 VKUI_SPACE = 32,
00089 VKUI_EXCLAIM = 33,
00090 VKUI_QUOTEDBL = 34,
00091 VKUI_HASH = 35,
00092 VKUI_DOLLAR = 36,
00093 VKUI_AMPERSAND = 38,
00094 VKUI_QUOTE = 39,
00095 VKUI_LEFTPAREN = 40,
00096 VKUI_RIGHTPAREN = 41,
00097 VKUI_ASTERISK = 42,
00098 VKUI_PLUS = 43,
00099 VKUI_COMMA = 44,
00100 VKUI_MINUS = 45,
00101 VKUI_PERIOD = 46,
00102 VKUI_SLASH = 47,
00103 VKUI_0 = 48,
00104 VKUI_1 = 49,
00105 VKUI_2 = 50,
00106 VKUI_3 = 51,
00107 VKUI_4 = 52,
00108 VKUI_5 = 53,
00109 VKUI_6 = 54,
00110 VKUI_7 = 55,
00111 VKUI_8 = 56,
00112 VKUI_9 = 57,
00113 VKUI_COLON = 58,
00114 VKUI_SEMICOLON = 59,
00115 VKUI_LESS = 60,
00116 VKUI_EQUALS = 61,
00117 VKUI_GREATER = 62,
00118 VKUI_QUESTION = 63,
00119 VKUI_AT = 64,
00120
00121
00122 VKUI_LEFTBRACKET = 91,
00123 VKUI_BACKSLASH = 92,
00124 VKUI_RIGHTBRACKET = 93,
00125 VKUI_CARET = 94,
00126 VKUI_UNDERSCORE = 95,
00127 VKUI_BACKQUOTE = 96,
00128 VKUI_A = 97,
00129 VKUI_B = 98,
00130 VKUI_C = 99,
00131 VKUI_D = 100,
00132 VKUI_E = 101,
00133 VKUI_F = 102,
00134 VKUI_G = 103,
00135 VKUI_H = 104,
00136 VKUI_I = 105,
00137 VKUI_J = 106,
00138 VKUI_K = 107,
00139 VKUI_L = 108,
00140 VKUI_M = 109,
00141 VKUI_N = 110,
00142 VKUI_O = 111,
00143 VKUI_P = 112,
00144 VKUI_Q = 113,
00145 VKUI_R = 114,
00146 VKUI_S = 115,
00147 VKUI_T = 116,
00148 VKUI_U = 117,
00149 VKUI_V = 118,
00150 VKUI_W = 119,
00151 VKUI_X = 120,
00152 VKUI_Y = 121,
00153 VKUI_Z = 122,
00154 VKUI_DELETE = 127,
00155
00156
00157 VKUI_KP0 = 256,
00158 VKUI_KP1 = 257,
00159 VKUI_KP2 = 258,
00160 VKUI_KP3 = 259,
00161 VKUI_KP4 = 260,
00162 VKUI_KP5 = 261,
00163 VKUI_KP6 = 262,
00164 VKUI_KP7 = 263,
00165 VKUI_KP8 = 264,
00166 VKUI_KP9 = 265,
00167 VKUI_KP_PERIOD = 266,
00168 VKUI_KP_DIVIDE = 267,
00169 VKUI_KP_MULTIPLY = 268,
00170 VKUI_KP_MINUS = 269,
00171 VKUI_KP_PLUS = 270,
00172 VKUI_KP_ENTER = 271,
00173 VKUI_KP_EQUALS = 272,
00174
00175
00176 VKUI_UP = 273,
00177 VKUI_DOWN = 274,
00178 VKUI_RIGHT = 275,
00179 VKUI_LEFT = 276,
00180 VKUI_INSERT = 277,
00181 VKUI_HOME = 278,
00182 VKUI_END = 279,
00183 VKUI_PAGEUP = 280,
00184 VKUI_PAGEDOWN = 281,
00185
00186 VKUI_F1 = 282,
00187 VKUI_F2 = 283,
00188 VKUI_F3 = 284,
00189 VKUI_F4 = 285,
00190 VKUI_F5 = 286,
00191 VKUI_F6 = 287,
00192 VKUI_F7 = 288,
00193 VKUI_F8 = 289,
00194 VKUI_F9 = 290,
00195 VKUI_F10 = 291,
00196 VKUI_F11 = 292,
00197 VKUI_F12 = 293,
00198 VKUI_F13 = 294,
00199 VKUI_F14 = 295,
00200 VKUI_F15 = 296,
00201
00202 VKUI_NUMLOCK = 300,
00203
00204 VKUI_SCROLLOCK = 302,
00205 VKUI_RSHIFT = 303,
00206 VKUI_LSHIFT = 304,
00207 VKUI_RCTRL = 305,
00208 VKUI_LCTRL = 306,
00209 VKUI_RALT = 307,
00210 VKUI_LALT = 308,
00211 VKUI_RMETA = 309,
00212 VKUI_LMETA = 310,
00213 VKUI_LSUPER = 311,
00214 VKUI_RSUPER = 312,
00215 VKUI_MODE = 313,
00216 VKUI_COMPOSE = 314,
00217
00218 VKUI_HELP = 315,
00219 VKUI_PRINT = 316,
00220 VKUI_SYSREQ = 317,
00221 VKUI_BREAK = 318,
00222 VKUI_MENU = 319,
00223 VKUI_EURO = 321
00224 } VirtualKeys;
00225
00226 enum Modifiers
00227 {
00228 MOD_NONE = 0x0000,
00229 MOD_LSHIFT= 0x0001,
00230 MOD_RSHIFT= 0x0002,
00231 MOD_LCTRL = 0x0040,
00232 MOD_RCTRL = 0x0080,
00233 MOD_LALT = 0x0100,
00234 MOD_RALT = 0x0200,
00235 MOD_LMETA = 0x0400,
00236 MOD_RMETA = 0x0800,
00237 MOD_NUM = 0x1000,
00238 MOD_CAPS = 0x2000,
00239 MOD_MODE = 0x4000,
00240 MOD_RESERVED = 0x8000
00241 };
00242
00246 int getKeyCode() const;
00247
00251 int getModifier() const;
00252
00253 private:
00254 int keyCode, modifiers;
00255 };
00256 }
00257 }
00258 #endif