fixes bug #362
[enigma2.git] / lib / python / Components / ChoiceList.py
old mode 100644 (file)
new mode 100755 (executable)
index 91f18ae..33868d6
@@ -1,40 +1,28 @@
-from HTMLComponent import *
-from GUIComponent import *
-
 from MenuList import MenuList
+from Tools.Directories import SCOPE_CURRENT_SKIN, resolveFilename
+from enigma import RT_HALIGN_LEFT, eListboxPythonMultiContent, gFont
+from Tools.LoadPixmap import LoadPixmap
 
-from Tools.Directories import *
-
-from enigma import *
-
-RT_HALIGN_LEFT = 0
-RT_HALIGN_RIGHT = 1
-RT_HALIGN_CENTER = 2
-RT_HALIGN_BLOCK = 4
-
-RT_VALIGN_TOP = 0
-RT_VALIGN_CENTER = 8
-RT_VALIGN_BOTTOM = 16
-
-def ChoiceEntryComponent(key, text):
+def ChoiceEntryComponent(key = "", text = ["--"]):
        res = [ text ]
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 32, 00, 800,25, 0, RT_HALIGN_LEFT, text[0]))
-
-       png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "key_" + key + "-fs8.png"))
-       if png is not None:
-               res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 30, 20, png))
+       if text[0] == "--":
+               res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 00, 800, 25, 0, RT_HALIGN_LEFT, "-"*200))
+       else:
+               res.append((eListboxPythonMultiContent.TYPE_TEXT, 45, 00, 800, 25, 0, RT_HALIGN_LEFT, text[0]))
+       
+               png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/buttons/key_" + key + ".png"))
+               if png is not None:
+                       res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 5, 0, 35, 25, png))
        
        return res
 
-class ChoiceList(HTMLComponent, GUIComponent, MenuList):
-       def __init__(self, list):
-               GUIComponent.__init__(self)
-               self.l = eListboxPythonMultiContent()
-               self.list = list
-               self.l.setList(list)
+class ChoiceList(MenuList):
+       def __init__(self, list, selection = 0, enableWrapAround=False):
+               MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
                self.l.setFont(0, gFont("Regular", 20))
-       
-       def GUIcreate(self, parent):
-               self.instance = eListbox(parent)
-               self.instance.setContent(self.l)
-               self.instance.setItemHeight(25)
+               self.l.setItemHeight(25)
+               self.selection = selection
+
+       def postWidgetCreate(self, instance):
+               MenuList.postWidgetCreate(self, instance)
+               self.moveToIndex(self.selection)