aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/ActionMap.py
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-01-19 22:53:23 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-01-19 22:53:23 +0000
commit76fd7edbde9597007b9ab33b59b735c378043980 (patch)
tree1eaee3c8d8ece543f730da9d0160646f5f78df14 /lib/python/Components/ActionMap.py
parent92c581769db1ebef1325d175e3b610be25317af1 (diff)
downloadenigma2-76fd7edbde9597007b9ab33b59b735c378043980.tar.gz
enigma2-76fd7edbde9597007b9ab33b59b735c378043980.zip
add actionmap disable support
Diffstat (limited to 'lib/python/Components/ActionMap.py')
-rw-r--r--lib/python/Components/ActionMap.py33
1 files changed, 29 insertions, 4 deletions
diff --git a/lib/python/Components/ActionMap.py b/lib/python/Components/ActionMap.py
index 046a92d9..a6f5eb9c 100644
--- a/lib/python/Components/ActionMap.py
+++ b/lib/python/Components/ActionMap.py
@@ -6,15 +6,40 @@ class ActionMap:
self.contexts = contexts
self.prio = prio
self.p = eActionMapPtr()
+ self.bound = False
+ self.exec_active = False
+ self.enabled = True
eActionMap.getInstance(self.p)
+
+ def setEnabled(self, enabled):
+ self.enabled = enabled
+ self.checkBind()
+
+ def doBind(self):
+ if not self.bound:
+ for ctx in self.contexts:
+ self.p.bindAction(ctx, self.prio, self.action)
+ self.bound = True
+
+ def doUnbind(self):
+ if self.bound:
+ for ctx in self.contexts:
+ self.p.unbindAction(ctx, self.action)
+ self.bound = False
+
+ def checkBind(self):
+ if self.exec_active and self.enabled:
+ self.doBind()
+ else:
+ self.doUnbind()
def execBegin(self):
- for ctx in self.contexts:
- self.p.bindAction(ctx, self.prio, self.action)
+ self.exec_active = True
+ self.checkBind()
def execEnd(self):
- for ctx in self.contexts:
- self.p.unbindAction(ctx, self.action)
+ self.exec_active = False
+ self.checkBind()
def action(self, context, action):
print " ".join(("action -> ", context, action))