X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FChoiceBox.py;h=6f23fdcdcb6332741e24f904974867247c6c18b8;hb=2623513b3de1ab9f89bac582ae30c39b4a8b9505;hp=50fd6c5172b6da259614d8c2a28067bb1536c24e;hpb=84e19567791d6117f4d5103b001d0b05cd231d38;p=vuplus_dvbapp diff --git a/lib/python/Screens/ChoiceBox.py b/lib/python/Screens/ChoiceBox.py index 50fd6c5..6f23fdc 100644 --- a/lib/python/Screens/ChoiceBox.py +++ b/lib/python/Screens/ChoiceBox.py @@ -24,13 +24,13 @@ class ChoiceBox(Screen): pos = 0 for x in list: strpos = str(self.keys[pos]) - self.list.append(ChoiceEntryComponent(strpos, x)) + self.list.append(ChoiceEntryComponent(key = strpos, text = x)) if self.keys[pos] != "": self.keymap[self.keys[pos]] = list[pos] pos += 1 self["list"] = ChoiceList(list = self.list, selection = selection) - self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions"], + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions", "DirectionActions"], { "ok": self.go, "back": self.cancel, @@ -47,7 +47,9 @@ class ChoiceBox(Screen): "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, - "blue": self.keyBlue + "blue": self.keyBlue, + "up": self.up, + "down": self.down }, -1) def keyLeft(self): @@ -56,14 +58,31 @@ class ChoiceBox(Screen): def keyRight(self): pass + def up(self): + if len(self["list"].list) > 0: + while 1: + self["list"].instance.moveSelection(self["list"].instance.moveUp) + if self["list"].l.getCurrentSelection()[0][0] != "--" or self["list"].l.getCurrentSelectionIndex() == 0: + break + + def down(self): + if len(self["list"].list) > 0: + while 1: + self["list"].instance.moveSelection(self["list"].instance.moveDown) + if self["list"].l.getCurrentSelection()[0][0] != "--" or self["list"].l.getCurrentSelectionIndex() == len(self["list"].list) - 1: + break + + def keyNumberGlobal(self, number): print "pressed", number if self.keymap.has_key(str(number)): self.close(self.keymap[str(number)]) def go(self): - self.close(self["list"].l.getCurrentSelection()[0]) - #self.close(self["input"].getText()) + if len(self["list"].list) > 0: + self.close(self["list"].l.getCurrentSelection()[0]) + else: + self.close(None) def keyRed(self): if self.keymap.has_key("red"):