add a radiomode background picture (mvi file.. changable in
[enigma2.git] / lib / python / Components / PluginList.py
index a84934978184d2709342f278574eaf5e7b84f365..fd988065e5b141e498d1f9f5724a453d496fd220 100644 (file)
@@ -3,34 +3,48 @@ from GUIComponent import *
 
 from MenuList import MenuList
 
-from Tools.Directories import *
+from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
+from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
 
-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
+from enigma import loadPNG, eListboxPythonMultiContent, RT_HALIGN_LEFT, eListbox, gFont
 
 def PluginEntryComponent(plugin):
        res = [ plugin ]
        
-       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))
+       res.append(MultiContentEntryText(pos=(120, 5), size=(320, 25), font=0, text=plugin.name))
+       res.append(MultiContentEntryText(pos=(120, 26), size=(320, 17), font=1, text=plugin.description))
+
+       if plugin.icon is None:
+               png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png"))
+       else:
+               png = plugin.icon
+       res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 5), size=(100, 40), png = png))
+       
+       return res
 
-#      png = loadPNG(picture)
-#      if png == None:
+def PluginCategoryComponent(name, png):
+       res = [ name ]
+       
+       res.append(MultiContentEntryText(pos=(120, 5), size=(320, 25), font=0, text=name))
+       res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 0), size=(100, 50), png = png))
+       
+       return res
 
-       png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/plugin.png"))
-       res.append((eListboxPythonMultiContent.TYPE_PIXMAP, 10, 5, 60, 40, png))
+def PluginDownloadComponent(plugin, name):
+       res = [ plugin ]
+       
+       res.append(MultiContentEntryText(pos=(120, 5), size=(320, 25), font=0, text=name))
+       res.append(MultiContentEntryText(pos=(120, 26), size=(320, 17), font=1, text=plugin.description))
+
+       if plugin.icon is None:
+               png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png"))
+       else:
+               png = plugin.icon
+       res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 0), size=(100, 50), png = png))
        
        return res
 
-class PluginList(HTMLComponent, GUIComponent, MenuList):
+class PluginList(MenuList, HTMLComponent, GUIComponent):
        def __init__(self, list):
                GUIComponent.__init__(self)
                self.l = eListboxPythonMultiContent()
@@ -38,8 +52,9 @@ class PluginList(HTMLComponent, GUIComponent, MenuList):
                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)
+
+       GUI_WIDGET = eListbox
+
+       def postWidgetCreate(self, instance):
+               instance.setContent(self.l)
+               instance.setItemHeight(50)