Permalink
Comparing changes
Open a pull request
- 1 commit
- 1 file changed
- 0 commit comments
- 1 contributor
Commits on Apr 27, 2019
Unified
Split
Showing
with
323 additions
and 1 deletion.
- +323 −1 Source/WebCore/platform/haiku/PlatformKeyboardEventHaiku.cpp
| @@ -77,7 +77,7 @@ static String keyIdentifierForHaikuKeyCode(char singleByte, int keyCode) | ||
| case B_SCROLL_KEY: | ||
| return ""; // FIXME | ||
| } | ||
| break; | ||
| break; | ||
|
|
||
| case B_BACKSPACE: | ||
| return "U+0008"; | ||
| @@ -324,6 +324,326 @@ static int windowsKeyCodeForKeyEvent(char singleByte, int keyCode) | ||
| return singleByte; | ||
| } | ||
|
|
||
| static String KeyValueForKeyEvent(BString bytes, int keyCode) | ||
| { | ||
| switch (singleByte) { | ||
|
|
||
| case B_FUNCTION_KEY: | ||
| switch (keyCode) { | ||
| case B_F1_KEY: | ||
| return "F1"; | ||
| case B_F2_KEY: | ||
| return "F2"; | ||
| case B_F3_KEY: | ||
| return "F3"; | ||
| case B_F4_KEY: | ||
| return "F4"; | ||
| case B_F5_KEY: | ||
| return "F5"; | ||
| case B_F6_KEY: | ||
| return "F6"; | ||
| case B_F7_KEY: | ||
| return "F7"; | ||
| case B_F8_KEY: | ||
| return "F8"; | ||
| case B_F9_KEY: | ||
| return "F9"; | ||
| case B_F10_KEY: | ||
| return "F10"; | ||
| case B_F11_KEY: | ||
| return "F11"; | ||
| case B_F12_KEY: | ||
| return "F12"; | ||
| case B_PRINT_KEY: | ||
| return "Print"; | ||
| case B_PAUSE_KEY: | ||
| return "Pause"; | ||
| case B_SCROLL_KEY: | ||
| return "ScrollLock"; | ||
| case B_SHIFT_KEY: | ||
| return "Shift"; | ||
| case B_LEFT_CONTROL_KEY: // B_CONTROL_KEY = B_F3_KEY..? | ||
| case B_RIGHT_CONTROL_KEY: | ||
| return "Control"; | ||
| } | ||
| break; | ||
|
|
||
| case B_BACKSPACE: | ||
| return "Backspace"; | ||
| case B_LEFT_ARROW: | ||
| return "ArrowLeft"; | ||
| case B_RIGHT_ARROW: | ||
| return "ArrowRight"; | ||
| case B_UP_ARROW: | ||
| return "ArrowUp"; | ||
| case B_DOWN_ARROW: | ||
| return "ArrowDown"; | ||
| case B_INSERT: | ||
| return "Insert"; | ||
| case B_ENTER: | ||
| return "Enter"; | ||
| case B_DELETE: | ||
| return "Delete"; | ||
| case B_HOME: | ||
| return "Home"; | ||
| case B_END: | ||
| return "End"; | ||
| case B_PAGE_UP: | ||
| return "PageUp"; | ||
| case B_PAGE_DOWN: | ||
| return "PageDown"; | ||
| case B_TAB: | ||
| return "Tab"; | ||
| case B_SPACE: | ||
| return " "; // (20) SPACEBAR | ||
|
|
||
| case B_COMMAND_KEY: | ||
| return "Alt"; | ||
|
|
||
| case B_OPTION_KEY: | ||
| return "Compose"; // fx also said "Process" | ||
| case B_MENU_KEY: | ||
| return "ContextMenu"; | ||
| case B_ESCAPE: | ||
| return "Escape"; | ||
|
|
||
| default: { | ||
| return bytes; | ||
| } | ||
| } | ||
| return "Unidentified"; | ||
| } | ||
|
|
||
| static String KeyCodeForKeyEvent(int keyCode) | ||
| { | ||
| switch (keyCode) { | ||
| case 0x0001: | ||
| return "Escape"; | ||
| case 0x0002: | ||
| return "F1"; | ||
| case 0x0003: | ||
| return "F2"; | ||
| case 0x0004: | ||
| return "F3"; | ||
| case 0x0005: | ||
| return "F4"; | ||
| case 0x0006: | ||
| return "F5"; | ||
| case 0x0007: | ||
| return "F6"; | ||
| case 0x0008: | ||
| return "F7"; | ||
| case 0x0009: | ||
| return "F8"; | ||
| case 0x000A: | ||
| return "F9"; | ||
| case 0x000B: | ||
| return "F10"; | ||
| case 0x000C: | ||
| return "F11"; | ||
| case 0x000D: | ||
| return "F12"; | ||
|
|
||
| case 0x000E: | ||
| return "PrintScreen"; | ||
| case 0x000F: | ||
| return "ScrollLock"; | ||
| case 0x0010: | ||
| return "Pause"; | ||
|
|
||
| case 0x0011: | ||
| return "Backquote"; | ||
| case 0x0012: | ||
| return "Digit1"; | ||
| case 0x0013: | ||
| return "Digit2"; | ||
| case 0x0014: | ||
| return "Digit3"; | ||
| case 0x0015: | ||
| return "Digit4"; | ||
| case 0x0016: | ||
| return "Digit5"; | ||
| case 0x0017: | ||
| return "Digit6"; | ||
| case 0x0018: | ||
| return "Digit7"; | ||
| case 0x0019: | ||
| return "Digit8"; | ||
| case 0x001A: | ||
| return "Digit9"; | ||
| case 0x001B: | ||
| return "Digit0"; | ||
| case 0x001C: | ||
| return "Minus"; | ||
| case 0x001D: | ||
| return "Equal"; | ||
| case 0x001E: | ||
| return "Backspace"; // IntYen | ||
|
|
||
| case 0x001F: | ||
| return "Insert"; | ||
| case 0x0020: | ||
| return "Home"; | ||
| case 0x0021: | ||
| return "PageUp"; | ||
|
|
||
| case 0x0022: | ||
| return "NumLock"; | ||
| case 0x0023: | ||
| return "NumpadDivide"; | ||
| case 0x0024: | ||
| return "NumpadMultiply"; | ||
| case 0x0025: | ||
| return "NumpadSubtract"; | ||
|
|
||
| case 0x0026: | ||
| return "Tab"; | ||
| case 0x0027: | ||
| return "KeyQ"; | ||
| case 0x0028: | ||
| return "KeyW"; | ||
| case 0x0029: | ||
| return "KeyE"; | ||
| case 0x002A: | ||
| return "KeyR"; | ||
| case 0x002B: | ||
| return "KeyT"; | ||
| case 0x002C: | ||
| return "KeyY"; | ||
| case 0x002D: | ||
| return "KeyU"; | ||
| case 0x002E: | ||
| return "KeyI"; | ||
| case 0x002F: | ||
| return "KeyO"; | ||
| case 0x0030: | ||
| return "KepP"; | ||
| case 0x0031: | ||
| return "BracketLeft"; | ||
| case 0x0032: | ||
| return "BracketRight"; | ||
| case 0x0033: | ||
| return "Backslash"; | ||
|
|
||
| case 0x0034: | ||
| return "Delete"; | ||
| case 0x0035: | ||
| return "End"; | ||
| case 0x0036: | ||
| return "PageDown"; | ||
|
|
||
| case 0x0037: | ||
| return "Numpad7"; | ||
| case 0x0038: | ||
| return "Numpad8"; | ||
| case 0x0039: | ||
| return "Numpad9"; | ||
| case 0x003A: | ||
| return "NumpadAdd"; | ||
|
|
||
| case 0x003B: | ||
| return "CapsLock"; | ||
| case 0x003C: | ||
| return "KeyA"; | ||
| case 0x003D: | ||
| return "KeyS"; | ||
| case 0x003E: | ||
| return "KeyD"; | ||
| case 0x003F: | ||
| return "KeyF"; | ||
| case 0x0040: | ||
| return "KeyG"; | ||
| case 0x0041: | ||
| return "KeyH"; | ||
| case 0x0042: | ||
| return "KeyJ"; | ||
| case 0x0043: | ||
| return "KeyK"; | ||
| case 0x0044: | ||
| return "KeyL"; | ||
| case 0x0045: | ||
| return "Semicolon"; | ||
| case 0x0046: | ||
| return "Quote"; | ||
| case 0x0047: | ||
| return "Return"; | ||
|
|
||
| case 0x0048: | ||
| return "Numpad4"; | ||
| case 0x0049: | ||
| return "Numpad5"; | ||
| case 0x004A: | ||
| return "Numpad6"; | ||
|
|
||
| case 0x004B: | ||
| return "ShiftLeft"; | ||
| case 0x004C: | ||
| return "KeyZ"; | ||
| case 0x004D: | ||
| return "KeyX"; | ||
| case 0x004E: | ||
| return "KeyC"; | ||
| case 0x004F: | ||
| return "KeyV"; | ||
| case 0x0050: | ||
| return "KeyB"; | ||
| case 0x0051: | ||
| return "KeyN"; | ||
| case 0x0052: | ||
| return "KeyM"; | ||
| case 0x0053: | ||
| return "Comma"; | ||
| case 0x0054: | ||
| return "Period"; | ||
| case 0x0055: | ||
| return "Slash"; | ||
| case 0x0056: | ||
| return "ShiftRight"; | ||
|
|
||
| case 0x0057: | ||
| return "ArrowUp"; | ||
| case 0x0058: | ||
| return "Digit1"; | ||
| case 0x0059: | ||
| return "Digit2"; | ||
| case 0x005A: | ||
| return "Digit3"; | ||
| case 0x005B: | ||
| return "NumpadEnter"; | ||
| case 0x005C: | ||
| return "ControlLeft"; | ||
| case 0x005D: | ||
| return "AltLeft"; | ||
| case 0x005E: | ||
| return "Space"; | ||
| case 0x005F: | ||
| return "AltRight"; | ||
| case 0x0060: | ||
| return "ControlRight"; | ||
| case 0x0061: | ||
| return "ArrowLeft"; | ||
| case 0x0062: | ||
| return "ArrowDown"; | ||
| case 0x0063: | ||
| return "ArrowRight"; | ||
| case 0x0064: | ||
| return "Numpad0"; | ||
| case 0x0065: | ||
| return "NumpadDecimal"; | ||
| case 0x0066: | ||
| return "OSLeft"; // MetaLeft | ||
| case 0x0067: | ||
| return "OSRight"; | ||
| case 0x0068: | ||
| return "ContextMenu"; | ||
| case 0x0069: | ||
| return "IntlBackslash"; | ||
| case 0x006a: | ||
| return "NumPadEqual"; | ||
| } | ||
| return "Unidentified"; | ||
| } | ||
|
|
||
| PlatformKeyboardEvent::PlatformKeyboardEvent(BMessage* message) | ||
| : m_autoRepeat(false) | ||
| , m_isKeypad(false) | ||
| @@ -337,6 +657,8 @@ PlatformKeyboardEvent::PlatformKeyboardEvent(BMessage* message) | ||
| m_keyIdentifier = keyIdentifierForHaikuKeyCode(bytes.ByteAt(0), nativeVirtualKeyCode); | ||
|
|
||
| m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(bytes.ByteAt(0), nativeVirtualKeyCode); | ||
| m_key = KeyValueForKeyEvent(bytes, nativeVirtualKeyCode); | ||
| m_code = KeyCodeForKeyEvent(nativeVirtualKeyCode); | ||
|
|
||
| if (message->what == B_KEY_UP) | ||
| m_type = KeyUp; | ||