add epgcache
[enigma2.git] / skin.py
diff --git a/skin.py b/skin.py
index dc01e34ef24b839fcbd369e1375ebf645020c06b..bc4931fbd34c3a6694c75ecf254973e9c413947f 100644 (file)
--- a/skin.py
+++ b/skin.py
@@ -2,6 +2,7 @@ from enigma import *
 import xml.dom.minidom
 from xml.dom import EMPTY_NAMESPACE
 
+from Tools.XMLTools import elementsWithTag
 
 colorNames = dict()
 
@@ -31,7 +32,7 @@ dom = xml.dom.minidom.parseString(
                        <color name="LabelForeground" color="#ffffff" />
                        <color name="ListboxBackground" color="#4075a7" />
                        <color name="ListboxForeground" color="#ffffff" />
-                       <color name="ListboxSelectedBackground" color="#80ff80" />
+                       <color name="ListboxSelectedBackground" color="#404080" />
                        <color name="ListboxSelectedForeground" color="#ffffff" />
                        <color name="ListboxMarkedBackground" color="#ff0000" />
                        <color name="ListboxMarkedForeground" color="#ffffff" />
@@ -71,6 +72,9 @@ dom = xml.dom.minidom.parseString(
                <screen name="configTest" position="300,100" size="300,300" title="config menu">
                        <widget name="config" position="10,30" size="280,140" />
                </screen>
+               <screen name="TimerEditList" position="160,100" size="420,430" title="Timer Editor">
+                       <widget name="timerlist" position="10,30" size="400,300" />
+               </screen>
                <screen name="clockDisplay" position="300,100" size="300,300">
                        <widget name="okbutton" position="10,10" size="280,40" />
                        <widget name="title" position="10,120" size="280,50" />
@@ -99,23 +103,16 @@ dom = xml.dom.minidom.parseString(
                        <widget name="scan_progress" position="10,10" size="280,50" />
                        <widget name="scan_state" position="10,60" size="280,30" />
                </screen>
+               <screen name="TimerEdit" position="70,100" size="590,335" title="Timer Edit">
+                       <widget name="description" position="10,10" size="580,40" font="Arial;25"/>
+                       <widget name="lbegin" position="405,102" size="103,30" font="Arial;25" />
+                       <widget name="lend" position="405,158" size="103,30" font="Arial;25" />
+                       <widget name="begin" position="508,105" size="72,35" font="Arial;25" />
+                       <widget name="end" position="508,150" size="72,35" font="Arial;25" />
+                       <widget name="apply" position="10,240" size="250,35" />
+               </screen>
        </skin>""")
 
-# filters all elements of childNode with the specified function
-# example: nodes = elementsWithTag(childNodes, lambda x: x == "bla")
-def elementsWithTag(el, tag):
-
-       # fiiixme! (works but isn't nice)
-       if tag.__class__ == "".__class__:
-               str = tag
-               tag = lambda x: x == str
-               
-       for x in el:
-               if x.nodeType != xml.dom.minidom.Element.nodeType:
-                       continue
-               if tag(x.tagName):
-                       yield x
-
 def parsePosition(str):
        x, y = str.split(',')
        return ePoint(int(x), int(y))
@@ -165,7 +162,6 @@ def applyAttributes(guiObject, node, desktop):
                                        raise "loading PNG failed!"
                                x = ptr
                                ptr = ptr.__deref__()
-                               print desktop
                                desktop.makeCompatiblePixmap(ptr)
                                guiObject.setPixmap(ptr)
 #                              guiObject.setPixmapFromFile(value)
@@ -203,7 +199,7 @@ def applyAttributes(guiObject, node, desktop):
                except AttributeError:
                        print "widget %s (%s) doesn't support attribute %s!" % ("", guiObject.__class__.__name__, attrib)
 
-def loadSkin():
+def loadSkin(desktop):
        print "loading skin..."
        
        def getPNG(x):
@@ -234,7 +230,11 @@ def loadSkin():
                                bpName = str(pixmap.getAttribute("pos"))
                                filename = str(pixmap.getAttribute("filename"))
                                
-                               style.setPixmap(eWindowStyleSkinned.__dict__[bsName], eWindowStyleSkinned.__dict__[bpName], getPNG(filename))
+                               png = getPNG(filename)
+                               
+                               # adapt palette
+                               desktop.makeCompatiblePixmap(png)
+                               style.setPixmap(eWindowStyleSkinned.__dict__[bsName], eWindowStyleSkinned.__dict__[bpName], png)
 
                for color in elementsWithTag(windowstyle.childNodes, "color"):
                        type = str(color.getAttribute("name"))