X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/9a1eb9bbf5d26648c761459ec7019f9c6eae24d7..62b8a649fcae500c983215fac2e5202916c0195f:/skin.py diff --git a/skin.py b/skin.py index 1fa565f2..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() @@ -17,16 +18,21 @@ dom = xml.dom.minidom.parseString( """ - - - + + + + + + + + - + @@ -41,20 +47,40 @@ dom = xml.dom.minidom.parseString( - - + + - + + + + + + + + + + + + + + + + + + + + + - + @@ -65,31 +91,28 @@ 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)) @@ -139,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) @@ -177,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): @@ -208,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"))