X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f46f0bbfd9d9cdcd667b79904ad9ee844e2f4ba0..5dc78162806e782a6c6088db0b0698df8bab2f71:/skin.py?ds=sidebyside
diff --git a/skin.py b/skin.py
index 9de0a722..bc4931fb 100644
--- 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(
-
+
@@ -71,12 +72,15 @@ dom = xml.dom.minidom.parseString(
+
+
+
-
+
@@ -87,7 +91,7 @@ dom = xml.dom.minidom.parseString(
-
+
@@ -95,27 +99,20 @@ dom = xml.dom.minidom.parseString(
-
+
+
+
+
+
+
+
+
+
""")
-# 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"))