X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/95ac56f69ddb6de8e260c8e55aff68d1df0b452c..bf199875386cd93ad37c3a9541b5a98ada9f608c:/lib/actions/action.h diff --git a/lib/actions/action.h b/lib/actions/action.h index 63a2f349..834dc209 100644 --- a/lib/actions/action.h +++ b/lib/actions/action.h @@ -7,16 +7,20 @@ #include #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200112L -#include #include #include #include class eWidget; +SWIG_IGNORE(eActionMap); class eActionMap: public iObject { DECLARE_REF(eActionMap); +#ifdef SWIG + eActionMap(); + ~eActionMap(); +#endif public: #ifndef SWIG eActionMap(); @@ -25,15 +29,15 @@ public: void unbindAction(eWidget *widget, int id); #endif - void bindAction(const std::string &context, int priority, PyObject *function); - void unbindAction(const std::string &context, PyObject *function); + void bindAction(const std::string &context, int priority, SWIG_PYOBJECT(ePyObject) function); + void unbindAction(const std::string &context, SWIG_PYOBJECT(ePyObject) function); void bindKey(const std::string &device, int key, int flags, const std::string &context, const std::string &action); - void keyPressed(int device, int key, int flags); + void keyPressed(const std::string &device, int key, int flags); - static RESULT getInstance(ePtr &ptr); #ifndef SWIG + static RESULT getInstance(ePtr &); private: static eActionMap *instance; struct eActionBinding @@ -41,7 +45,7 @@ private: // eActionContext *m_context; std::string m_context; // FIXME - PyObject *m_fnc; + ePyObject m_fnc; eWidget *m_widget; int m_id; @@ -52,7 +56,7 @@ private: friend struct compare_string_keybind_native; struct eNativeKeyBinding { - int m_device; + std::string m_device; int m_key; int m_flags; @@ -65,7 +69,7 @@ private: friend struct compare_string_keybind_python; struct ePythonKeyBinding { - int m_device; + std::string m_device; int m_key; int m_flags; @@ -75,5 +79,13 @@ private: std::multimap m_python_keys; #endif }; +SWIG_TEMPLATE_TYPEDEF(ePtr, eActionMap); +SWIG_EXTEND(ePtr, + static ePtr getInstance() + { + extern ePtr NewActionMapPtr(void); + return NewActionMapPtr(); + } +); #endif