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"))