KeyEvent.h

00001 /*
00002  * Copyright (c) 2003-2005, Bram Stein
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without 
00006  * modification, are permitted provided that the following conditions 
00007  * are met:
00008  * 
00009  *  1. Redistributions of source code must retain the above copyright
00010  *     notice, this list of conditions and the following disclaimer. 
00011  *  2. Redistributions in binary form must reproduce the above copyright 
00012  *     notice, this list of conditions and the following disclaimer in the 
00013  *     documentation and/or other materials provided with the distribution. 
00014  *  3. The name of the author may not be used to endorse or promote products 
00015  *     derived from this software without specific prior written permission. 
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED 
00018  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
00019  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 
00020  * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
00021  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
00022  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
00023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
00024  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
00025  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
00026  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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                 // numeric pad
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                 //VKUI_CAPSLOCK         = 301,
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

Generated on Mon Jun 20 19:41:33 2005 for UI by doxygen 1.3.1 using KingsTools