+void eActionMap::unbindKeyDomain(const std::string &domain)
+{
+ for (std::multimap<std::string, eNativeKeyBinding>::iterator i(m_native_keys.begin()); i != m_native_keys.end(); ++i)
+ if (i->second.m_domain == domain)
+ {
+ m_native_keys.erase(i);
+ i = m_native_keys.begin();
+ }
+
+ for (std::multimap<std::string, ePythonKeyBinding>::iterator i(m_python_keys.begin()); i != m_python_keys.end(); ++i)
+ if (i->second.m_domain == domain)
+ {
+ m_python_keys.erase(i);
+ i = m_python_keys.begin();
+ }
+}
+
+struct call_entry
+{
+ ePyObject m_fnc, m_arg;
+ eWidget *m_widget;
+ void *m_widget_arg, *m_widget_arg2;
+ call_entry(ePyObject fnc, ePyObject arg): m_fnc(fnc), m_arg(arg), m_widget(0), m_widget_arg(0) { }
+ call_entry(eWidget *widget, void *arg, void *arg2): m_widget(widget), m_widget_arg(arg), m_widget_arg2(arg2) { }
+};
+
+void eActionMap::keyPressed(const std::string &device, int key, int flags)