X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FHelpMenuList.py;h=e7806bdc6e06db553dbadb804dfead8b89c569bf;hp=103727a7520708b8be660020612b38c356fe65ff;hb=0e61797c03c26a8b004dff187a4e26fc6afb26e2;hpb=c0d78035b8c76e719bf7c05ff3812eb5a6ce9fe3 diff --git a/lib/python/Components/HelpMenuList.py b/lib/python/Components/HelpMenuList.py index 103727a..e7806bd 100644 --- a/lib/python/Components/HelpMenuList.py +++ b/lib/python/Components/HelpMenuList.py @@ -13,48 +13,55 @@ class HelpMenuList(GUIComponent): self.onSelChanged = [ ] self.l = eListboxPythonMultiContent() self.callback = callback - + l = [ ] for (actionmap, context, actions) in list: for (action, help) in actions: entry = [ ] - + buttons = queryKeyBinding(context, action) name = None - + flags = 0 + for n in buttons: - name = getKeyDescription(n) + (name, flags) = (getKeyDescription(n[0]), n[1]) 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) ) - + l.append(entry) - + self.l.setList(l) - + self.l.setFont(0, gFont("Regular", 26)) - + self.l.setItemHeight(42) + def ok(self): # a list entry has a "private" tuple as first entry... - l = self.l.getCurrentSelection()[0] - + 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): - return self.l.getCurrentSelection()[0] + 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()