-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()
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)
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)
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: