refs bug #429
[enigma2.git] / lib / python / Components / ActionMap.py
index ee3d31db615d0da035f11b821480d8616f3810bb..a018983a9e52893dfc6728bbbcc0cac7e557f782 100644 (file)
@@ -1,16 +1,15 @@
-from enigma import *
+from enigma import eActionMap
 
 class ActionMap:
        def __init__(self, contexts = [ ], actions = { }, prio=0):
                self.actions = actions
                self.contexts = contexts
                self.prio = prio
-               self.p = eActionMapPtr()
+               self.p = eActionMap.getInstance()
                self.bound = False
                self.exec_active = False
                self.enabled = True
-               eActionMap.getInstance(self.p)
-       
+
        def setEnabled(self, enabled):
                self.enabled = enabled
                self.checkBind()
@@ -44,7 +43,9 @@ class ActionMap:
        def action(self, context, action):
                print " ".join(("action -> ", context, action))
                if self.actions.has_key(action):
-                       self.actions[action]()
+                       res = self.actions[action]()
+                       if res is not None:
+                               return res
                        return 1
                else:
                        print "unknown action %s/%s! typo in keymap?" % (context, action)
@@ -55,9 +56,11 @@ class ActionMap:
 
 class NumberActionMap(ActionMap):
        def action(self, contexts, action):
-               numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
+               numbers = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
                if (action in numbers and self.actions.has_key(action)):
-                       self.actions[action](int(action))
+                       res = self.actions[action](int(action))
+                       if res is not None:
+                               return res
                        return 1
                else:
                        return ActionMap.action(self, contexts, action)
@@ -80,7 +83,7 @@ class HelpableActionMap(ActionMap):
                adict = { }
                for (action, funchelp) in actions.iteritems():
                        # check if this is a tuple
-                       if type(funchelp) is type(()):
+                       if isinstance(funchelp, tuple):
                                alist.append((action, funchelp[1]))
                                adict[action] = funchelp[0]
                        else: