X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FChoiceBox.py;h=eb39a6088fdddb82a84cf9c025ef0e7ae13d4234;hb=bd1476c4800f2d3d9025db14fcb8fc168d87006a;hp=0436f66d0152993fff3076e0614b07bf27f86f8b;hpb=67b53c1cb06988394c35a6e965c99b72b67fe1be;p=vuplus_dvbapp diff --git a/lib/python/Screens/ChoiceBox.py b/lib/python/Screens/ChoiceBox.py old mode 100644 new mode 100755 index 0436f66..eb39a60 --- a/lib/python/Screens/ChoiceBox.py +++ b/lib/python/Screens/ChoiceBox.py @@ -2,13 +2,20 @@ from Screens.Screen import Screen from Components.ActionMap import NumberActionMap from Components.Label import Label from Components.ChoiceList import ChoiceEntryComponent, ChoiceList +from Components.Sources.StaticText import StaticText class ChoiceBox(Screen): - def __init__(self, session, title = "", list = [], keys = None, selection = 0): + def __init__(self, session, title = "", list = [], keys = None, selection = 0, skin_name = []): Screen.__init__(self, session) + if isinstance(skin_name, str): + skin_name = [skin_name] + self.skinName = skin_name + ["ChoiceBox"] + self.lcd_xres = None + self.lcd_xres=self.readlcdxres() 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: @@ -21,8 +28,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(selection) self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions", "DirectionActions"], { @@ -56,6 +66,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 @@ -63,6 +74,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 @@ -106,5 +118,31 @@ class ChoiceBox(Screen): def keyBlue(self): self.goKey("blue") + def updateSummary(self, curpos=0): + pos = 0 + summarytext = "" + for entry in self.summarylist: + if self.lcd_xres is not None and self.lcd_xres > 140: + if pos > curpos-2 and pos < curpos+5: + if pos == curpos: + summarytext += ">" + else: + summarytext += entry[0] + summarytext += ' ' + entry[1] + '\n' + else: + if pos == curpos: + summarytext += entry[0]+' '+ entry[1] + pos += 1 + self["summary_list"].setText(summarytext) + def cancel(self): self.close(None) + + def readlcdxres(self): + try: + fd = open("/proc/stb/lcd/xres","r") + value = int(fd.read().strip(),16) + fd.close() + return value + except: + return None