set subtitle-sink gstreamer caps (fixed #506, requires gst-plugin-playbin_0.10.28...
[enigma2.git] / lib / actions / action.h
index 7bd71259eb7ec486d058bf1227c0dc6679bfe201..cbf5370a4ead2e6b40c75ea6a9e942f4cf21aa6f 100644 (file)
@@ -16,7 +16,7 @@ class eWidget;
 SWIG_IGNORE(eActionMap);
 class eActionMap: public iObject
 {
-DECLARE_REF(eActionMap);
+       DECLARE_REF(eActionMap);
 #ifdef SWIG
        eActionMap();
        ~eActionMap();
@@ -31,8 +31,9 @@ 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);
        
@@ -42,13 +43,18 @@ 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<int, eActionBinding> m_bindings;
@@ -57,6 +63,7 @@ private:
        struct eNativeKeyBinding
        {
                std::string m_device;
+               std::string m_domain;
                int m_key;
                int m_flags;
                
@@ -70,6 +77,7 @@ private:
        struct ePythonKeyBinding
        {
                std::string m_device;
+               std::string m_domain;
                int m_key;
                int m_flags;
                
@@ -79,7 +87,7 @@ private:
        std::multimap<std::string, ePythonKeyBinding> m_python_keys;
 #endif
 };
-SWIG_TEMPLATE_TYPEDEF_REPLACE(ePtr<eActionMap>, eActionMap);
+SWIG_TEMPLATE_TYPEDEF(ePtr<eActionMap>, eActionMap);
 SWIG_EXTEND(ePtr<eActionMap>,
        static ePtr<eActionMap> getInstance()
        {