X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/5927bf86c689774c02601d16bdbc7f0dfc5db5f6..7a421f3ff2dad0150148880a71d6542ab87589bd:/lib/python/Screens/ChoiceBox.py diff --git a/lib/python/Screens/ChoiceBox.py b/lib/python/Screens/ChoiceBox.py index a20983e6..4739b7e1 100644 --- a/lib/python/Screens/ChoiceBox.py +++ b/lib/python/Screens/ChoiceBox.py @@ -1,13 +1,8 @@ -from enigma import * from Screens.Screen import Screen -from Screens.MessageBox import MessageBox from Components.ActionMap import NumberActionMap from Components.Label import Label -from Components.MenuList import MenuList -from Components.GUIComponent import * from Components.ChoiceList import ChoiceEntryComponent, ChoiceList - -import os +from Components.Sources.StaticText import StaticText class ChoiceBox(Screen): def __init__(self, session, title = "", list = [], keys = None, selection = 0): @@ -15,6 +10,7 @@ class ChoiceBox(Screen): self["text"] = Label(title) self.list = [] + self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + (len(list) - 10) * [""] else: @@ -27,8 +23,11 @@ class ChoiceBox(Screen): self.list.append(ChoiceEntryComponent(key = strpos, text = x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] + self.summarylist.append((self.__keys[pos],x[0])) pos += 1 self["list"] = ChoiceList(list = self.list, selection = selection) + self["summary_list"] = StaticText() + self.updateSummary() self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions", "DirectionActions"], { @@ -62,6 +61,7 @@ class ChoiceBox(Screen): if len(self["list"].list) > 0: while 1: self["list"].instance.moveSelection(self["list"].instance.moveUp) + self.updateSummary(self["list"].l.getCurrentSelectionIndex()) if self["list"].l.getCurrentSelection()[0][0] != "--" or self["list"].l.getCurrentSelectionIndex() == 0: break @@ -69,6 +69,7 @@ class ChoiceBox(Screen): if len(self["list"].list) > 0: while 1: self["list"].instance.moveSelection(self["list"].instance.moveDown) + self.updateSummary(self["list"].l.getCurrentSelectionIndex()) if self["list"].l.getCurrentSelection()[0][0] != "--" or self["list"].l.getCurrentSelectionIndex() == len(self["list"].list) - 1: break @@ -78,7 +79,11 @@ class ChoiceBox(Screen): # runs the current selected entry def go(self): - self.goEntry(self["list"].l.getCurrentSelection()[0]) + cursel = self["list"].l.getCurrentSelection() + if cursel: + self.goEntry(cursel[0]) + else: + self.cancel() # runs a specific entry def goEntry(self, entry): @@ -108,5 +113,18 @@ class ChoiceBox(Screen): def keyBlue(self): self.goKey("blue") + def updateSummary(self, curpos=0): + pos = 0 + summarytext = "" + for entry in self.summarylist: + if pos > curpos-2 and pos < curpos+5: + if pos == curpos: + summarytext += ">" + else: + summarytext += entry[0] + summarytext += ' ' + entry[1] + '\n' + pos += 1 + self["summary_list"].setText(summarytext) + def cancel(self): self.close(None)