diff --git a/Userland/Libraries/LibWeb/UIEvents/KeyCode.h b/Userland/Libraries/LibWeb/UIEvents/KeyCode.h index 7e73f7ac4dd..71f41025e04 100644 --- a/Userland/Libraries/LibWeb/UIEvents/KeyCode.h +++ b/Userland/Libraries/LibWeb/UIEvents/KeyCode.h @@ -9,6 +9,7 @@ #include #include +#include #include namespace Web::UIEvents { @@ -159,6 +160,17 @@ enum KeyCode : u8 { }; 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) \ + return KeyCode::Key_##name; + ENUMERATE_KEY_CODES +#undef __ENUMERATE_KEY_CODE + + VERIFY_NOT_REACHED(); +} + enum KeyModifier { Mod_None = 0x00, Mod_Alt = (1 << 0),