return true;
}
- int FilterEvent (wxEvent& event)
+ int FilterEvent(wxEvent& event) override
{
auto key = dynamic_cast<wxKeyEvent*>(&event);
if (key && key->GetEventType() == wxEVT_CHAR) {
- std::cout << key->m_keyCode << " " << key->m_uniChar << " " << key->m_rawCode << " " << key->m_rawFlags << "\n";
+ std::cout << "CHAR: " << key->m_keyCode << " " << key->m_uniChar << " " << key->m_rawCode << " " << key->m_rawFlags << "\n";
+ } else if (key && key->GetEventType() == wxEVT_KEY_UP) {
+ std::cout << "KEY_UP: " << key->m_keyCode << " " << key->m_uniChar << " " << key->m_rawCode << " " << key->m_rawFlags << "\n";
+ } else if (key && key->GetEventType() == wxEVT_KEY_DOWN) {
+ std::cout << "KEY_DOWN: " << key->m_keyCode << " " << key->m_uniChar << " " << key->m_rawCode << " " << key->m_rawFlags << "\n";
}
return -1;
}
// xdo_send_keysequence_window (xdo, CURRENTWINDOW, "Return", 200000);
// xdo_free (xdo);
auto send = [this](int code, int rawcode) {
- auto event = wxKeyEvent(wxEVT_CHAR);
+ auto event = wxKeyEvent(wxEVT_KEY_DOWN);
+ event.SetEventObject(this);
+ event.m_keyCode = event.m_uniChar = code;
+ event.m_rawCode = rawcode;
+ std::cout << "process " << code << " " << rawcode << "\n";
+ ProcessEvent (event);
+
+ event = wxKeyEvent(wxEVT_CHAR);
+ event.SetEventObject(this);
+ event.m_keyCode = event.m_uniChar = code;
+ event.m_rawCode = rawcode;
+ std::cout << "process " << code << " " << rawcode << "\n";
+ ProcessEvent (event);
+
+ event = wxKeyEvent(wxEVT_KEY_UP);
event.SetEventObject(this);
event.m_keyCode = event.m_uniChar = code;
event.m_rawCode = rawcode;
- event.m_rawFlags = 43;
std::cout << "process " << code << " " << rawcode << "\n";
ProcessEvent (event);
};