implement proper 'destroy' functions in Converter
[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, eListbox, gFont, RT_HALIGN_LEFT
5 from Tools.LoadPixmap import LoadPixmap
6
7 selectionpng = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "selectioncross-fs8.png"))
8
9 def SelectionEntryComponent(description, value, index, selected):
10         res = [ (description, value, index, selected) ]
11         res.append((eListboxPythonMultiContent.TYPE_TEXT, 30, 3, 500, 30, 0, RT_HALIGN_LEFT, description))
12         if selected:
13                 res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 30, 30, selectionpng))
14         return res
15
16 class SelectionList(MenuList, GUIComponent):
17         def __init__(self, list = None):
18                 GUIComponent.__init__(self)
19                 self.l = eListboxPythonMultiContent()
20                 self.list = list or []
21                 self.setList(self.list)
22                 self.l.setFont(0, gFont("Regular", 20))
23                 self.l.setItemHeight(30)
24
25         GUI_WIDGET = eListbox
26                 
27         def postWidgetCreate(self, instance):
28                 instance.setContent(self.l)
29
30         def addSelection(self, description, value, index, selected = True):
31                 self.list.append(SelectionEntryComponent(description, value, index, selected))
32                 self.setList(self.list)
33                 
34         def toggleSelection(self):
35                 item = self.list[self.getSelectedIndex()][0]
36                 self.list[self.getSelectedIndex()] = SelectionEntryComponent(item[0], item[1], item[2], not item[3])
37                 self.setList(self.list)
38                 
39         def getSelectionsList(self):
40                 list = []
41                 for item in self.list:
42                         if item[0][3]:
43                                 list.append((item[0][0], item[0][1], item[0][2]))
44                 return list