X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/78c828aae07db0b15a66577d9230cb848fe536fa..a8310a1a7345577916560e789cdb8c1712e620a9:/skin.py diff --git a/skin.py b/skin.py index 2986a447..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,17 +47,40 @@ dom = xml.dom.minidom.parseString( - - + + - + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -62,32 +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)) @@ -137,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) @@ -175,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): @@ -206,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"))