add support for cyclic garbage collection to eTimer and eSocketNotifier
[vuplus_dvbapp] / lib / python / Components / PluginList.py
1 from HTMLComponent import HTMLComponent
2 from GUIComponent import GUIComponent
3
4 from MenuList import MenuList
5
6 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
7 from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
8
9 from enigma import eListboxPythonMultiContent, eListbox, gFont
10 from Tools.LoadPixmap import LoadPixmap
11
12 def PluginEntryComponent(plugin):
13         res = [ plugin ]
14         
15         res.append(MultiContentEntryText(pos=(120, 5), size=(320, 25), font=0, text=plugin.name))
16         res.append(MultiContentEntryText(pos=(120, 26), size=(320, 17), font=1, text=plugin.description))
17
18         if plugin.icon is None:
19                 png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png"))
20         else:
21                 png = plugin.icon
22         res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 5), size=(100, 40), png = png))
23         
24         return res
25
26 def PluginCategoryComponent(name, png):
27         res = [ name ]
28         
29         res.append(MultiContentEntryText(pos=(120, 5), size=(320, 25), font=0, text=name))
30         res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 0), size=(100, 50), png = png))
31         
32         return res
33
34 def PluginDownloadComponent(plugin, name):
35         res = [ plugin ]
36         
37         res.append(MultiContentEntryText(pos=(120, 5), size=(320, 25), font=0, text=name))
38         res.append(MultiContentEntryText(pos=(120, 26), size=(320, 17), font=1, text=plugin.description))
39
40         if plugin.icon is None:
41                 png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png"))
42         else:
43                 png = plugin.icon
44         res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 0), size=(100, 50), png = png))
45         
46         return res
47
48 class PluginList(MenuList, HTMLComponent, GUIComponent):
49         def __init__(self, list):
50                 GUIComponent.__init__(self)
51                 self.l = eListboxPythonMultiContent()
52                 self.list = list
53                 self.l.setList(list)
54                 self.l.setFont(0, gFont("Regular", 20))
55                 self.l.setFont(1, gFont("Regular", 14))
56                 self.l.setItemHeight(50)
57
58         GUI_WIDGET = eListbox
59
60         def postWidgetCreate(self, instance):
61                 instance.setContent(self.l)