Support Uno4k/Ultimo4k
[vuplus_dvbapp] / lib / python / Components / PluginList.py
index a849349..fee11ef 100644 (file)
@@ -1,45 +1,59 @@
-from HTMLComponent import *
-from GUIComponent import *
-
 from MenuList import MenuList
 
-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 PluginEntryComponent(plugin):
-       res = [ plugin ]
+from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
+from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
+
+from enigma import eListboxPythonMultiContent, gFont
+from Tools.LoadPixmap import LoadPixmap
+import skin
+
+def PluginEntryComponent(plugin, width=440):
+       if plugin.icon is None:
+               png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/plugin.png"))
+       else:
+               png = plugin.icon
+
+       nx, ny, nh = skin.parameters.get("PluginBrowserName",(120, 5, 25))
+       dx, dy, dh = skin.parameters.get("PluginBrowserDescr",(120, 26, 17))
+       ix, iy, iw, ih = skin.parameters.get("PluginBrowserIcon",(10, 5, 100, 40))
+       return [
+               plugin,
+               MultiContentEntryText(pos=(nx, ny), size=(width-nx, nh), font=0, text=plugin.name),
+               MultiContentEntryText(pos=(dx, dy), size=(width-dx, dh), font=1, text=plugin.description),
+               MultiContentEntryPixmapAlphaTest(pos=(ix, iy), size=(iw, ih), png = png)
+       ]
+
+def PluginCategoryComponent(name, png, width=440):
+       x, y, h = skin.parameters.get("PluginBrowserDownloadName",(120, 5, 25))
+       ix, iy, iw, ih = skin.parameters.get("PluginBrowserDownloadIcon",(10, 0, 100, 50))
+       return [
+               name,
+               MultiContentEntryText(pos=(x, y), size=(width-x, h), font=0, text=name),
+               MultiContentEntryPixmapAlphaTest(pos=(ix, iy), size=(iw, ih), png = png)
+       ]
+
+def PluginDownloadComponent(plugin, name, width=440):
+       if plugin.icon is None:
+               png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/plugin.png"))
+       else:
+               png = plugin.icon
+
+       x, y, h = skin.parameters.get("PluginBrowserDownloadName",(120, 5, 25))
+       dx, dy, dh = skin.parameters.get("PluginBrowserDownloadDescr",(120, 26, 17))
+       ix, iy, iw, ih = skin.parameters.get("PluginBrowserDownloadIcon",(10, 0, 100, 50))
+       return [
+               plugin,
+               MultiContentEntryText(pos=(x, y), size=(width-x, h), font=0, text=name),
+               MultiContentEntryText(pos=(dx, dy), size=(width-dx, dh), font=1, text=plugin.description),
+               MultiContentEntryPixmapAlphaTest(pos=(ix, iy), size=(iw, ih), png = png)
+       ]
        
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 80, 5, 300, 25, 0, RT_HALIGN_LEFT, plugin.name))
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 80, 26, 300, 17, 1, RT_HALIGN_LEFT, plugin.description))
-
-#      png = loadPNG(picture)
-#      if png == None:
 
-       png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/plugin.png"))
-       res.append((eListboxPythonMultiContent.TYPE_PIXMAP, 10, 5, 60, 40, png))
-       
-       return res
-
-class PluginList(HTMLComponent, GUIComponent, MenuList):
-       def __init__(self, list):
-               GUIComponent.__init__(self)
-               self.l = eListboxPythonMultiContent()
-               self.list = list
-               self.l.setList(list)
-               self.l.setFont(0, gFont("Regular", 20))
-               self.l.setFont(1, gFont("Regular", 14))
-       
-       def GUIcreate(self, parent):
-               self.instance = eListbox(parent)
-               self.instance.setContent(self.l)
-               self.instance.setItemHeight(50)
+class PluginList(MenuList):
+       def __init__(self, list, enableWrapAround=False):
+               MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
+               font = skin.fonts.get("PluginBrowser0", ("Regular", 20, 50))
+               self.l.setFont(0, gFont(font[0], font[1]))
+               self.l.setItemHeight(font[2])
+               font = skin.fonts.get("PluginBrowser1", ("Regular", 14))
+               self.l.setFont(1, gFont(font[0], font[1]))