Support duo4k.
[vuplus_dvbapp] / lib / python / Components / PluginList.py
1 from MenuList import MenuList
2
3 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
4 from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
5
6 from enigma import eListboxPythonMultiContent, gFont
7 from Tools.LoadPixmap import LoadPixmap
8 import skin
9
10 def PluginEntryComponent(plugin, width=440):
11         if plugin.icon is None:
12                 png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/plugin.png"))
13         else:
14                 png = plugin.icon
15
16         nx, ny, nh = skin.parameters.get("PluginBrowserName",(120, 5, 25))
17         dx, dy, dh = skin.parameters.get("PluginBrowserDescr",(120, 26, 17))
18         ix, iy, iw, ih = skin.parameters.get("PluginBrowserIcon",(10, 5, 100, 40))
19         return [
20                 plugin,
21                 MultiContentEntryText(pos=(nx, ny), size=(width-nx, nh), font=0, text=plugin.name),
22                 MultiContentEntryText(pos=(dx, dy), size=(width-dx, dh), font=1, text=plugin.description),
23                 MultiContentEntryPixmapAlphaTest(pos=(ix, iy), size=(iw, ih), png = png)
24         ]
25
26 def PluginCategoryComponent(name, png, width=440):
27         x, y, h = skin.parameters.get("PluginBrowserDownloadName",(120, 5, 25))
28         ix, iy, iw, ih = skin.parameters.get("PluginBrowserDownloadIcon",(10, 0, 100, 50))
29         return [
30                 name,
31                 MultiContentEntryText(pos=(x, y), size=(width-x, h), font=0, text=name),
32                 MultiContentEntryPixmapAlphaTest(pos=(ix, iy), size=(iw, ih), png = png)
33         ]
34
35 def PluginDownloadComponent(plugin, name, width=440):
36         if plugin.icon is None:
37                 png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/plugin.png"))
38         else:
39                 png = plugin.icon
40
41         x, y, h = skin.parameters.get("PluginBrowserDownloadName",(120, 5, 25))
42         dx, dy, dh = skin.parameters.get("PluginBrowserDownloadDescr",(120, 26, 17))
43         ix, iy, iw, ih = skin.parameters.get("PluginBrowserDownloadIcon",(10, 0, 100, 50))
44         return [
45                 plugin,
46                 MultiContentEntryText(pos=(x, y), size=(width-x, h), font=0, text=name),
47                 MultiContentEntryText(pos=(dx, dy), size=(width-dx, dh), font=1, text=plugin.description),
48                 MultiContentEntryPixmapAlphaTest(pos=(ix, iy), size=(iw, ih), png = png)
49         ]
50         
51
52 class PluginList(MenuList):
53         def __init__(self, list, enableWrapAround=False):
54                 MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
55                 font = skin.fonts.get("PluginBrowser0", ("Regular", 20, 50))
56                 self.l.setFont(0, gFont(font[0], font[1]))
57                 self.l.setItemHeight(font[2])
58                 font = skin.fonts.get("PluginBrowser1", ("Regular", 14))
59                 self.l.setFont(1, gFont(font[0], font[1]))