WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(WPE::Input::KeyboardEvent&& event) { String singleCharacterString = singleCharacterStringForKeyEvent(event); String identifierString = identifierStringForKeyEvent(event); return WebKeyboardEvent(event.pressed ? WebEvent::KeyDown : WebEvent::KeyUp, singleCharacterString, singleCharacterString, identifierString, WPE::Input::windowsKeyCodeForKeyEvent(event), event.keyCode, 0, false, false, false, modifiersForEvent(event), event.time); }
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(const GdkEvent* event, const WebCore::CompositionResults& compositionResults, Vector<String>&& commands) { return WebKeyboardEvent( event->type == GDK_KEY_RELEASE ? WebEvent::KeyUp : WebEvent::KeyDown, compositionResults.simpleString.length() ? compositionResults.simpleString : PlatformKeyboardEvent::singleCharacterString(event->key.keyval), PlatformKeyboardEvent::keyIdentifierForGdkKeyCode(event->key.keyval), PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode(event->key.keyval), static_cast<int>(event->key.keyval), compositionResults.compositionUpdated(), WTF::move(commands), isGdkKeyCodeFromKeyPad(event->key.keyval), modifiersForEvent(event), gdk_event_get_time(event)); }
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(const Evas_Event_Key_Up* event) { const String keyName(event->key); return WebKeyboardEvent(WebEvent::KeyUp, String::fromUTF8(event->string), String::fromUTF8(event->string), keyIdentifierForEvasKeyName(keyName), windowsKeyCodeForEvasKeyName(keyName), 0 /* FIXME: nativeVirtualKeyCode */, 0 /* macCharCode */, false /* FIXME: isAutoRepeat */, keyName.startsWith(keyPadPrefix), false /* isSystemKey */, modifiersForEvent(event->modifiers), convertMillisecondToSecond(event->timestamp)); }
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { WebEvent::Type type = keyboardEventTypeForEvent(message); String text = textFromEvent(wparam, type); String unmodifiedText = unmodifiedTextFromEvent(wparam, type); String keyIdentifier = keyIdentifierFromEvent(wparam, type); int windowsVirtualKeyCode = static_cast<int>(wparam); int nativeVirtualKeyCode = static_cast<int>(wparam); bool autoRepeat = HIWORD(lparam) & KF_REPEAT; bool isKeypad = isKeypadEvent(wparam, lparam, type); bool isSystemKey = isSystemKeyEvent(message); WebEvent::Modifiers modifiers = modifiersForCurrentKeyState(); double timestamp = ::GetTickCount() * 0.001; // ::GetTickCount returns milliseconds (Chrome uses GetMessageTime() / 1000.0) return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp); }
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(const NIXKeyEvent& event) { WebEvent::Type type = convertToWebEventType(event.type); const WTF::String text = keyTextForNixKeyEvent(event); const WTF::String unmodifiedText = text; bool isAutoRepeat = false; bool isSystemKey = false; bool isKeypad = event.isKeypad; const WTF::String keyIdentifier = keyIdentifierForNixKeyCode(event.key); int windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event.key, isKeypad); int nativeVirtualKeyCode = 0; int macCharCode = 0; WebEvent::Modifiers modifiers = convertToWebEventModifiers(event.modifiers); double timestamp = event.timestamp; return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, isAutoRepeat, isKeypad, isSystemKey, modifiers, timestamp); }
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(QKeyEvent* event) { const int state = event->modifiers(); WebEvent::Type type = webEventTypeForEvent(event); const String text = event->text(); const String unmodifiedText = event->text(); bool isAutoRepeat = event->isAutoRepeat(); bool isSystemKey = false; // FIXME: No idea what that is. bool isKeypad = (state & Qt::KeypadModifier); const String keyIdentifier = keyIdentifierForQtKeyCode(event->key()); int windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event->key(), isKeypad); int nativeVirtualKeyCode = event->nativeVirtualKey(); int macCharCode = 0; WebEvent::Modifiers modifiers = modifiersForEvent(event->modifiers()); double timestamp = currentTimeForEvent(event); return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, isAutoRepeat, isKeypad, isSystemKey, modifiers, timestamp); }
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(const GdkEvent* event, const WebCore::CompositionResults& compositionResults) { unsigned int keyValue = event->key.keyval; String text = compositionResults.simpleString.length() ? compositionResults.simpleString : PlatformKeyboardEvent::singleCharacterString(keyValue); int windowsVirtualKeyCode = compositionResults.compositionUpdated() ? VK_PROCESSKEY : PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode(event->key.keyval); return WebKeyboardEvent((event->type == GDK_KEY_RELEASE) ? WebEvent::KeyUp : WebEvent::KeyDown, text, text, PlatformKeyboardEvent::keyIdentifierForGdkKeyCode(keyValue), windowsVirtualKeyCode, static_cast<int>(keyValue), 0 /* macCharCode */, false /* isAutoRepeat */, isGdkKeyCodeFromKeyPad(keyValue), false /* isSystemKey */, modifiersForEvent(event), gdk_event_get_time(event)); }