#ifdef DCPOMATIC_CUCUMBER
void cucumber_add_content_file (string filename) {
+ std::cout << ".cucumber_add_content_file\n";
_film_editor->cucumber_add_content_file (filename);
}
/* Could be called from any thread */
std::string cucumber_get_content_list () {
+ std::cout << ".cucumber_get_content_list\n";
return _film_editor->cucumber_get_content_list();
}
#endif
return true;
}
- void OnInitCmdLine (wxCmdLineParser& parser) override
+ int FilterEvent(wxEvent& event) override
+ {
+ auto key = dynamic_cast<wxKeyEvent*>(&event);
+ if (key && key->GetEventType() == wxEVT_CHAR) {
+ 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;
+ }
+
+ void OnInitCmdLine(wxCmdLineParser& parser) override
{
parser.SetDesc (command_line_description);
parser.SetSwitchChars (wxT ("-"));
void cucumber_type (string text)
{
#ifdef DCPOMATIC_LINUX
- xdo_t* xdo = xdo_new (NULL);
- xdo_enter_text_window (xdo, CURRENTWINDOW, text.c_str(), 200000);
- xdo_send_keysequence_window (xdo, CURRENTWINDOW, "Return", 200000);
- xdo_free (xdo);
+ // xdo_t* xdo = xdo_new (NULL);
+ // xdo_enter_text_window (xdo, CURRENTWINDOW, text.c_str(), 200000);
+ // xdo_send_keysequence_window (xdo, CURRENTWINDOW, "Return", 200000);
+ // xdo_free (xdo);
+ auto send = [this](int code, int rawcode) {
+ 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;
+ std::cout << "process " << code << " " << rawcode << "\n";
+ ProcessEvent (event);
+ };
+
+ for (auto i = 0U; i < text.length(); ++i) {
+ send (text[i], text[i]);
+ }
+ send (WXK_RETURN, 65293);
#endif
}
#endif