| 1 | /*********************************************************************** | 
|---|
| 2 |         Key::Scan | 
|---|
| 3 |  | 
|---|
| 4 |         This is'nt exactly how it's done in the C++ code, but it works | 
|---|
| 5 |         fine anyway :) | 
|---|
| 6 | ***********************************************************************/ | 
|---|
| 7 | namespace Key | 
|---|
| 8 | { | 
|---|
| 9 |  | 
|---|
| 10 | enum Scan | 
|---|
| 11 | { | 
|---|
| 12 |         Escape          =0x01, | 
|---|
| 13 |         One             =0x02, | 
|---|
| 14 |         Two             =0x03, | 
|---|
| 15 |         Three           =0x04, | 
|---|
| 16 |         Four            =0x05, | 
|---|
| 17 |         Five            =0x06, | 
|---|
| 18 |         Six             =0x07, | 
|---|
| 19 |         Seven           =0x08, | 
|---|
| 20 |         Eight           =0x09, | 
|---|
| 21 |         Nine            =0x0A, | 
|---|
| 22 |         Zero            =0x0B, | 
|---|
| 23 |         Minus           =0x0C,    /* - on main keyboard */ | 
|---|
| 24 |         Equals                  =0x0D, | 
|---|
| 25 |         Backspace               =0x0E,    /* backspace */ | 
|---|
| 26 |         Tab                             =0x0F, | 
|---|
| 27 |         Q               =0x10, | 
|---|
| 28 |         W               =0x11, | 
|---|
| 29 |         E               =0x12, | 
|---|
| 30 |         R               =0x13, | 
|---|
| 31 |         T               =0x14, | 
|---|
| 32 |         Y               =0x15, | 
|---|
| 33 |         U               =0x16, | 
|---|
| 34 |         I               =0x17, | 
|---|
| 35 |         O               =0x18, | 
|---|
| 36 |         P               =0x19, | 
|---|
| 37 |         LeftBracket     =0x1A, | 
|---|
| 38 |         RightBracket    =0x1B, | 
|---|
| 39 |         Return                  =0x1C,    /* Enter on main keyboard */ | 
|---|
| 40 |         LeftControl             =0x1D, | 
|---|
| 41 |         A               =0x1E, | 
|---|
| 42 |         S               =0x1F, | 
|---|
| 43 |         D               =0x20, | 
|---|
| 44 |         F               =0x21, | 
|---|
| 45 |         G               =0x22, | 
|---|
| 46 |         H               =0x23, | 
|---|
| 47 |         J               =0x24, | 
|---|
| 48 |         K               =0x25, | 
|---|
| 49 |         L               =0x26, | 
|---|
| 50 |         Semicolon       =0x27, | 
|---|
| 51 |         Apostrophe              =0x28, | 
|---|
| 52 |         Grave           =0x29,    /* accent grave */ | 
|---|
| 53 |         LeftShift       =0x2A, | 
|---|
| 54 |         Backslash       =0x2B, | 
|---|
| 55 |         Z               =0x2C, | 
|---|
| 56 |         X               =0x2D, | 
|---|
| 57 |         C               =0x2E, | 
|---|
| 58 |         V               =0x2F, | 
|---|
| 59 |         B               =0x30, | 
|---|
| 60 |         N               =0x31, | 
|---|
| 61 |         M               =0x32, | 
|---|
| 62 |         Comma           =0x33, | 
|---|
| 63 |         Period          =0x34,    /* . on main keyboard */ | 
|---|
| 64 |         Slash           =0x35,    /* '/' on main keyboard */ | 
|---|
| 65 |         RightShift      =0x36, | 
|---|
| 66 |         Multiply        =0x37,    /* * on numeric keypad */ | 
|---|
| 67 |         LeftAlt         =0x38,    /* left Alt */ | 
|---|
| 68 |         Space           =0x39, | 
|---|
| 69 |         Capital         =0x3A, | 
|---|
| 70 |         F1              =0x3B, | 
|---|
| 71 |         F2              =0x3C, | 
|---|
| 72 |         F3              =0x3D, | 
|---|
| 73 |         F4              =0x3E, | 
|---|
| 74 |         F5              =0x3F, | 
|---|
| 75 |         F6              =0x40, | 
|---|
| 76 |         F7              =0x41, | 
|---|
| 77 |         F8              =0x42, | 
|---|
| 78 |         F9              =0x43, | 
|---|
| 79 |         F10             =0x44, | 
|---|
| 80 |         NumLock         =0x45, | 
|---|
| 81 |         ScrollLock      =0x46,    /* Scroll Lock */ | 
|---|
| 82 |         Numpad7         =0x47, | 
|---|
| 83 |         Numpad8         =0x48, | 
|---|
| 84 |         Numpad9         =0x49, | 
|---|
| 85 |         Subtract        =0x4A,    /* - on numeric keypad */ | 
|---|
| 86 |         Numpad4         =0x4B, | 
|---|
| 87 |         Numpad5         =0x4C, | 
|---|
| 88 |         Numpad6         =0x4D, | 
|---|
| 89 |         Add                             =0x4E,    /* + on numeric keypad */ | 
|---|
| 90 |         Numpad1         =0x4F, | 
|---|
| 91 |         Numpad2         =0x50, | 
|---|
| 92 |         Numpad3         =0x51, | 
|---|
| 93 |         Numpad0         =0x52, | 
|---|
| 94 |         Decimal                 =0x53,    /* . on numeric keypad */ | 
|---|
| 95 |         OEM_102         =0x56,    /* < > | on UK/Germany keyboards */ | 
|---|
| 96 |         F11             =0x57, | 
|---|
| 97 |         F12             =0x58, | 
|---|
| 98 |         F13             =0x64,    /*                     (NEC PC98) */ | 
|---|
| 99 |         F14             =0x65,    /*                     (NEC PC98) */ | 
|---|
| 100 |         F15             =0x66,    /*                     (NEC PC98) */ | 
|---|
| 101 |         Kana            =0x70,    /* (Japanese keyboard)            */ | 
|---|
| 102 |         ABNT_C1         =0x73,    /* / ? on Portugese (Brazilian) keyboards */ | 
|---|
| 103 |         Convert         =0x79,    /* (Japanese keyboard)            */ | 
|---|
| 104 |         NoConvert       =0x7B,    /* (Japanese keyboard)            */ | 
|---|
| 105 |         Yen             =0x7D,    /* (Japanese keyboard)            */ | 
|---|
| 106 |         ABNT_C2         =0x7E,    /* Numpad . on Portugese (Brazilian) keyboards */ | 
|---|
| 107 |         NumpadEquals    =0x8D,    /* = on numeric keypad (NEC PC98) */ | 
|---|
| 108 |         PrevTrack       =0x90,    /* Previous Track (KC_CIRCUMFLEX on Japanese keyboard) */ | 
|---|
| 109 |         At              =0x91,    /*                     (NEC PC98) */ | 
|---|
| 110 |         Colon           =0x92,    /*                     (NEC PC98) */ | 
|---|
| 111 |         Underline       =0x93,    /*                     (NEC PC98) */ | 
|---|
| 112 |         Kanji           =0x94,    /* (Japanese keyboard)            */ | 
|---|
| 113 |         Stop            =0x95,    /*                     (NEC PC98) */ | 
|---|
| 114 |         AX              =0x96,    /*                     (Japan AX) */ | 
|---|
| 115 |         Unlabeled       =0x97,    /*                        (J3100) */ | 
|---|
| 116 |         NextTrack       =0x99,    /* Next Track */ | 
|---|
| 117 |         NumpadEnter     =0x9C,    /* Enter on numeric keypad */ | 
|---|
| 118 |         RightControl    =0x9D, | 
|---|
| 119 |         Mute            =0xA0,    /* Mute */ | 
|---|
| 120 |         Calculator      =0xA1,    /* Calculator */ | 
|---|
| 121 |         PlayPause       =0xA2,    /* Play / Pause */ | 
|---|
| 122 |         MediaStop       =0xA4,    /* Media Stop */ | 
|---|
| 123 |         VolumeDown      =0xAE,    /* Volume - */ | 
|---|
| 124 |         VolumeUp        =0xB0,    /* Volume + */ | 
|---|
| 125 |         WebHome         =0xB2,    /* Web home */ | 
|---|
| 126 |         NumpadComma     =0xB3,    /* , on numeric keypad (NEC PC98) */ | 
|---|
| 127 |         Divide          =0xB5,    /* / on numeric keypad */ | 
|---|
| 128 |         SysRq           =0xB7, | 
|---|
| 129 |         RightAlt        =0xB8,    /* right Alt */ | 
|---|
| 130 |         Pause           =0xC5,    /* Pause */ | 
|---|
| 131 |         Home            =0xC7,    /* Home on arrow keypad */ | 
|---|
| 132 |         ArrowUp         =0xC8,    /* UpArrow on arrow keypad */ | 
|---|
| 133 |         PageUp          =0xC9,    /* PgUp on arrow keypad */ | 
|---|
| 134 |         ArrowLeft       =0xCB,    /* LeftArrow on arrow keypad */ | 
|---|
| 135 |         ArrowRight      =0xCD,    /* RightArrow on arrow keypad */ | 
|---|
| 136 |         End             =0xCF,    /* End on arrow keypad */ | 
|---|
| 137 |         ArrowDown       =0xD0,    /* DownArrow on arrow keypad */ | 
|---|
| 138 |         PageDown                =0xD1,    /* PgDn on arrow keypad */ | 
|---|
| 139 |         Insert          =0xD2,    /* Insert on arrow keypad */ | 
|---|
| 140 |         Delete          =0xD3,    /* Delete on arrow keypad */ | 
|---|
| 141 |         LeftWindows     =0xDB,    /* Left Windows key */ | 
|---|
| 142 |         RightWindow     =0xDC,    /* Right Windows key */ | 
|---|
| 143 |         AppMenu         =0xDD,    /* AppMenu key */ | 
|---|
| 144 |         Power           =0xDE,    /* System Power */ | 
|---|
| 145 |         Sleep           =0xDF,    /* System Sleep */ | 
|---|
| 146 |         Wake                    =0xE3,    /* System Wake */ | 
|---|
| 147 |         WebSearch               =0xE5,    /* Web Search */ | 
|---|
| 148 |         WebFavorites    =0xE6,    /* Web Favorites */ | 
|---|
| 149 |         WebRefresh              =0xE7,    /* Web Refresh */ | 
|---|
| 150 |         WebStop                 =0xE8,    /* Web Stop */ | 
|---|
| 151 |         WebForward              =0xE9,    /* Web Forward */ | 
|---|
| 152 |         WebBack                 =0xEA,    /* Web Back */ | 
|---|
| 153 |         MyComputer              =0xEB,    /* My Computer */ | 
|---|
| 154 |         Mail                    =0xEC,    /* Mail */ | 
|---|
| 155 |         MediaSelect             =0xED     /* Media Select */ | 
|---|
| 156 |  | 
|---|
| 157 | }; // Key::Scan | 
|---|
| 158 |  | 
|---|
| 159 | } // Key | 
|---|
| 160 |  | 
|---|
| 161 |  | 
|---|
| 162 |  | 
|---|
| 163 | /*********************************************************************** | 
|---|
| 164 |         SystemKey | 
|---|
| 165 | ***********************************************************************/ | 
|---|
| 166 | enum SystemKey | 
|---|
| 167 | { | 
|---|
| 168 |         LeftMouse               = 0x01,                 //!< The left mouse button. | 
|---|
| 169 |         RightMouse              = 0x02,                 //!< The right mouse button. | 
|---|
| 170 |         Shift                   = 0x04,                 //!< Either shift key. | 
|---|
| 171 |         Control                 = 0x08,                 //!< Either control key. | 
|---|
| 172 |         MiddleMouse             = 0x10,                 //!< The middle mouse button. | 
|---|
| 173 |         X1Mouse                 = 0x20,                 //!< The first 'extra' mouse button | 
|---|
| 174 |         X2Mouse                 = 0x40                  //!< The second 'extra' mouse button. | 
|---|
| 175 | }; | 
|---|