From 20f18d6ec2313e710c046f37f854da609ff14263 Mon Sep 17 00:00:00 2001 From: Arhcout Date: Tue, 6 Aug 2024 13:48:51 +0200 Subject: [PATCH] LibWeb: Defined all the keycodes I did this to respond to the issue #974. I changed the other keys to not have problems with two keys having the same keycode. --- Userland/Libraries/LibWeb/UIEvents/KeyCode.h | 276 +++++++++---------- 1 file changed, 138 insertions(+), 138 deletions(-) diff --git a/Userland/Libraries/LibWeb/UIEvents/KeyCode.h b/Userland/Libraries/LibWeb/UIEvents/KeyCode.h index 094de5cf571..738ce52f45c 100644 --- a/Userland/Libraries/LibWeb/UIEvents/KeyCode.h +++ b/Userland/Libraries/LibWeb/UIEvents/KeyCode.h @@ -14,144 +14,144 @@ namespace Web::UIEvents { -#define ENUMERATE_KEY_CODES \ - __ENUMERATE_KEY_CODE(Invalid, "Invalid") \ - __ENUMERATE_KEY_CODE(Escape, "Escape") \ - __ENUMERATE_KEY_CODE(Tab, "Tab") \ - __ENUMERATE_KEY_CODE(Backspace, "Backspace") \ - __ENUMERATE_KEY_CODE(Return, "Return") \ - __ENUMERATE_KEY_CODE(Insert, "Insert") \ - __ENUMERATE_KEY_CODE(Delete, "Delete") \ - __ENUMERATE_KEY_CODE(PrintScreen, "PrintScreen") \ - __ENUMERATE_KEY_CODE(PauseBreak, "PauseBreak") \ - __ENUMERATE_KEY_CODE(SysRq, "SysRq") \ - __ENUMERATE_KEY_CODE(Home, "Home") \ - __ENUMERATE_KEY_CODE(End, "End") \ - __ENUMERATE_KEY_CODE(Left, "Left") \ - __ENUMERATE_KEY_CODE(Up, "Up") \ - __ENUMERATE_KEY_CODE(Right, "Right") \ - __ENUMERATE_KEY_CODE(Down, "Down") \ - __ENUMERATE_KEY_CODE(PageUp, "PageUp") \ - __ENUMERATE_KEY_CODE(PageDown, "PageDown") \ - __ENUMERATE_KEY_CODE(LeftShift, "LeftShift") \ - __ENUMERATE_KEY_CODE(RightShift, "RightShift") \ - __ENUMERATE_KEY_CODE(Control, "Ctrl") \ - __ENUMERATE_KEY_CODE(RightControl, "RightCtrl") \ - __ENUMERATE_KEY_CODE(Alt, "Alt") \ - __ENUMERATE_KEY_CODE(RightAlt, "Alt") \ - __ENUMERATE_KEY_CODE(CapsLock, "CapsLock") \ - __ENUMERATE_KEY_CODE(NumLock, "NumLock") \ - __ENUMERATE_KEY_CODE(ScrollLock, "ScrollLock") \ - __ENUMERATE_KEY_CODE(F1, "F1") \ - __ENUMERATE_KEY_CODE(F2, "F2") \ - __ENUMERATE_KEY_CODE(F3, "F3") \ - __ENUMERATE_KEY_CODE(F4, "F4") \ - __ENUMERATE_KEY_CODE(F5, "F5") \ - __ENUMERATE_KEY_CODE(F6, "F6") \ - __ENUMERATE_KEY_CODE(F7, "F7") \ - __ENUMERATE_KEY_CODE(F8, "F8") \ - __ENUMERATE_KEY_CODE(F9, "F9") \ - __ENUMERATE_KEY_CODE(F10, "F10") \ - __ENUMERATE_KEY_CODE(F11, "F11") \ - __ENUMERATE_KEY_CODE(F12, "F12") \ - __ENUMERATE_KEY_CODE(Space, "Space") \ - __ENUMERATE_KEY_CODE(ExclamationPoint, "!") \ - __ENUMERATE_KEY_CODE(DoubleQuote, "\"") \ - __ENUMERATE_KEY_CODE(Hashtag, "#") \ - __ENUMERATE_KEY_CODE(Dollar, "$") \ - __ENUMERATE_KEY_CODE(Percent, "%") \ - __ENUMERATE_KEY_CODE(Ampersand, "&") \ - __ENUMERATE_KEY_CODE(Apostrophe, "'") \ - __ENUMERATE_KEY_CODE(LeftParen, "(") \ - __ENUMERATE_KEY_CODE(RightParen, ")") \ - __ENUMERATE_KEY_CODE(Asterisk, "*") \ - __ENUMERATE_KEY_CODE(Plus, "+") \ - __ENUMERATE_KEY_CODE(Comma, ",") \ - __ENUMERATE_KEY_CODE(Minus, "-") \ - __ENUMERATE_KEY_CODE(Period, ".") \ - __ENUMERATE_KEY_CODE(Slash, "/") \ - __ENUMERATE_KEY_CODE(0, "0") \ - __ENUMERATE_KEY_CODE(1, "1") \ - __ENUMERATE_KEY_CODE(2, "2") \ - __ENUMERATE_KEY_CODE(3, "3") \ - __ENUMERATE_KEY_CODE(4, "4") \ - __ENUMERATE_KEY_CODE(5, "5") \ - __ENUMERATE_KEY_CODE(6, "6") \ - __ENUMERATE_KEY_CODE(7, "7") \ - __ENUMERATE_KEY_CODE(8, "8") \ - __ENUMERATE_KEY_CODE(9, "9") \ - __ENUMERATE_KEY_CODE(Colon, ":") \ - __ENUMERATE_KEY_CODE(Semicolon, ";") \ - __ENUMERATE_KEY_CODE(LessThan, "<") \ - __ENUMERATE_KEY_CODE(Equal, "=") \ - __ENUMERATE_KEY_CODE(GreaterThan, ">") \ - __ENUMERATE_KEY_CODE(QuestionMark, "?") \ - __ENUMERATE_KEY_CODE(AtSign, "@") \ - __ENUMERATE_KEY_CODE(A, "A") \ - __ENUMERATE_KEY_CODE(B, "B") \ - __ENUMERATE_KEY_CODE(C, "C") \ - __ENUMERATE_KEY_CODE(D, "D") \ - __ENUMERATE_KEY_CODE(E, "E") \ - __ENUMERATE_KEY_CODE(F, "F") \ - __ENUMERATE_KEY_CODE(G, "G") \ - __ENUMERATE_KEY_CODE(H, "H") \ - __ENUMERATE_KEY_CODE(I, "I") \ - __ENUMERATE_KEY_CODE(J, "J") \ - __ENUMERATE_KEY_CODE(K, "K") \ - __ENUMERATE_KEY_CODE(L, "L") \ - __ENUMERATE_KEY_CODE(M, "M") \ - __ENUMERATE_KEY_CODE(N, "N") \ - __ENUMERATE_KEY_CODE(O, "O") \ - __ENUMERATE_KEY_CODE(P, "P") \ - __ENUMERATE_KEY_CODE(Q, "Q") \ - __ENUMERATE_KEY_CODE(R, "R") \ - __ENUMERATE_KEY_CODE(S, "S") \ - __ENUMERATE_KEY_CODE(T, "T") \ - __ENUMERATE_KEY_CODE(U, "U") \ - __ENUMERATE_KEY_CODE(V, "V") \ - __ENUMERATE_KEY_CODE(W, "W") \ - __ENUMERATE_KEY_CODE(X, "X") \ - __ENUMERATE_KEY_CODE(Y, "Y") \ - __ENUMERATE_KEY_CODE(Z, "Z") \ - __ENUMERATE_KEY_CODE(LeftBracket, "[") \ - __ENUMERATE_KEY_CODE(RightBracket, "]") \ - __ENUMERATE_KEY_CODE(Backslash, "\\") \ - __ENUMERATE_KEY_CODE(Circumflex, "^") \ - __ENUMERATE_KEY_CODE(Underscore, "_") \ - __ENUMERATE_KEY_CODE(LeftBrace, "{") \ - __ENUMERATE_KEY_CODE(RightBrace, "}") \ - __ENUMERATE_KEY_CODE(Pipe, "|") \ - __ENUMERATE_KEY_CODE(Tilde, "~") \ - __ENUMERATE_KEY_CODE(Backtick, "`") \ - __ENUMERATE_KEY_CODE(Super, "Super") \ - __ENUMERATE_KEY_CODE(BrowserSearch, "BrowserSearch") \ - __ENUMERATE_KEY_CODE(BrowserFavorites, "BrowserFavorites") \ - __ENUMERATE_KEY_CODE(BrowserHome, "BrowserHome") \ - __ENUMERATE_KEY_CODE(PreviousTrack, "PreviousTrack") \ - __ENUMERATE_KEY_CODE(BrowserBack, "BrowserBack") \ - __ENUMERATE_KEY_CODE(BrowserForward, "BrowserForward") \ - __ENUMERATE_KEY_CODE(BrowserRefresh, "BrowserRefresh") \ - __ENUMERATE_KEY_CODE(BrowserStop, "BrowserStop") \ - __ENUMERATE_KEY_CODE(VolumeDown, "VolumeDown") \ - __ENUMERATE_KEY_CODE(VolumeUp, "VolumeUp") \ - __ENUMERATE_KEY_CODE(Wake, "Wake") \ - __ENUMERATE_KEY_CODE(Sleep, "Sleep") \ - __ENUMERATE_KEY_CODE(NextTrack, "NextTrack") \ - __ENUMERATE_KEY_CODE(MediaSelect, "MediaSelect") \ - __ENUMERATE_KEY_CODE(Email, "Email") \ - __ENUMERATE_KEY_CODE(MyComputer, "MyComputer") \ - __ENUMERATE_KEY_CODE(Power, "Power") \ - __ENUMERATE_KEY_CODE(Stop, "Stop") \ - __ENUMERATE_KEY_CODE(LeftGUI, "LeftGUI") \ - __ENUMERATE_KEY_CODE(Mute, "Mute") \ - __ENUMERATE_KEY_CODE(RightGUI, "RightGUI") \ - __ENUMERATE_KEY_CODE(Calculator, "Calculator") \ - __ENUMERATE_KEY_CODE(Apps, "Apps") \ - __ENUMERATE_KEY_CODE(PlayPause, "PlayPause") \ - __ENUMERATE_KEY_CODE(Menu, "Menu") +#define ENUMERATE_KEY_CODES \ + __ENUMERATE_KEY_CODE(Invalid, "Invalid", 0x00) \ + __ENUMERATE_KEY_CODE(Backspace, "Backspace", 0x08) \ + __ENUMERATE_KEY_CODE(Tab, "Tab", 0x09) \ + __ENUMERATE_KEY_CODE(Return, "Return", 0x0D) \ + __ENUMERATE_KEY_CODE(LeftShift, "LeftShift", 0x10) \ + __ENUMERATE_KEY_CODE(RightShift, "RightShift", 0xB0) \ + __ENUMERATE_KEY_CODE(Control, "Ctrl", 0x11) \ + __ENUMERATE_KEY_CODE(RightControl, "RightCtrl", 0xB1) \ + __ENUMERATE_KEY_CODE(Alt, "Alt", 0x12) \ + __ENUMERATE_KEY_CODE(RightAlt, "Alt", 0xB2) \ + __ENUMERATE_KEY_CODE(PauseBreak, "PauseBreak", 0x13) \ + __ENUMERATE_KEY_CODE(CapsLock, "CapsLock", 0x14) \ + __ENUMERATE_KEY_CODE(Escape, "Escape", 0x1B) \ + __ENUMERATE_KEY_CODE(Space, "Space", 0x20) \ + __ENUMERATE_KEY_CODE(PageUp, "PageUp", 0x21) \ + __ENUMERATE_KEY_CODE(PageDown, "PageDown", 0x22) \ + __ENUMERATE_KEY_CODE(End, "End", 0x23) \ + __ENUMERATE_KEY_CODE(Home, "Home", 0x24) \ + __ENUMERATE_KEY_CODE(Left, "Left", 0x25) \ + __ENUMERATE_KEY_CODE(Up, "Up", 0x26) \ + __ENUMERATE_KEY_CODE(Right, "Right", 0x27) \ + __ENUMERATE_KEY_CODE(Down, "Down", 0x28) \ + __ENUMERATE_KEY_CODE(PrintScreen, "PrintScreen", 0x2A) \ + __ENUMERATE_KEY_CODE(SysRq, "SysRq", 0x2C) \ + __ENUMERATE_KEY_CODE(Delete, "Delete", 0x2E) \ + __ENUMERATE_KEY_CODE(0, "0", 0x30) \ + __ENUMERATE_KEY_CODE(1, "1", 0x31) \ + __ENUMERATE_KEY_CODE(2, "2", 0x32) \ + __ENUMERATE_KEY_CODE(3, "3", 0x33) \ + __ENUMERATE_KEY_CODE(4, "4", 0x34) \ + __ENUMERATE_KEY_CODE(5, "5", 0x35) \ + __ENUMERATE_KEY_CODE(6, "6", 0x36) \ + __ENUMERATE_KEY_CODE(7, "7", 0x37) \ + __ENUMERATE_KEY_CODE(8, "8", 0x38) \ + __ENUMERATE_KEY_CODE(9, "9", 0x39) \ + __ENUMERATE_KEY_CODE(A, "A", 0x41) \ + __ENUMERATE_KEY_CODE(B, "B", 0x42) \ + __ENUMERATE_KEY_CODE(C, "C", 0x43) \ + __ENUMERATE_KEY_CODE(D, "D", 0x44) \ + __ENUMERATE_KEY_CODE(E, "E", 0x45) \ + __ENUMERATE_KEY_CODE(F, "F", 0x46) \ + __ENUMERATE_KEY_CODE(G, "G", 0x47) \ + __ENUMERATE_KEY_CODE(H, "H", 0x48) \ + __ENUMERATE_KEY_CODE(I, "I", 0x49) \ + __ENUMERATE_KEY_CODE(J, "J", 0x4A) \ + __ENUMERATE_KEY_CODE(K, "K", 0x4B) \ + __ENUMERATE_KEY_CODE(L, "L", 0x4C) \ + __ENUMERATE_KEY_CODE(M, "M", 0x4D) \ + __ENUMERATE_KEY_CODE(N, "N", 0x4E) \ + __ENUMERATE_KEY_CODE(O, "O", 0x4F) \ + __ENUMERATE_KEY_CODE(P, "P", 0x50) \ + __ENUMERATE_KEY_CODE(Q, "Q", 0x51) \ + __ENUMERATE_KEY_CODE(R, "R", 0x52) \ + __ENUMERATE_KEY_CODE(S, "S", 0x53) \ + __ENUMERATE_KEY_CODE(T, "T", 0x54) \ + __ENUMERATE_KEY_CODE(U, "U", 0x55) \ + __ENUMERATE_KEY_CODE(V, "V", 0x56) \ + __ENUMERATE_KEY_CODE(W, "W", 0x57) \ + __ENUMERATE_KEY_CODE(X, "X", 0x58) \ + __ENUMERATE_KEY_CODE(Y, "Y", 0x59) \ + __ENUMERATE_KEY_CODE(Z, "Z", 0x5A) \ + __ENUMERATE_KEY_CODE(RightParen, ")", 0x60) \ + __ENUMERATE_KEY_CODE(ExclamationPoint, "!", 0x61) \ + __ENUMERATE_KEY_CODE(AtSign, "@", 0x62) \ + __ENUMERATE_KEY_CODE(Hashtag, "#", 0x63) \ + __ENUMERATE_KEY_CODE(Dollar, "$", 0x64) \ + __ENUMERATE_KEY_CODE(Percent, "%", 0x65) \ + __ENUMERATE_KEY_CODE(Circumflex, "^", 0x66) \ + __ENUMERATE_KEY_CODE(Ampersand, "&", 0x67) \ + __ENUMERATE_KEY_CODE(Asterisk, "*", 0x68) \ + __ENUMERATE_KEY_CODE(LeftParen, "(", 0x69) \ + __ENUMERATE_KEY_CODE(Plus, "+", 0x6A) \ + __ENUMERATE_KEY_CODE(Minus, "-", 0x6B) \ + __ENUMERATE_KEY_CODE(Slash, "/", 0x6C) \ + __ENUMERATE_KEY_CODE(Comma, ",", 0x6D) \ + __ENUMERATE_KEY_CODE(Period, ".", 0x6E) \ + __ENUMERATE_KEY_CODE(Colon, ":", 0x6F) \ + __ENUMERATE_KEY_CODE(F1, "F1", 0x70) \ + __ENUMERATE_KEY_CODE(F2, "F2", 0x71) \ + __ENUMERATE_KEY_CODE(F3, "F3", 0x72) \ + __ENUMERATE_KEY_CODE(F4, "F4", 0x73) \ + __ENUMERATE_KEY_CODE(F5, "F5", 0x74) \ + __ENUMERATE_KEY_CODE(F6, "F6", 0x75) \ + __ENUMERATE_KEY_CODE(F7, "F7", 0x76) \ + __ENUMERATE_KEY_CODE(F8, "F8", 0x77) \ + __ENUMERATE_KEY_CODE(F9, "F9", 0x78) \ + __ENUMERATE_KEY_CODE(F10, "F10", 0x79) \ + __ENUMERATE_KEY_CODE(F11, "F11", 0x7A) \ + __ENUMERATE_KEY_CODE(F12, "F12", 0x7B) \ + __ENUMERATE_KEY_CODE(DoubleQuote, "\"", 0x7C) \ + __ENUMERATE_KEY_CODE(Apostrophe, "'", 0x7D) \ + __ENUMERATE_KEY_CODE(Insert, "Insert", 0x7E) \ + __ENUMERATE_KEY_CODE(Semicolon, ";", 0x7F) \ + __ENUMERATE_KEY_CODE(LessThan, "<", 0x80) \ + __ENUMERATE_KEY_CODE(Equal, "=", 0x81) \ + __ENUMERATE_KEY_CODE(GreaterThan, ">", 0x82) \ + __ENUMERATE_KEY_CODE(QuestionMark, "?", 0x83) \ + __ENUMERATE_KEY_CODE(LeftBracket, "[", 0x84) \ + __ENUMERATE_KEY_CODE(RightBracket, "]", 0x85) \ + __ENUMERATE_KEY_CODE(Backslash, "\\", 0x86) \ + __ENUMERATE_KEY_CODE(Underscore, "_", 0x87) \ + __ENUMERATE_KEY_CODE(LeftBrace, "{", 0x88) \ + __ENUMERATE_KEY_CODE(RightBrace, "}", 0x89) \ + __ENUMERATE_KEY_CODE(Pipe, "|", 0x8A) \ + __ENUMERATE_KEY_CODE(Tilde, "~", 0x8B) \ + __ENUMERATE_KEY_CODE(Backtick, "`", 0x8C) \ + __ENUMERATE_KEY_CODE(NumLock, "NumLock", 0x90) \ + __ENUMERATE_KEY_CODE(ScrollLock, "ScrollLock", 0x91) \ + __ENUMERATE_KEY_CODE(Super, "Super", 0x92) \ + __ENUMERATE_KEY_CODE(BrowserSearch, "BrowserSearch", 0x93) \ + __ENUMERATE_KEY_CODE(BrowserFavorites, "BrowserFavorites", 0x94) \ + __ENUMERATE_KEY_CODE(BrowserHome, "BrowserHome", 0x95) \ + __ENUMERATE_KEY_CODE(PreviousTrack, "PreviousTrack", 0x96) \ + __ENUMERATE_KEY_CODE(BrowserBack, "BrowserBack", 0x97) \ + __ENUMERATE_KEY_CODE(BrowserForward, "BrowserForward", 0x98) \ + __ENUMERATE_KEY_CODE(BrowserRefresh, "BrowserRefresh", 0x99) \ + __ENUMERATE_KEY_CODE(BrowserStop, "BrowserStop", 0x9A) \ + __ENUMERATE_KEY_CODE(VolumeDown, "VolumeDown", 0x9B) \ + __ENUMERATE_KEY_CODE(VolumeUp, "VolumeUp", 0x9C) \ + __ENUMERATE_KEY_CODE(Wake, "Wake", 0x9D) \ + __ENUMERATE_KEY_CODE(Sleep, "Sleep", 0x9E) \ + __ENUMERATE_KEY_CODE(NextTrack, "NextTrack", 0x9F) \ + __ENUMERATE_KEY_CODE(MediaSelect, "MediaSelect", 0xA0) \ + __ENUMERATE_KEY_CODE(Email, "Email", 0xA1) \ + __ENUMERATE_KEY_CODE(MyComputer, "MyComputer", 0xA2) \ + __ENUMERATE_KEY_CODE(Power, "Power", 0xA3) \ + __ENUMERATE_KEY_CODE(Stop, "Stop", 0xA4) \ + __ENUMERATE_KEY_CODE(LeftGUI, "LeftGUI", 0xA5) \ + __ENUMERATE_KEY_CODE(Mute, "Mute", 0xA6) \ + __ENUMERATE_KEY_CODE(RightGUI, "RightGUI", 0xA7) \ + __ENUMERATE_KEY_CODE(Calculator, "Calculator", 0xA8) \ + __ENUMERATE_KEY_CODE(Apps, "Apps", 0xA9) \ + __ENUMERATE_KEY_CODE(PlayPause, "PlayPause", 0xAA) \ + __ENUMERATE_KEY_CODE(Menu, "Menu", 0xAB) enum KeyCode : u8 { -#define __ENUMERATE_KEY_CODE(name, ui_name) Key_##name, +#define __ENUMERATE_KEY_CODE(name, ui_name, code) Key_##name = code, ENUMERATE_KEY_CODES #undef __ENUMERATE_KEY_CODE @@ -162,8 +162,8 @@ size_t const key_code_count = Key_Menu + 1; constexpr KeyCode key_code_from_string(StringView key_name) { -#define __ENUMERATE_KEY_CODE(name, ui_name) \ - if (key_name == ui_name##sv) \ +#define __ENUMERATE_KEY_CODE(name, ui_name, code) \ + if (key_name == ui_name##sv) \ return KeyCode::Key_##name; ENUMERATE_KEY_CODES #undef __ENUMERATE_KEY_CODE