Esempio n. 1
0
PlatformKeyboardEvent::PlatformKeyboardEvent(wxKeyEvent& event)
{
    if (event.GetEventType() == wxEVT_KEY_UP)
        m_type = KeyUp;
    else if (event.GetEventType() == wxEVT_KEY_DOWN)
        m_type = KeyDown;
    else if (event.GetEventType() == wxEVT_CHAR)
        m_type = Char;
    else
        ASSERT_NOT_REACHED();
    if (m_type != Char)
        m_keyIdentifier = keyIdentifierForWxKeyCode(event.GetKeyCode());
    else {
        //ENTER is an editing command processed as a char (only Enter and Tab are)
        //unfortunately the unicode key for numpad_enter (370) is NOT what we want here (13)
        //The unicode values for normal enter and tab are the same as the ASCII values, thus ok
        //Note that I think this a wx bug, as the Character Code is actually 13 when
        //numpad_enter is a CHAR event.
        if (event.GetKeyCode() == 13 && event.GetUnicodeKey() == wxChar(370))
            m_text = "\r";
        else
            m_text = wxString(event.GetUnicodeKey());
        m_unmodifiedText = m_text;
    }
    m_autoRepeat = false; // FIXME: not correct.
    m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event.GetKeyCode());
    m_nativeVirtualKeyCode = event.GetKeyCode();
    m_isKeypad = (event.GetKeyCode() >= WXK_NUMPAD_SPACE) && (event.GetKeyCode() <= WXK_NUMPAD_DIVIDE);
    m_shiftKey = event.ShiftDown();
    m_ctrlKey = event.CmdDown();
    m_altKey = event.AltDown();
    m_metaKey = event.MetaDown();
}
PlatformKeyboardEvent::PlatformKeyboardEvent(wxKeyEvent& event)
{
    m_text = wxString(event.GetUnicodeKey());
    m_unmodifiedText = m_text;
    m_keyIdentifier = keyIdentifierForWxKeyCode(event.GetKeyCode());
    m_isKeyUp = event.GetEventType() == wxEVT_KEY_UP;
    m_autoRepeat = false; // FIXME: not correct.
    m_WindowsKeyCode = windowsKeyCodeForKeyEvent(event.GetKeyCode());
    m_isKeypad = (event.GetKeyCode() >= WXK_NUMPAD_SPACE) && (event.GetKeyCode() <= WXK_NUMPAD_DIVIDE);
    m_shiftKey = event.ShiftDown();
    m_ctrlKey = event.CmdDown();
    m_altKey = event.AltDown();
    m_metaKey = event.MetaDown();    
}