Convert Keycode to match SDL2. Fixes #4055.

This commit is contained in:
Paul Chote
2013-11-04 20:56:24 +13:00
parent 4b8b7fb75f
commit 78fe3fb702
2 changed files with 439 additions and 430 deletions

View File

@@ -14,259 +14,261 @@ using System.Linq;
namespace OpenRA namespace OpenRA
{ {
// List of keycodes, duplicated from SDL 2.0.1
public enum Keycode public enum Keycode
{ {
UNKNOWN = 0, UNKNOWN = 0,
FIRST = 0, RETURN = '\r',
BACKSPACE = 8,
TAB = 9,
CLEAR = 12,
RETURN = 13,
PAUSE = 19,
ESCAPE = 27, ESCAPE = 27,
SPACE = 32, BACKSPACE = '\b',
EXCLAIM = 33, TAB = '\t',
QUOTEDBL = 34, SPACE = ' ',
HASH = 35, EXCLAIM = '!',
DOLLAR = 36, QUOTEDBL = '"',
AMPERSAND = 38, HASH = '#',
QUOTE = 39, PERCENT = '%',
LEFTPAREN = 40, DOLLAR = '$',
RIGHTPAREN = 41, AMPERSAND = '&',
ASTERISK = 42, QUOTE = '\'',
PLUS = 43, LEFTPAREN = '(',
COMMA = 44, RIGHTPAREN = ')',
MINUS = 45, ASTERISK = '*',
PERIOD = 46, PLUS = '+',
SLASH = 47, COMMA = ',',
NUMBER_0 = 48, MINUS = '-',
NUMBER_1 = 49, PERIOD = '.',
NUMBER_2 = 50, SLASH = '/',
NUMBER_3 = 51, NUMBER_0 = '0',
NUMBER_4 = 52, NUMBER_1 = '1',
NUMBER_5 = 53, NUMBER_2 = '2',
NUMBER_6 = 54, NUMBER_3 = '3',
NUMBER_7 = 55, NUMBER_4 = '4',
NUMBER_8 = 56, NUMBER_5 = '5',
NUMBER_9 = 57, NUMBER_6 = '6',
COLON = 58, NUMBER_7 = '7',
SEMICOLON = 59, NUMBER_8 = '8',
LESS = 60, NUMBER_9 = '9',
EQUALS = 61, COLON = ':',
GREATER = 62, SEMICOLON = ';',
QUESTION = 63, LESS = '<',
AT = 64, EQUALS = '=',
LEFTBRACKET = 91, GREATER = '>',
BACKSLASH = 92, QUESTION = '?',
RIGHTBRACKET = 93, AT = '@',
CARET = 94, LEFTBRACKET = '[',
UNDERSCORE = 95, BACKSLASH = '\\',
BACKQUOTE = 96, RIGHTBRACKET = ']',
A = 97, CARET = '^',
B = 98, UNDERSCORE = '_',
C = 99, BACKQUOTE = '`',
D = 100, A = 'a',
E = 101, B = 'b',
F = 102, C = 'c',
G = 103, D = 'd',
H = 104, E = 'e',
I = 105, F = 'f',
J = 106, G = 'g',
K = 107, H = 'h',
L = 108, I = 'i',
M = 109, J = 'j',
N = 110, K = 'k',
O = 111, L = 'l',
P = 112, M = 'm',
Q = 113, N = 'n',
R = 114, O = 'o',
S = 115, P = 'p',
T = 116, Q = 'q',
U = 117, R = 'r',
V = 118, S = 's',
W = 119, T = 't',
X = 120, U = 'u',
Y = 121, V = 'v',
Z = 122, W = 'w',
X = 'x',
Y = 'y',
Z = 'z',
CAPSLOCK = 57 | (1 << 30),
F1 = 58 | (1 << 30),
F2 = 59 | (1 << 30),
F3 = 60 | (1 << 30),
F4 = 61 | (1 << 30),
F5 = 62 | (1 << 30),
F6 = 63 | (1 << 30),
F7 = 64 | (1 << 30),
F8 = 65 | (1 << 30),
F9 = 66 | (1 << 30),
F10 = 67 | (1 << 30),
F11 = 68 | (1 << 30),
F12 = 69 | (1 << 30),
PRINTSCREEN = 70 | (1 << 30),
SCROLLLOCK = 71 | (1 << 30),
PAUSE = 72 | (1 << 30),
INSERT = 73 | (1 << 30),
HOME = 74 | (1 << 30),
PAGEUP = 75 | (1 << 30),
DELETE = 127, DELETE = 127,
WORLD_0 = 160, END = 77 | (1 << 30),
WORLD_1 = 161, PAGEDOWN = 78 | (1 << 30),
WORLD_2 = 162, RIGHT = 79 | (1 << 30),
WORLD_3 = 163, LEFT = 80 | (1 << 30),
WORLD_4 = 164, DOWN = 81 | (1 << 30),
WORLD_5 = 165, UP = 82 | (1 << 30),
WORLD_6 = 166, NUMLOCKCLEAR = 83 | (1 << 30),
WORLD_7 = 167, KP_DIVIDE = 84 | (1 << 30),
WORLD_8 = 168, KP_MULTIPLY = 85 | (1 << 30),
WORLD_9 = 169, KP_MINUS = 86 | (1 << 30),
WORLD_10 = 170, KP_PLUS = 87 | (1 << 30),
WORLD_11 = 171, KP_ENTER = 88 | (1 << 30),
WORLD_12 = 172, KP_1 = 89 | (1 << 30),
WORLD_13 = 173, KP_2 = 90 | (1 << 30),
WORLD_14 = 174, KP_3 = 91 | (1 << 30),
WORLD_15 = 175, KP_4 = 92 | (1 << 30),
WORLD_16 = 176, KP_5 = 93 | (1 << 30),
WORLD_17 = 177, KP_6 = 94 | (1 << 30),
WORLD_18 = 178, KP_7 = 95 | (1 << 30),
WORLD_19 = 179, KP_8 = 96 | (1 << 30),
WORLD_20 = 180, KP_9 = 97 | (1 << 30),
WORLD_21 = 181, KP_0 = 98 | (1 << 30),
WORLD_22 = 182, KP_PERIOD = 99 | (1 << 30),
WORLD_23 = 183, APPLICATION = 101 | (1 << 30),
WORLD_24 = 184, POWER = 102 | (1 << 30),
WORLD_25 = 185, KP_EQUALS = 103 | (1 << 30),
WORLD_26 = 186, F13 = 104 | (1 << 30),
WORLD_27 = 187, F14 = 105 | (1 << 30),
WORLD_28 = 188, F15 = 106 | (1 << 30),
WORLD_29 = 189, F16 = 107 | (1 << 30),
WORLD_30 = 190, F17 = 108 | (1 << 30),
WORLD_31 = 191, F18 = 109 | (1 << 30),
WORLD_32 = 192, F19 = 110 | (1 << 30),
WORLD_33 = 193, F20 = 111 | (1 << 30),
WORLD_34 = 194, F21 = 112 | (1 << 30),
WORLD_35 = 195, F22 = 113 | (1 << 30),
WORLD_36 = 196, F23 = 114 | (1 << 30),
WORLD_37 = 197, F24 = 115 | (1 << 30),
WORLD_38 = 198, EXECUTE = 116 | (1 << 30),
WORLD_39 = 199, HELP = 117 | (1 << 30),
WORLD_40 = 200, MENU = 118 | (1 << 30),
WORLD_41 = 201, SELECT = 119 | (1 << 30),
WORLD_42 = 202, STOP = 120 | (1 << 30),
WORLD_43 = 203, AGAIN = 121 | (1 << 30),
WORLD_44 = 204, UNDO = 122 | (1 << 30),
WORLD_45 = 205, CUT = 123 | (1 << 30),
WORLD_46 = 206, COPY = 124 | (1 << 30),
WORLD_47 = 207, PASTE = 125 | (1 << 30),
WORLD_48 = 208, FIND = 126 | (1 << 30),
WORLD_49 = 209, MUTE = 127 | (1 << 30),
WORLD_50 = 210, VOLUMEUP = 128 | (1 << 30),
WORLD_51 = 211, VOLUMEDOWN = 129 | (1 << 30),
WORLD_52 = 212, KP_COMMA = 133 | (1 << 30),
WORLD_53 = 213, KP_EQUALSAS400 = 134 | (1 << 30),
WORLD_54 = 214, ALTERASE = 153 | (1 << 30),
WORLD_55 = 215, SYSREQ = 154 | (1 << 30),
WORLD_56 = 216, CANCEL = 155 | (1 << 30),
WORLD_57 = 217, CLEAR = 156 | (1 << 30),
WORLD_58 = 218, PRIOR = 157 | (1 << 30),
WORLD_59 = 219, RETURN2 = 158 | (1 << 30),
WORLD_60 = 220, SEPARATOR = 159 | (1 << 30),
WORLD_61 = 221, OUT = 160 | (1 << 30),
WORLD_62 = 222, OPER = 161 | (1 << 30),
WORLD_63 = 223, CLEARAGAIN = 162 | (1 << 30),
WORLD_64 = 224, CRSEL = 163 | (1 << 30),
WORLD_65 = 225, EXSEL = 164 | (1 << 30),
WORLD_66 = 226, KP_00 = 176 | (1 << 30),
WORLD_67 = 227, KP_000 = 177 | (1 << 30),
WORLD_68 = 228, THOUSANDSSEPARATOR = 178 | (1 << 30),
WORLD_69 = 229, DECIMALSEPARATOR = 179 | (1 << 30),
WORLD_70 = 230, CURRENCYUNIT = 180 | (1 << 30),
WORLD_71 = 231, CURRENCYSUBUNIT = 181 | (1 << 30),
WORLD_72 = 232, KP_LEFTPAREN = 182 | (1 << 30),
WORLD_73 = 233, KP_RIGHTPAREN = 183 | (1 << 30),
WORLD_74 = 234, KP_LEFTBRACE = 184 | (1 << 30),
WORLD_75 = 235, KP_RIGHTBRACE = 185 | (1 << 30),
WORLD_76 = 236, KP_TAB = 186 | (1 << 30),
WORLD_77 = 237, KP_BACKSPACE = 187 | (1 << 30),
WORLD_78 = 238, KP_A = 188 | (1 << 30),
WORLD_79 = 239, KP_B = 189 | (1 << 30),
WORLD_80 = 240, KP_C = 190 | (1 << 30),
WORLD_81 = 241, KP_D = 191 | (1 << 30),
WORLD_82 = 242, KP_E = 192 | (1 << 30),
WORLD_83 = 243, KP_F = 193 | (1 << 30),
WORLD_84 = 244, KP_XOR = 194 | (1 << 30),
WORLD_85 = 245, KP_POWER = 195 | (1 << 30),
WORLD_86 = 246, KP_PERCENT = 196 | (1 << 30),
WORLD_87 = 247, KP_LESS = 197 | (1 << 30),
WORLD_88 = 248, KP_GREATER = 198 | (1 << 30),
WORLD_89 = 249, KP_AMPERSAND = 199 | (1 << 30),
WORLD_90 = 250, KP_DBLAMPERSAND = 200 | (1 << 30),
WORLD_91 = 251, KP_VERTICALBAR = 201 | (1 << 30),
WORLD_92 = 252, KP_DBLVERTICALBAR = 202 | (1 << 30),
WORLD_93 = 253, KP_COLON = 203 | (1 << 30),
WORLD_94 = 254, KP_HASH = 204 | (1 << 30),
WORLD_95 = 255, KP_SPACE = 205 | (1 << 30),
KP0 = 256, KP_AT = 206 | (1 << 30),
KP1 = 257, KP_EXCLAM = 207 | (1 << 30),
KP2 = 258, KP_MEMSTORE = 208 | (1 << 30),
KP3 = 259, KP_MEMRECALL = 209 | (1 << 30),
KP4 = 260, KP_MEMCLEAR = 210 | (1 << 30),
KP5 = 261, KP_MEMADD = 211 | (1 << 30),
KP6 = 262, KP_MEMSUBTRACT = 212 | (1 << 30),
KP7 = 263, KP_MEMMULTIPLY = 213 | (1 << 30),
KP8 = 264, KP_MEMDIVIDE = 214 | (1 << 30),
KP9 = 265, KP_PLUSMINUS = 215 | (1 << 30),
KP_PERIOD = 266, KP_CLEAR = 216 | (1 << 30),
KP_DIVIDE = 267, KP_CLEARENTRY = 217 | (1 << 30),
KP_MULTIPLY = 268, KP_BINARY = 218 | (1 << 30),
KP_MINUS = 269, KP_OCTAL = 219 | (1 << 30),
KP_PLUS = 270, KP_DECIMAL = 220 | (1 << 30),
KP_ENTER = 271, KP_HEXADECIMAL = 221 | (1 << 30),
KP_EQUALS = 272, LCTRL = 224 | (1 << 30),
UP = 273, LSHIFT = 225 | (1 << 30),
DOWN = 274, LALT = 226 | (1 << 30),
RIGHT = 275, LGUI = 227 | (1 << 30),
LEFT = 276, RCTRL = 228 | (1 << 30),
INSERT = 277, RSHIFT = 229 | (1 << 30),
HOME = 278, RALT = 230 | (1 << 30),
END = 279, RGUI = 231 | (1 << 30),
PAGEUP = 280, MODE = 257 | (1 << 30),
PAGEDOWN = 281, AUDIONEXT = 258 | (1 << 30),
F1 = 282, AUDIOPREV = 259 | (1 << 30),
F2 = 283, AUDIOSTOP = 260 | (1 << 30),
F3 = 284, AUDIOPLAY = 261 | (1 << 30),
F4 = 285, AUDIOMUTE = 262 | (1 << 30),
F5 = 286, MEDIASELECT = 263 | (1 << 30),
F6 = 287, WWW = 264 | (1 << 30),
F7 = 288, MAIL = 265 | (1 << 30),
F8 = 289, CALCULATOR = 266 | (1 << 30),
F9 = 290, COMPUTER = 267 | (1 << 30),
F10 = 291, AC_SEARCH = 268 | (1 << 30),
F11 = 292, AC_HOME = 269 | (1 << 30),
F12 = 293, AC_BACK = 270 | (1 << 30),
F13 = 294, AC_FORWARD = 271 | (1 << 30),
F14 = 295, AC_STOP = 272 | (1 << 30),
F15 = 296, AC_REFRESH = 273 | (1 << 30),
NUMLOCK = 300, AC_BOOKMARKS = 274 | (1 << 30),
CAPSLOCK = 301, BRIGHTNESSDOWN = 275 | (1 << 30),
SCROLLOCK = 302, BRIGHTNESSUP = 276 | (1 << 30),
RSHIFT = 303, DISPLAYSWITCH = 277 | (1 << 30),
LSHIFT = 304, KBDILLUMTOGGLE = 278 | (1 << 30),
RCTRL = 305, KBDILLUMDOWN = 279 | (1 << 30),
LCTRL = 306, KBDILLUMUP = 280 | (1 << 30),
RALT = 307, EJECT = 281 | (1 << 30),
LALT = 308, SLEEP = 282 | (1 << 30),
RMETA = 309,
LMETA = 310,
LSUPER = 311,
RSUPER = 312,
MODE = 313,
COMPOSE = 314,
HELP = 315,
PRINT = 316,
SYSREQ = 317,
BREAK = 318,
MENU = 319,
POWER = 320,
EURO = 321,
UNDO = 322,
LAST
} }
public static class KeycodeExts public static class KeycodeExts
{ {
static readonly Dictionary<Keycode, string> KeyNames = new Dictionary<Keycode, string> static readonly Dictionary<Keycode, string> KeyNames = new Dictionary<Keycode, string>
{ {
{ Keycode.UNKNOWN, "unknown" }, { Keycode.UNKNOWN, "Unknown" },
{ Keycode.BACKSPACE, "backspace" }, { Keycode.RETURN, "Return" },
{ Keycode.TAB, "tab" }, { Keycode.ESCAPE, "Escape" },
{ Keycode.CLEAR, "clear" }, { Keycode.BACKSPACE, "Backspace" },
{ Keycode.RETURN, "return" }, { Keycode.TAB, "Tab" },
{ Keycode.PAUSE, "pause" }, { Keycode.SPACE, "Space" },
{ Keycode.ESCAPE, "escape" },
{ Keycode.SPACE, "space" },
{ Keycode.EXCLAIM, "!" }, { Keycode.EXCLAIM, "!" },
{ Keycode.QUOTEDBL, "\"" }, { Keycode.QUOTEDBL, "\"" },
{ Keycode.HASH, "#" }, { Keycode.HASH, "#" },
{ Keycode.PERCENT, "%" },
{ Keycode.DOLLAR, "$" }, { Keycode.DOLLAR, "$" },
{ Keycode.AMPERSAND, "&" }, { Keycode.AMPERSAND, "&" },
{ Keycode.QUOTE, "'" }, { Keycode.QUOTE, "'" },
@@ -289,7 +291,7 @@ namespace OpenRA
{ Keycode.NUMBER_8, "8" }, { Keycode.NUMBER_8, "8" },
{ Keycode.NUMBER_9, "9" }, { Keycode.NUMBER_9, "9" },
{ Keycode.COLON, ":" }, { Keycode.COLON, ":" },
{ Keycode.SEMICOLON, " }," }, { Keycode.SEMICOLON, ";" },
{ Keycode.LESS, "<" }, { Keycode.LESS, "<" },
{ Keycode.EQUALS, "=" }, { Keycode.EQUALS, "=" },
{ Keycode.GREATER, ">" }, { Keycode.GREATER, ">" },
@@ -301,199 +303,206 @@ namespace OpenRA
{ Keycode.CARET, "^" }, { Keycode.CARET, "^" },
{ Keycode.UNDERSCORE, "_" }, { Keycode.UNDERSCORE, "_" },
{ Keycode.BACKQUOTE, "`" }, { Keycode.BACKQUOTE, "`" },
{ Keycode.A, "a" }, { Keycode.A, "A" },
{ Keycode.B, "b" }, { Keycode.B, "B" },
{ Keycode.C, "c" }, { Keycode.C, "C" },
{ Keycode.D, "d" }, { Keycode.D, "D" },
{ Keycode.E, "e" }, { Keycode.E, "E" },
{ Keycode.F, "f" }, { Keycode.F, "F" },
{ Keycode.G, "g" }, { Keycode.G, "G" },
{ Keycode.H, "h" }, { Keycode.H, "H" },
{ Keycode.I, "i" }, { Keycode.I, "I" },
{ Keycode.J, "j" }, { Keycode.J, "J" },
{ Keycode.K, "k" }, { Keycode.K, "K" },
{ Keycode.L, "l" }, { Keycode.L, "L" },
{ Keycode.M, "m" }, { Keycode.M, "M" },
{ Keycode.N, "n" }, { Keycode.N, "N" },
{ Keycode.O, "o" }, { Keycode.O, "O" },
{ Keycode.P, "p" }, { Keycode.P, "P" },
{ Keycode.Q, "q" }, { Keycode.Q, "Q" },
{ Keycode.R, "r" }, { Keycode.R, "R" },
{ Keycode.S, "s" }, { Keycode.S, "S" },
{ Keycode.T, "t" }, { Keycode.T, "T" },
{ Keycode.U, "u" }, { Keycode.U, "U" },
{ Keycode.V, "v" }, { Keycode.V, "V" },
{ Keycode.W, "w" }, { Keycode.W, "W" },
{ Keycode.X, "x" }, { Keycode.X, "X" },
{ Keycode.Y, "y" }, { Keycode.Y, "Y" },
{ Keycode.Z, "z" }, { Keycode.Z, "Z" },
{ Keycode.DELETE, "delete" }, { Keycode.CAPSLOCK, "CapsLock" },
{ Keycode.WORLD_0, "world 0" }, { Keycode.F1, "F1" },
{ Keycode.WORLD_1, "world 1" }, { Keycode.F2, "F2" },
{ Keycode.WORLD_2, "world 2" }, { Keycode.F3, "F3" },
{ Keycode.WORLD_3, "world 3" }, { Keycode.F4, "F4" },
{ Keycode.WORLD_4, "world 4" }, { Keycode.F5, "F5" },
{ Keycode.WORLD_5, "world 5" }, { Keycode.F6, "F6" },
{ Keycode.WORLD_6, "world 6" }, { Keycode.F7, "F7" },
{ Keycode.WORLD_7, "world 7" }, { Keycode.F8, "F8" },
{ Keycode.WORLD_8, "world 8" }, { Keycode.F9, "F9" },
{ Keycode.WORLD_9, "world 9" }, { Keycode.F10, "F10" },
{ Keycode.WORLD_10, "world 10" }, { Keycode.F11, "F11" },
{ Keycode.WORLD_11, "world 11" }, { Keycode.F12, "F12" },
{ Keycode.WORLD_12, "world 12" }, { Keycode.PRINTSCREEN, "PrintScreen" },
{ Keycode.WORLD_13, "world 13" }, { Keycode.SCROLLLOCK, "ScrollLock" },
{ Keycode.WORLD_14, "world 14" }, { Keycode.PAUSE, "Pause" },
{ Keycode.WORLD_15, "world 15" }, { Keycode.INSERT, "Insert" },
{ Keycode.WORLD_16, "world 16" }, { Keycode.HOME, "Home" },
{ Keycode.WORLD_17, "world 17" }, { Keycode.PAGEUP, "PageUp" },
{ Keycode.WORLD_18, "world 18" }, { Keycode.DELETE, "Delete" },
{ Keycode.WORLD_19, "world 19" }, { Keycode.END, "End" },
{ Keycode.WORLD_20, "world 20" }, { Keycode.PAGEDOWN, "PageDown" },
{ Keycode.WORLD_21, "world 21" }, { Keycode.RIGHT, "Right" },
{ Keycode.WORLD_22, "world 22" }, { Keycode.LEFT, "Left" },
{ Keycode.WORLD_23, "world 23" }, { Keycode.DOWN, "Down" },
{ Keycode.WORLD_24, "world 24" }, { Keycode.UP, "Up" },
{ Keycode.WORLD_25, "world 25" }, { Keycode.NUMLOCKCLEAR, "Numlock" },
{ Keycode.WORLD_26, "world 26" }, { Keycode.KP_DIVIDE, "Keypad /" },
{ Keycode.WORLD_27, "world 27" }, { Keycode.KP_MULTIPLY, "Keypad *" },
{ Keycode.WORLD_28, "world 28" }, { Keycode.KP_MINUS, "Keypad -" },
{ Keycode.WORLD_29, "world 29" }, { Keycode.KP_PLUS, "Keypad +" },
{ Keycode.WORLD_30, "world 30" }, { Keycode.KP_ENTER, "Keypad Enter" },
{ Keycode.WORLD_31, "world 31" }, { Keycode.KP_1, "Keypad 1" },
{ Keycode.WORLD_32, "world 32" }, { Keycode.KP_2, "Keypad 2" },
{ Keycode.WORLD_33, "world 33" }, { Keycode.KP_3, "Keypad 3" },
{ Keycode.WORLD_34, "world 34" }, { Keycode.KP_4, "Keypad 4" },
{ Keycode.WORLD_35, "world 35" }, { Keycode.KP_5, "Keypad 5" },
{ Keycode.WORLD_36, "world 36" }, { Keycode.KP_6, "Keypad 6" },
{ Keycode.WORLD_37, "world 37" }, { Keycode.KP_7, "Keypad 7" },
{ Keycode.WORLD_38, "world 38" }, { Keycode.KP_8, "Keypad 8" },
{ Keycode.WORLD_39, "world 39" }, { Keycode.KP_9, "Keypad 9" },
{ Keycode.WORLD_40, "world 40" }, { Keycode.KP_0, "Keypad 0" },
{ Keycode.WORLD_41, "world 41" }, { Keycode.KP_PERIOD, "Keypad ." },
{ Keycode.WORLD_42, "world 42" }, { Keycode.APPLICATION, "Application" },
{ Keycode.WORLD_43, "world 43" }, { Keycode.POWER, "Power" },
{ Keycode.WORLD_44, "world 44" }, { Keycode.KP_EQUALS, "Keypad =" },
{ Keycode.WORLD_45, "world 45" }, { Keycode.F13, "F13" },
{ Keycode.WORLD_46, "world 46" }, { Keycode.F14, "F14" },
{ Keycode.WORLD_47, "world 47" }, { Keycode.F15, "F15" },
{ Keycode.WORLD_48, "world 48" }, { Keycode.F16, "F16" },
{ Keycode.WORLD_49, "world 49" }, { Keycode.F17, "F17" },
{ Keycode.WORLD_50, "world 50" }, { Keycode.F18, "F18" },
{ Keycode.WORLD_51, "world 51" }, { Keycode.F19, "F19" },
{ Keycode.WORLD_52, "world 52" }, { Keycode.F20, "F20" },
{ Keycode.WORLD_53, "world 53" }, { Keycode.F21, "F21" },
{ Keycode.WORLD_54, "world 54" }, { Keycode.F22, "F22" },
{ Keycode.WORLD_55, "world 55" }, { Keycode.F23, "F23" },
{ Keycode.WORLD_56, "world 56" }, { Keycode.F24, "F24" },
{ Keycode.WORLD_57, "world 57" }, { Keycode.EXECUTE, "Execute" },
{ Keycode.WORLD_58, "world 58" }, { Keycode.HELP, "Help" },
{ Keycode.WORLD_59, "world 59" }, { Keycode.MENU, "Menu" },
{ Keycode.WORLD_60, "world 60" }, { Keycode.SELECT, "Select" },
{ Keycode.WORLD_61, "world 61" }, { Keycode.STOP, "Stop" },
{ Keycode.WORLD_62, "world 62" }, { Keycode.AGAIN, "Again" },
{ Keycode.WORLD_63, "world 63" }, { Keycode.UNDO, "Undo" },
{ Keycode.WORLD_64, "world 64" }, { Keycode.CUT, "Cut" },
{ Keycode.WORLD_65, "world 65" }, { Keycode.COPY, "Copy" },
{ Keycode.WORLD_66, "world 66" }, { Keycode.PASTE, "Paste" },
{ Keycode.WORLD_67, "world 67" }, { Keycode.FIND, "Find" },
{ Keycode.WORLD_68, "world 68" }, { Keycode.MUTE, "Mute" },
{ Keycode.WORLD_69, "world 69" }, { Keycode.VOLUMEUP, "VolumeUp" },
{ Keycode.WORLD_70, "world 70" }, { Keycode.VOLUMEDOWN, "VolumeDown" },
{ Keycode.WORLD_71, "world 71" }, { Keycode.KP_COMMA, "Keypad }," },
{ Keycode.WORLD_72, "world 72" }, { Keycode.KP_EQUALSAS400, "Keypad, (AS400)" },
{ Keycode.WORLD_73, "world 73" }, { Keycode.ALTERASE, "AltErase" },
{ Keycode.WORLD_74, "world 74" }, { Keycode.SYSREQ, "SysReq" },
{ Keycode.WORLD_75, "world 75" }, { Keycode.CANCEL, "Cancel" },
{ Keycode.WORLD_76, "world 76" }, { Keycode.CLEAR, "Clear" },
{ Keycode.WORLD_77, "world 77" }, { Keycode.PRIOR, "Prior" },
{ Keycode.WORLD_78, "world 78" }, { Keycode.RETURN2, "Return" },
{ Keycode.WORLD_79, "world 79" }, { Keycode.SEPARATOR, "Separator" },
{ Keycode.WORLD_80, "world 80" }, { Keycode.OUT, "Out" },
{ Keycode.WORLD_81, "world 81" }, { Keycode.OPER, "Oper" },
{ Keycode.WORLD_82, "world 82" }, { Keycode.CLEARAGAIN, "Clear / Again" },
{ Keycode.WORLD_83, "world 83" }, { Keycode.CRSEL, "CrSel" },
{ Keycode.WORLD_84, "world 84" }, { Keycode.EXSEL, "ExSel" },
{ Keycode.WORLD_85, "world 85" }, { Keycode.KP_00, "Keypad 00" },
{ Keycode.WORLD_86, "world 86" }, { Keycode.KP_000, "Keypad 000" },
{ Keycode.WORLD_87, "world 87" }, { Keycode.THOUSANDSSEPARATOR, "ThousandsSeparator" },
{ Keycode.WORLD_88, "world 88" }, { Keycode.DECIMALSEPARATOR, "DecimalSeparator" },
{ Keycode.WORLD_89, "world 89" }, { Keycode.CURRENCYUNIT, "CurrencyUnit" },
{ Keycode.WORLD_90, "world 90" }, { Keycode.CURRENCYSUBUNIT, "CurrencySubUnit" },
{ Keycode.WORLD_91, "world 91" }, { Keycode.KP_LEFTPAREN, "Keypad (" },
{ Keycode.WORLD_92, "world 92" }, { Keycode.KP_RIGHTPAREN, "Keypad )" },
{ Keycode.WORLD_93, "world 93" }, { Keycode.KP_LEFTBRACE, "Keypad {" },
{ Keycode.WORLD_94, "world 94" }, { Keycode.KP_RIGHTBRACE, "Keypad }" },
{ Keycode.WORLD_95, "world 95" }, { Keycode.KP_TAB, "Keypad Tab" },
{ Keycode.KP0, "[0]" }, { Keycode.KP_BACKSPACE, "Keypad Backspace" },
{ Keycode.KP1, "[1]" }, { Keycode.KP_A, "Keypad A" },
{ Keycode.KP2, "[2]" }, { Keycode.KP_B, "Keypad B" },
{ Keycode.KP3, "[3]" }, { Keycode.KP_C, "Keypad C" },
{ Keycode.KP4, "[4]" }, { Keycode.KP_D, "Keypad D" },
{ Keycode.KP5, "[5]" }, { Keycode.KP_E, "Keypad E" },
{ Keycode.KP6, "[6]" }, { Keycode.KP_F, "Keypad F" },
{ Keycode.KP7, "[7]" }, { Keycode.KP_XOR, "Keypad XOR" },
{ Keycode.KP8, "[8]" }, { Keycode.KP_POWER, "Keypad ^" },
{ Keycode.KP9, "[9]" }, { Keycode.KP_PERCENT, "Keypad %" },
{ Keycode.KP_PERIOD, "[.]" }, { Keycode.KP_LESS, "Keypad <" },
{ Keycode.KP_DIVIDE, "[/]" }, { Keycode.KP_GREATER, "Keypad >" },
{ Keycode.KP_MULTIPLY, "[*]" }, { Keycode.KP_AMPERSAND, "Keypad &" },
{ Keycode.KP_MINUS, "[-]" }, { Keycode.KP_DBLAMPERSAND, "Keypad &&" },
{ Keycode.KP_PLUS, "[+]" }, { Keycode.KP_VERTICALBAR, "Keypad |" },
{ Keycode.KP_ENTER, "enter" }, { Keycode.KP_DBLVERTICALBAR, "Keypad ||" },
{ Keycode.KP_EQUALS, "equals" }, { Keycode.KP_COLON, "Keypad :" },
{ Keycode.UP, "up" }, { Keycode.KP_HASH, "Keypad #" },
{ Keycode.DOWN, "down" }, { Keycode.KP_SPACE, "Keypad Space" },
{ Keycode.RIGHT, "right" }, { Keycode.KP_AT, "Keypad @" },
{ Keycode.LEFT, "left" }, { Keycode.KP_EXCLAM, "Keypad !" },
{ Keycode.INSERT, "insert" }, { Keycode.KP_MEMSTORE, "Keypad MemStore" },
{ Keycode.HOME, "home" }, { Keycode.KP_MEMRECALL, "Keypad MemRecall" },
{ Keycode.END, "end" }, { Keycode.KP_MEMCLEAR, "Keypad MemClear" },
{ Keycode.PAGEUP, "page up" }, { Keycode.KP_MEMADD, "Keypad MemAdd" },
{ Keycode.PAGEDOWN, "page down" }, { Keycode.KP_MEMSUBTRACT, "Keypad MemSubtract" },
{ Keycode.F1, "f1" }, { Keycode.KP_MEMMULTIPLY, "Keypad MemMultiply" },
{ Keycode.F2, "f2" }, { Keycode.KP_MEMDIVIDE, "Keypad MemDivide" },
{ Keycode.F3, "f3" }, { Keycode.KP_PLUSMINUS, "Keypad +/-" },
{ Keycode.F4, "f4" }, { Keycode.KP_CLEAR, "Keypad Clear" },
{ Keycode.F5, "f5" }, { Keycode.KP_CLEARENTRY, "Keypad ClearEntry" },
{ Keycode.F6, "f6" }, { Keycode.KP_BINARY, "Keypad Binary" },
{ Keycode.F7, "f7" }, { Keycode.KP_OCTAL, "Keypad Octal" },
{ Keycode.F8, "f8" }, { Keycode.KP_DECIMAL, "Keypad Decimal" },
{ Keycode.F9, "f9" }, { Keycode.KP_HEXADECIMAL, "Keypad Hexadecimal" },
{ Keycode.F10, "f10" }, { Keycode.LCTRL, "Left Ctrl" },
{ Keycode.F11, "f11" }, { Keycode.LSHIFT, "Left Shift" },
{ Keycode.F12, "f12" }, { Keycode.LALT, "Left Alt" },
{ Keycode.F13, "f13" }, { Keycode.LGUI, "Left GUI" },
{ Keycode.F14, "f14" }, { Keycode.RCTRL, "Right Ctrl" },
{ Keycode.F15, "f15" }, { Keycode.RSHIFT, "Right Shift" },
{ Keycode.NUMLOCK, "numlock" }, { Keycode.RALT, "Right Alt" },
{ Keycode.CAPSLOCK, "caps lock" }, { Keycode.RGUI, "Right GUI" },
{ Keycode.SCROLLOCK, "scroll lock" }, { Keycode.MODE, "ModeSwitch" },
{ Keycode.RSHIFT, "right shift" }, { Keycode.AUDIONEXT, "AudioNext" },
{ Keycode.LSHIFT, "left shift" }, { Keycode.AUDIOPREV, "AudioPrev" },
{ Keycode.RCTRL, "right ctrl" }, { Keycode.AUDIOSTOP, "AudioStop" },
{ Keycode.LCTRL, "left ctrl" }, { Keycode.AUDIOPLAY, "AudioPlay" },
{ Keycode.RALT, "right alt" }, { Keycode.AUDIOMUTE, "AudioMute" },
{ Keycode.LALT, "left alt" }, { Keycode.MEDIASELECT, "MediaSelect" },
{ Keycode.RMETA, "right meta" }, { Keycode.WWW, "WWW" },
{ Keycode.LMETA, "left meta" }, { Keycode.MAIL, "Mail" },
{ Keycode.LSUPER, "left super" }, { Keycode.CALCULATOR, "Calculator" },
{ Keycode.RSUPER, "right super" }, { Keycode.COMPUTER, "Computer" },
{ Keycode.MODE, "alt gr" }, { Keycode.AC_SEARCH, "AC Search" },
{ Keycode.COMPOSE, "compose" }, { Keycode.AC_HOME, "AC Home" },
{ Keycode.HELP, "help" }, { Keycode.AC_BACK, "AC Back" },
{ Keycode.PRINT, "print screen" }, { Keycode.AC_FORWARD, "AC Forward" },
{ Keycode.SYSREQ, "sys req" }, { Keycode.AC_STOP, "AC Stop" },
{ Keycode.BREAK, "break" }, { Keycode.AC_REFRESH, "AC Refresh" },
{ Keycode.MENU, "menu" }, { Keycode.AC_BOOKMARKS, "AC Bookmarks" },
{ Keycode.POWER, "power" }, { Keycode.BRIGHTNESSDOWN, "BrightnessDown" },
{ Keycode.EURO, "euro" }, { Keycode.BRIGHTNESSUP, "BrightnessUp" },
{ Keycode.UNDO, "undo" } { Keycode.DISPLAYSWITCH, "DisplaySwitch" },
{ Keycode.KBDILLUMTOGGLE, "KBDIllumToggle" },
{ Keycode.KBDILLUMDOWN, "KBDIllumDown" },
{ Keycode.KBDILLUMUP, "KBDIllumUp" },
{ Keycode.EJECT, "Eject" },
{ Keycode.SLEEP, "Sleep" },
}; };
public static string DisplayString(Keycode k) public static string DisplayString(Keycode k)
{ {
var ret = "unknown"; string ret;
KeyNames.TryGetValue(k, out ret); if (!KeyNames.TryGetValue(k, out ret))
return k.ToString();
return ret; return ret;
} }
} }

View File

@@ -69,7 +69,7 @@ namespace OpenRA.Widgets
Keycode.RSHIFT, Keycode.LSHIFT, Keycode.RSHIFT, Keycode.LSHIFT,
Keycode.RCTRL, Keycode.LCTRL, Keycode.RCTRL, Keycode.LCTRL,
Keycode.RALT, Keycode.LALT, Keycode.RALT, Keycode.LALT,
Keycode.RMETA, Keycode.LMETA Keycode.RGUI, Keycode.LGUI
}; };
public override bool HandleKeyPress(KeyInput e) public override bool HandleKeyPress(KeyInput e)