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);
}
示例#2
0
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));
}
示例#4
0
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);
}
示例#5
0
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);
}
示例#6
0
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);
}
示例#7
0
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));
}