just recalc length of visible entries in movie selection
[enigma2.git] / lib / python / Components / SelectionList.py
1 from GUIComponent import GUIComponent
2 from MenuList import MenuList
3 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
4 from enigma import eListboxPythonMultiContent, loadPNG, eListbox, gFont, RT_HALIGN_LEFT
5
6 selectionpng = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "selectioncross-fs8.png"))
7
8 def SelectionEntryComponent(description, value, index, selected):
9         res = [ (description, value, index, selected) ]
10         res.append((eListboxPythonMultiContent.TYPE_TEXT, 30, 3, 500, 30, 0, RT_HALIGN_LEFT, description))
11         if selected:
12                 res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 30, 30, selectionpng))
13         return res
14
15 class SelectionList(MenuList, GUIComponent):
16         def __init__(self, list = []):
17                 GUIComponent.__init__(self)
18                 self.l = eListboxPythonMultiContent()
19                 self.list = list
20                 self.setList(list)
21                 self.l.setFont(0, gFont("Regular", 20))
22                 self.l.setItemHeight(30)
23
24         GUI_WIDGET = eListbox
25                 
26         def postWidgetCreate(self, instance):
27                 instance.setContent(self.l)
28
29         def addSelection(self, description, value, index, selected = True):
30                 self.list.append(SelectionEntryComponent(description, value, index, selected))
31                 self.setList(self.list)
32                 
33         def toggleSelection(self):
34                 item = self.list[self.getSelectedIndex()][0]
35                 self.list[self.getSelectedIndex()] = SelectionEntryComponent(item[0], item[1], item[2], not item[3])
36                 self.setList(self.list)
37                 
38         def getSelectionsList(self):
39                 list = []
40                 for item in self.list:
41                         if item[0][3]:
42                                 list.append((item[0][0], item[0][1], item[0][2]))
43                 return list