X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bf7e40884d7add91e219e9e70e83988ae7752bd8..c2107d5c3e3c72a68f14cb4adceb86556fb4ea14:/lib/python/Components/HelpMenuList.py diff --git a/lib/python/Components/HelpMenuList.py b/lib/python/Components/HelpMenuList.py index 34eb4119..48802f7b 100644 --- a/lib/python/Components/HelpMenuList.py +++ b/lib/python/Components/HelpMenuList.py @@ -2,49 +2,61 @@ from GUIComponent import * from enigma import eListboxPythonMultiContent, eListbox, gFont +from Tools.KeyBindings import queryKeyBinding, getKeyDescription +#getKeyPositions + # [ ( actionmap, context, [(action, help), (action, help), ...] ), (actionmap, ... ), ... ] class HelpMenuList(GUIComponent): def __init__(self, list, callback): GUIComponent.__init__(self) - + self.onSelChanged = [ ] self.l = eListboxPythonMultiContent() self.callback = callback l = [ ] for (actionmap, context, actions) in list: - - print "actionmap:" + str(actionmap) - print "context: " + str(context) - print "actions: " + str(actions) - for (action, help) in actions: entry = [ ] - entry.append( (actionmap, context, action) ) - entry.append( (0, 36, 200, 20, 1, 0, "you can also press a secret button") ) - entry.append( (0, 0, 200, 36, 0, 0, help) ) + buttons = queryKeyBinding(context, action) + + name = None + + for n in buttons: + name = getKeyDescription(n) + if name is not None: + break + + entry.append( (actionmap, context, action, name ) ) + entry.append( (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 400, 28, 0, 0, help) ) l.append(entry) self.l.setList(l) - self.l.setFont(0, gFont("Arial", 36)) - self.l.setFont(1, gFont("Arial", 18)) - - def GUIcreate(self, parent): - self.instance = eListbox(parent) - self.instance.setContent(self.l) - self.instance.setItemHeight(75) + self.l.setFont(0, gFont("Regular", 26)) - def GUIdelete(self): - self.instance.setContent(None) - self.instance = None - def ok(self): # a list entry has a "private" tuple as first entry... - l = self.l.getCurrentSelection()[0] - - # ...containing (Actionmap, Context, Action). + l = self.getCurrent() + if l is None: + return + # ...containing (Actionmap, Context, Action, keydata). # we returns this tuple to the callback. self.callback(l[0], l[1], l[2]) + + def getCurrent(self): + sel = self.l.getCurrentSelection() + return sel and sel[0] + + GUI_WIDGET = eListbox + + def postWidgetCreate(self, instance): + instance.setContent(self.l) + instance.setItemHeight(42) + instance.selectionChanged.get().append(self.selectionChanged) + + def selectionChanged(self): + for x in self.onSelChanged: + x()