X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FHelpMenuList.py;h=619de5bd7882134a9d484f823fc57cd1d0d78264;hp=b1a31b8bc030eb6847127def61fbfdd8b87d01c8;hb=HEAD;hpb=f52ee24fceb98af2fb62c7390f741639903ca58a diff --git a/lib/python/Components/HelpMenuList.py b/lib/python/Components/HelpMenuList.py old mode 100644 new mode 100755 index b1a31b8..619de5b --- a/lib/python/Components/HelpMenuList.py +++ b/lib/python/Components/HelpMenuList.py @@ -1,26 +1,29 @@ -from GUIComponent import * +from GUIComponent import GUIComponent from enigma import eListboxPythonMultiContent, eListbox, gFont - from Tools.KeyBindings import queryKeyBinding, getKeyDescription +import skin #getKeyPositions # [ ( actionmap, context, [(action, help), (action, help), ...] ), (actionmap, ... ), ... ] class HelpMenuList(GUIComponent): - def __init__(self, list, callback): + def __init__(self, helplist, callback): GUIComponent.__init__(self) self.onSelChanged = [ ] self.l = eListboxPythonMultiContent() self.callback = callback + self.extendedHelp = False l = [ ] - for (actionmap, context, actions) in list: + for (actionmap, context, actions) in helplist: for (action, help) in actions: - entry = [ ] - buttons = queryKeyBinding(context, action) + # do not display entries which are not accessible from keys + if not len(buttons): + continue + name = None flags = 0 @@ -29,18 +32,41 @@ class HelpMenuList(GUIComponent): if name is not None: break - if flags & 8: # for long keypresses, prepend l_ into the key name. - name = ("l_" + name[0], name[1], name[2]) - - entry.append( (actionmap, context, action, name ) ) - entry.append( (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 400, 28, 0, 0, help) ) + if name is None: + continue + if flags & 8: # for long keypresses, prepend l_ into the key name. + name = (name[0], "long") + + entry = [ (actionmap, context, action, name ) ] + + if isinstance(help, list): + self.extendedHelp = True + print "extendedHelpEntry found" + x, y, w, h = skin.parameters.get("HelpMenuListExtHlp0",(0, 0, 400, 26)) + x1, y1, w1, h1 = skin.parameters.get("HelpMenuListExtHlp1",(0, 28, 400, 20)) + entry.extend(( + (eListboxPythonMultiContent.TYPE_TEXT, x, y, w, h, 0, 0, help[0]), + (eListboxPythonMultiContent.TYPE_TEXT, x1, y1, w1, h1, 1, 0, help[1]) + )) + else: + x, y, w, h = skin.parameters.get("HelpMenuListHlp",(0, 0, 400, 28)) + entry.append( (eListboxPythonMultiContent.TYPE_TEXT, x, y, w, h, 0, 0, help) ) + l.append(entry) self.l.setList(l) - - self.l.setFont(0, gFont("Regular", 24)) - self.l.setItemHeight(38) + if self.extendedHelp is True: + + font = skin.fonts.get("HelpMenuListExt0", ("Regular", 24, 50)) + self.l.setFont(0, gFont(font[0], font[1])) + self.l.setItemHeight(font[2]) + font = skin.fonts.get("HelpMenuListExt1", ("Regular", 18)) + self.l.setFont(1, gFont(font[0], font[1])) + else: + font = skin.fonts.get("HelpMenuList", ("Regular", 24, 38)) + self.l.setFont(0, gFont(font[0], font[1])) + self.l.setItemHeight(font[2]) def ok(self): # a list entry has a "private" tuple as first entry... @@ -59,9 +85,12 @@ class HelpMenuList(GUIComponent): def postWidgetCreate(self, instance): instance.setContent(self.l) - instance.selectionChanged.get().append(self.selectionChanged) + def preWidgetRemove(self, instance): + instance.setContent(None) + instance.selectionChanged.get().remove(self.selectionChanged) + def selectionChanged(self): for x in self.onSelChanged: x()