[619] | 1 |
|
---|
| 2 | package de.ugoe.cs.quest.plugin.mfc.eventcore;
|
---|
| 3 |
|
---|
| 4 | import de.ugoe.cs.tasktree.keyboardmaps.VirtualKey;
|
---|
| 5 |
|
---|
| 6 | /**
|
---|
[837] | 7 | * <p>
|
---|
| 8 | * Map of virtual keys for MFC.
|
---|
| 9 | * </p>
|
---|
[619] | 10 | *
|
---|
[837] | 11 | * @version 1.0
|
---|
| 12 | * @author Patrick Harms
|
---|
[619] | 13 | */
|
---|
[837] | 14 | public enum WindowsVirtualKey {
|
---|
[619] | 15 | // VK_LBUTTON (0x01, "Left mouse button"),
|
---|
| 16 | // VK_RBUTTON (0x02, "Right mouse button"),
|
---|
| 17 | VK_CANCEL(0x03, VirtualKey.CANCEL),
|
---|
| 18 | // VK_MBUTTON (0x04, "Middle mouse button (three-button mouse)"),
|
---|
| 19 | // VK_XBUTTON1 (0x05, "X1 mouse button"),
|
---|
| 20 | // VK_XBUTTON2 (0x06, "X2 mouse button"),
|
---|
| 21 | // - (0x07, "Undefined"),
|
---|
| 22 | VK_BACK(0x08, VirtualKey.BACK_SPACE),
|
---|
| 23 | VK_TAB(0x09, VirtualKey.TAB),
|
---|
| 24 | // - (0x0A-0B, "Reserved"),
|
---|
| 25 | VK_CLEAR(0x0C, VirtualKey.CLEAR),
|
---|
| 26 | VK_RETURN(0x0D, VirtualKey.ENTER),
|
---|
| 27 | // - (0x0E-0F, "Undefined"),
|
---|
| 28 | VK_SHIFT(0x10, VirtualKey.SHIFT),
|
---|
| 29 | VK_CONTROL(0x11, VirtualKey.CONTROL),
|
---|
| 30 | VK_MENU(0x12, VirtualKey.ALT),
|
---|
| 31 | VK_PAUSE(0x13, VirtualKey.PAUSE),
|
---|
| 32 | VK_CAPITAL(0x14, VirtualKey.CAPS_LOCK),
|
---|
| 33 | VK_KANA(0x15, VirtualKey.KANA),
|
---|
| 34 | // VK_HANGUEL (0x15, VirtualKey.HANGUEL),
|
---|
| 35 | // VK_HANGUL (0x15, "IME Hangul mode"),
|
---|
| 36 | // - (0x16, "Undefined"),
|
---|
| 37 | // VK_JUNJA (0x17, VirtualKey.J),
|
---|
| 38 | VK_FINAL(0x18, VirtualKey.FINAL),
|
---|
| 39 | // VK_HANJA (0x19, "IME Hanja mode"),
|
---|
| 40 | VK_KANJI(0x19, VirtualKey.KANJI),
|
---|
| 41 | // - (0x1A, "Undefined"),
|
---|
| 42 | VK_ESCAPE(0x1B, VirtualKey.ESCAPE), VK_CONVERT(0x1C, VirtualKey.CONVERT),
|
---|
| 43 | VK_NONCONVERT(0x1D, VirtualKey.NONCONVERT),
|
---|
| 44 | VK_ACCEPT(0x1E, VirtualKey.ACCEPT),
|
---|
| 45 | VK_MODECHANGE(0x1F, VirtualKey.MODECHANGE),
|
---|
| 46 |
|
---|
| 47 | VK_SPACE(0x20, VirtualKey.SPACE),
|
---|
| 48 | VK_PRIOR(0x21, VirtualKey.PAGE_UP),
|
---|
| 49 | VK_NEXT(0x22, VirtualKey.PAGE_DOWN),
|
---|
| 50 | VK_END(0x23, VirtualKey.END),
|
---|
| 51 | VK_HOME(0x24, VirtualKey.HOME),
|
---|
| 52 | VK_LEFT(0x25, VirtualKey.LEFT),
|
---|
| 53 | VK_UP(0x26, VirtualKey.UP),
|
---|
| 54 | VK_RIGHT(0x27, VirtualKey.RIGHT),
|
---|
| 55 | VK_DOWN(0x28, VirtualKey.DOWN),
|
---|
| 56 | // VK_SELECT (0x29, VirtualKey.),
|
---|
| 57 | VK_PRINT(0x2A, VirtualKey.PRINTSCREEN),
|
---|
| 58 | // VK_EXECUTE (0x2B, VirtualKey.EXECUTE),
|
---|
| 59 | VK_SNAPSHOT(0x2C, VirtualKey.PRINTSCREEN), VK_INSERT(0x2D, VirtualKey.INSERT), VK_DELETE(0x2E,
|
---|
| 60 | VirtualKey.DELETE), VK_HELP(0x2F, VirtualKey.HELP), DIGIT_0(0x30, VirtualKey.DIGIT_0),
|
---|
| 61 | DIGIT_1(0x31, VirtualKey.DIGIT_1), DIGIT_2(0x32, VirtualKey.DIGIT_2), DIGIT_3(0x33,
|
---|
| 62 | VirtualKey.DIGIT_3), DIGIT_4(0x34, VirtualKey.DIGIT_4), DIGIT_5(0x35, VirtualKey.DIGIT_5),
|
---|
| 63 | DIGIT_6(0x36, VirtualKey.DIGIT_6),
|
---|
| 64 | DIGIT_7(0x37, VirtualKey.DIGIT_7),
|
---|
| 65 | DIGIT_8(0x38, VirtualKey.DIGIT_8),
|
---|
| 66 | DIGIT_9(0x39, VirtualKey.DIGIT_9),
|
---|
| 67 | // - (0x3A-40, "Undefined"),
|
---|
| 68 | A(0x41, VirtualKey.LETTER_A), B(0x42, VirtualKey.LETTER_B), C(0x43, VirtualKey.LETTER_C), D(
|
---|
| 69 | 0x44, VirtualKey.LETTER_D), E(0x45, VirtualKey.LETTER_E), F(0x46, VirtualKey.LETTER_F), G(
|
---|
| 70 | 0x47, VirtualKey.LETTER_G), H(0x48, VirtualKey.LETTER_H), I(0x49, VirtualKey.LETTER_I), J(
|
---|
| 71 | 0x4A, VirtualKey.LETTER_J), K(0x4B, VirtualKey.LETTER_K), L(0x4C, VirtualKey.LETTER_L), M(
|
---|
| 72 | 0x4D, VirtualKey.LETTER_M), N(0x4E, VirtualKey.LETTER_N), O(0x4F, VirtualKey.LETTER_O), P(
|
---|
| 73 | 0x50, VirtualKey.LETTER_P), Q(0x51, VirtualKey.LETTER_Q), R(0x52, VirtualKey.LETTER_R), S(
|
---|
| 74 | 0x53, VirtualKey.LETTER_S),
|
---|
| 75 | T(0x54, VirtualKey.LETTER_T),
|
---|
| 76 | U(0x55, VirtualKey.LETTER_U),
|
---|
| 77 | V(0x56, VirtualKey.LETTER_V),
|
---|
| 78 | W(0x57, VirtualKey.LETTER_W),
|
---|
| 79 | X(0x58, VirtualKey.LETTER_X),
|
---|
| 80 | Y(0x59, VirtualKey.LETTER_Y),
|
---|
| 81 | Z(0x5A, VirtualKey.LETTER_Z),
|
---|
| 82 | VK_LWIN(0x5B, VirtualKey.WINDOWS),
|
---|
| 83 | VK_RWIN(0x5C, VirtualKey.WINDOWS),
|
---|
| 84 | // VK_APPS (0x5D, "Applications key (Natural keyboard)"),
|
---|
| 85 | // - (0x5E, "Reserved"),
|
---|
| 86 | // VK_SLEEP (0x5F, VirtualKey.SLEEP),
|
---|
| 87 | VK_NUMPAD0(0x60, VirtualKey.NUMPAD_0), VK_NUMPAD1(0x61, VirtualKey.NUMPAD_1), VK_NUMPAD2(0x62,
|
---|
| 88 | VirtualKey.NUMPAD_2), VK_NUMPAD3(0x63, VirtualKey.NUMPAD_3), VK_NUMPAD4(0x64,
|
---|
| 89 | VirtualKey.NUMPAD_4), VK_NUMPAD5(0x65, VirtualKey.NUMPAD_5), VK_NUMPAD6(0x66,
|
---|
| 90 | VirtualKey.NUMPAD_6), VK_NUMPAD7(0x67, VirtualKey.NUMPAD_7), VK_NUMPAD8(0x68,
|
---|
| 91 | VirtualKey.NUMPAD_8), VK_NUMPAD9(0x69, VirtualKey.NUMPAD_9), VK_MULTIPLY(0x6A,
|
---|
| 92 | VirtualKey.MULTIPLY), VK_ADD(0x6B, VirtualKey.ADD),
|
---|
| 93 | VK_SEPARATOR(0x6C, VirtualKey.SEPARATOR), VK_SUBTRACT(0x6D, VirtualKey.SUBTRACT), VK_DECIMAL(
|
---|
| 94 | 0x6E, VirtualKey.DECIMAL), VK_DIVIDE(0x6F, VirtualKey.DIVIDE), VK_F1(0x70, VirtualKey.F1),
|
---|
| 95 | VK_F2(0x71, VirtualKey.F2), VK_F3(0x72, VirtualKey.F3), VK_F4(0x73, VirtualKey.F4), VK_F5(0x74,
|
---|
| 96 | VirtualKey.F5), VK_F6(0x75, VirtualKey.F6), VK_F7(0x76, VirtualKey.F7), VK_F8(0x77,
|
---|
| 97 | VirtualKey.F8), VK_F9(0x78, VirtualKey.F9), VK_F10(0x79, VirtualKey.F10), VK_F11(0x7A,
|
---|
| 98 | VirtualKey.F11), VK_F12(0x7B, VirtualKey.F12), VK_F13(0x7C, VirtualKey.F13), VK_F14(0x7D,
|
---|
| 99 | VirtualKey.F14), VK_F15(0x7E, VirtualKey.F15), VK_F16(0x7F, VirtualKey.F16), VK_F17(0x80,
|
---|
| 100 | VirtualKey.F17), VK_F18(0x81, VirtualKey.F18), VK_F19(0x82, VirtualKey.F19), VK_F20(0x83,
|
---|
| 101 | VirtualKey.F20), VK_F21(0x84, VirtualKey.F21), VK_F22(0x85, VirtualKey.F22), VK_F23(0x86,
|
---|
| 102 | VirtualKey.F23), VK_F24(0x87, VirtualKey.F24),
|
---|
| 103 | // - (0x88-8F, "Unassigned"),
|
---|
| 104 | VK_NUMLOCK(0x90, VirtualKey.NUM_LOCK),
|
---|
| 105 | VK_SCROLL(0x91, VirtualKey.SCROLL_LOCK),
|
---|
| 106 | // - (0x92-96, "OEM specific"),
|
---|
| 107 | // - (0x97-9F, "Unassigned"),
|
---|
| 108 | VK_LSHIFT(0xA0, VirtualKey.SHIFT), VK_RSHIFT(0xA1, VirtualKey.SHIFT), VK_LCONTROL(0xA2,
|
---|
| 109 | VirtualKey.CONTROL), VK_RCONTROL(0xA3, VirtualKey.CONTROL), VK_LMENU(0xA4, VirtualKey.ALT),
|
---|
| 110 | VK_RMENU(0xA5, VirtualKey.ALT_GRAPH),
|
---|
| 111 | // VK_BROWSER_BACK (0xA6, VirtualKey.BROWSER_BACK),
|
---|
| 112 | // VK_BROWSER_FORWARD (0xA7, VirtualKey.BROWSER_FORWARD),
|
---|
| 113 | VK_BROWSER_REFRESH(0xA8, VirtualKey.F5), VK_BROWSER_STOP(0xA9, VirtualKey.STOP),
|
---|
| 114 | // VK_BROWSER_SEARCH (0xAA, VirtualKey.BROWSER_SEARCH),
|
---|
| 115 | // VK_BROWSER_FAVORITES (0xAB, VirtualKey.BROWSER_FAVORITES),
|
---|
| 116 | // VK_BROWSER_HOME (0xAC, VirtualKey.BROWSER_HOME),
|
---|
| 117 | // VK_VOLUME_MUTE (0xAD, VirtualKey.VOLUME_MUTE),
|
---|
| 118 | // VK_VOLUME_DOWN (0xAE, VirtualKey.VOLUME_DOWN),
|
---|
| 119 | // VK_VOLUME_UP (0xAF, VirtualKey.VOLUME_UP),
|
---|
| 120 | // VK_MEDIA_NEXT_TRACK (0xB0, VirtualKey.MEDIA_NEXT_TRACK),
|
---|
| 121 | // VK_MEDIA_PREV_TRACK (0xB1, VirtualKey.MEDIA_PREV_TRACK),
|
---|
| 122 | // VK_MEDIA_STOP (0xB2, VirtualKey.MEDIA_STOP),
|
---|
| 123 | // VK_MEDIA_PLAY_PAUSE (0xB3, VirtualKey.MEDIA_PLAY_PAUSE),
|
---|
| 124 | // VK_LAUNCH_MAIL (0xB4, VirtualKey.LAUNCH_MAIL),
|
---|
| 125 | // VK_LAUNCH_MEDIA_SELECT (0xB5, VirtualKey.LAUNCH_MEDIA_SELECT),
|
---|
| 126 | // VK_LAUNCH_APP1 (0xB6, VirtualKey.LAUNCH_APP1),
|
---|
| 127 | // VK_LAUNCH_APP2 (0xB7, VirtualKey.LAUNCH_APP2),
|
---|
| 128 | // - (0xB8-B9, "Reserved"),
|
---|
| 129 | // VK_OEM_1 (0xBA, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 130 | // "For the US standard keyboard, the ';:' key"),
|
---|
| 131 | VK_OEM_PLUS(0xBB, VirtualKey.PLUS), VK_OEM_COMMA(0xBC, VirtualKey.COMMA), VK_OEM_MINUS(0xBD,
|
---|
| 132 | VirtualKey.MINUS), VK_OEM_PERIOD(0xBE, VirtualKey.PERIOD);
|
---|
| 133 | // VK_OEM_2 (0xBF, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 134 | // "For the US standard keyboard, the '/?' key"),
|
---|
| 135 | // VK_OEM_3 (0xC0, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 136 | // "For the US standard keyboard, the '`~' key"),
|
---|
| 137 | // - (0xC1-D7, "ReserveD, "- (0xD8-DA, "Unassigned"),
|
---|
| 138 | // VK_OEM_4 (0xDB, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 139 | // "For the US standard keyboard, the '[{' key"),
|
---|
| 140 | // VK_OEM_5 (0xDC, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 141 | // "For the US standard keyboard, the '\\|' key"),
|
---|
| 142 | // VK_OEM_6 (0xDD, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 143 | // "For the US standard keyboard, the ']}' key"),
|
---|
| 144 | // VK_OEM_7 (0xDE, "Used for miscellaneous characters; it can vary by keyboard." +
|
---|
| 145 | // "For the US standard keyboard, the 'single-quote/double-quote' key"),
|
---|
| 146 | // VK_OEM_8 (0xDF, "Used for miscellaneous characters; it can vary by keyboard."),
|
---|
| 147 | // - (0xE0, "Reserved"),
|
---|
| 148 | // - (0xE1, "OEM specific"),
|
---|
| 149 | // VK_OEM_102 (0xE2, "Either the angle bracket key or the backslash key on the RT 102-key" +
|
---|
| 150 | // "keyboard"),
|
---|
| 151 | // - (0xE3-E4, "OEM specific"),
|
---|
| 152 | // VK_PROCESSKEY (0xE5, VirtualKey.EXECUTE),
|
---|
| 153 | // - (0xE6, "OEM specific"),
|
---|
| 154 | // VK_PACKET (0xE7, "Used to pass Unicode characters as if they were keystrokes. The " +
|
---|
| 155 | // "VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard " +
|
---|
| 156 | // "input methods. For more information, see Remark in KEYBDINPUT, SendInput, " +
|
---|
| 157 | // "WM_KEYDOWN, and WM_KEYUP"),
|
---|
| 158 | // - (0xE8, "Unassigned (0xE9-F5, "OEM specific"),
|
---|
| 159 | // VK_ATTN (0xF6, "Attn key"),
|
---|
| 160 | // VK_CRSEL (0xF7, "CrSel key"),
|
---|
| 161 | // VK_EXSEL (0xF8, "ExSel key"),
|
---|
| 162 | // VK_EREOF (0xF9, "Erase EOF key"),
|
---|
| 163 | // VK_PLAY (0xFA, VirtualKey.MEDIA_PLAY_PAUSE);
|
---|
| 164 | // VK_ZOOM (0xFB, "Zoom key"),
|
---|
| 165 | // VK_NONAME (0xFC, "Reserved"),
|
---|
| 166 | // VK_PA1 (0xFD, "PA1 key"),
|
---|
| 167 | // VK_OEM_CLEAR (0xFE, "Clear key");
|
---|
| 168 |
|
---|
[837] | 169 | /**
|
---|
| 170 | * <p>
|
---|
| 171 | * Numerical representation of the virtual key.
|
---|
| 172 | * </p>
|
---|
| 173 | */
|
---|
[619] | 174 | private int mNumber;
|
---|
| 175 |
|
---|
[837] | 176 | /**
|
---|
| 177 | * <p>
|
---|
| 178 | * {@link VirtualKey} represented by this WindowsVirtualKey
|
---|
| 179 | * </p>
|
---|
| 180 | */
|
---|
[619] | 181 | private VirtualKey mRepresentedKey;
|
---|
| 182 |
|
---|
| 183 | /**
|
---|
[837] | 184 | * <p>
|
---|
| 185 | * Constructor. Creates a new WindowsVirtualKey.
|
---|
| 186 | * </p>
|
---|
| 187 | *
|
---|
[619] | 188 | * @param number
|
---|
[837] | 189 | * numerical representation of the virtual key
|
---|
| 190 | * @param representedKey
|
---|
| 191 | * virtual key that is represented
|
---|
[619] | 192 | */
|
---|
[837] | 193 | WindowsVirtualKey(int number, VirtualKey representedKey) {
|
---|
[619] | 194 | mNumber = number;
|
---|
| 195 | mRepresentedKey = representedKey;
|
---|
| 196 | }
|
---|
| 197 |
|
---|
| 198 | /**
|
---|
[837] | 199 | * <p>
|
---|
| 200 | * Returns the numerical representation of the virtual key.
|
---|
| 201 | * </p>
|
---|
| 202 | *
|
---|
| 203 | * @return the numerical representation
|
---|
[619] | 204 | */
|
---|
[837] | 205 | int getNumber() {
|
---|
[619] | 206 | return mNumber;
|
---|
| 207 | }
|
---|
| 208 |
|
---|
| 209 | /**
|
---|
[837] | 210 | * <p>
|
---|
| 211 | * Parses an {@link String} and returns the respective WindowsVirtualKey if possible.
|
---|
| 212 | * </p>
|
---|
| 213 | *
|
---|
| 214 | * @param string
|
---|
| 215 | * String representation of the event type
|
---|
| 216 | * @return created WindowsVirtualKey
|
---|
| 217 | * @throws IllegalArgumentException
|
---|
| 218 | * thrown if there is no WindowsVirtualKey that correlates to string
|
---|
| 219 | */
|
---|
| 220 | public static WindowsVirtualKey parseVirtualKey(String string) throws IllegalArgumentException {
|
---|
| 221 | for (WindowsVirtualKey virtualKey : WindowsVirtualKey.values()) {
|
---|
| 222 | if (virtualKey.mNumber == Integer.parseInt(string)) {
|
---|
[619] | 223 | return virtualKey;
|
---|
| 224 | }
|
---|
| 225 | }
|
---|
| 226 |
|
---|
| 227 | throw new IllegalArgumentException("there is no virtual key with id " + string);
|
---|
| 228 | }
|
---|
| 229 |
|
---|
| 230 | /**
|
---|
[837] | 231 | * <p>
|
---|
| 232 | * Returns the WindowsVirtualKey associated with an integer.
|
---|
| 233 | * </p>
|
---|
| 234 | *
|
---|
| 235 | * @param number
|
---|
| 236 | * integer to which the according WindowsVirtualKey is returned
|
---|
| 237 | * @return the WindowsVirtualKey
|
---|
| 238 | * @throws IllegalArgumentException
|
---|
| 239 | * thrown if there is no WindowsVirtualKey that correlates to number
|
---|
| 240 | */
|
---|
| 241 | public static WindowsVirtualKey valueOf(int number) throws IllegalArgumentException {
|
---|
| 242 | for (WindowsVirtualKey virtualKey : WindowsVirtualKey.values()) {
|
---|
| 243 | if (virtualKey.mNumber == number) {
|
---|
[619] | 244 | return virtualKey;
|
---|
| 245 | }
|
---|
| 246 | }
|
---|
| 247 |
|
---|
| 248 | throw new IllegalArgumentException("there is no virtual key with number " + number);
|
---|
| 249 | }
|
---|
| 250 |
|
---|
| 251 | /**
|
---|
[837] | 252 | * <p>
|
---|
| 253 | * Returns the {@link VirtualKey} associated with this WindowsVirtualKey.
|
---|
| 254 | * </p>
|
---|
[619] | 255 | *
|
---|
[837] | 256 | * @return the virtual key
|
---|
[619] | 257 | */
|
---|
[837] | 258 | public VirtualKey getKey() {
|
---|
[619] | 259 | return mRepresentedKey;
|
---|
| 260 | }
|
---|
| 261 |
|
---|
| 262 | }
|
---|