X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Factions%2Faction.h;h=edcfac6f01224b93114372a8b90303c91514cc2a;hb=59fb353ca955f4d6806938fccbe3100cee86b902;hp=f2e0d8f460d5730374f7fcdde3613c7e32f66900;hpb=6dcb75c26bbfec04b381bb99d75404f9fe50635d;p=vuplus_dvbapp diff --git a/lib/actions/action.h b/lib/actions/action.h index f2e0d8f..edcfac6 100644 --- a/lib/actions/action.h +++ b/lib/actions/action.h @@ -3,19 +3,16 @@ #include - /* avoid warnigs :) */ -#include -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200112L #include #include #include class eWidget; +SWIG_IGNORE(eActionMap); class eActionMap: public iObject { -DECLARE_REF(eActionMap); + DECLARE_REF(eActionMap); #ifdef SWIG eActionMap(); ~eActionMap(); @@ -30,24 +27,30 @@ public: 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 bindKey(const std::string &domain, const std::string &device, int key, int flags, const std::string &context, const std::string &action); + void unbindKeyDomain(const std::string &domain); 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 { + eActionBinding() + :m_prev_seen_make_key(-1) + {} // eActionContext *m_context; std::string m_context; // FIXME + std::string m_domain; ePyObject m_fnc; eWidget *m_widget; int m_id; + int m_prev_seen_make_key; }; std::multimap m_bindings; @@ -56,6 +59,7 @@ private: struct eNativeKeyBinding { std::string m_device; + std::string m_domain; int m_key; int m_flags; @@ -69,6 +73,7 @@ private: struct ePythonKeyBinding { std::string m_device; + std::string m_domain; int m_key; int m_flags; @@ -78,5 +83,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