diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-01-19 22:53:23 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-01-19 22:53:23 +0000 |
| commit | 76fd7edbde9597007b9ab33b59b735c378043980 (patch) | |
| tree | 1eaee3c8d8ece543f730da9d0160646f5f78df14 /lib/python/Components/ActionMap.py | |
| parent | 92c581769db1ebef1325d175e3b610be25317af1 (diff) | |
| download | enigma2-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.py | 33 |
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)) |
