X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/393d8782dc0d19f4c67c1d988ab0631762c714a7..2dc887734256563f9d6880a5f829294e5f44d04a:/skin.py diff --git a/skin.py b/skin.py index b0b45055..baa53f74 100644 --- a/skin.py +++ b/skin.py @@ -14,9 +14,6 @@ from Tools.XMLTools import elementsWithTag, mergeText colorNames = dict() -def queryColor(colorName): - return colorNames.get(colorName) - def dump(x, i=0): print " " * i + str(x) try: @@ -79,7 +76,7 @@ def parseColor(str): try: return colorNames[str] except: - raise ("color '%s' must be #aarrggbb or valid named color" % (str)) + raise SkinError("color '%s' must be #aarrggbb or valid named color" % (str)) return gRGB(int(str[1:], 0x10)) def collectAttributes(skinAttributes, node, skin_path_prefix=None, ignore=[]): @@ -101,7 +98,7 @@ def collectAttributes(skinAttributes, node, skin_path_prefix=None, ignore=[]): def loadPixmap(path): ptr = loadPNG(path) if ptr is None: - raise "pixmap file %s not found!" % (path) + raise SkinError("pixmap file %s not found!" % (path)) return ptr def applySingleAttribute(guiObject, desktop, attrib, value): @@ -171,8 +168,12 @@ def applySingleAttribute(guiObject, desktop, attrib, value): print "illegal flag %s!" % f elif attrib == "backgroundColor": guiObject.setBackgroundColor(parseColor(value)) + elif attrib == "backgroundColorSelected": + guiObject.setBackgroundColorSelected(parseColor(value)) elif attrib == "foregroundColor": guiObject.setForegroundColor(parseColor(value)) + elif attrib == "foregroundColorSelected": + guiObject.setForegroundColorSelected(parseColor(value)) elif attrib == "shadowColor": guiObject.setShadowColor(parseColor(value)) elif attrib == "selectionDisabled": @@ -202,7 +203,7 @@ def applySingleAttribute(guiObject, desktop, attrib, value): elif attrib == 'noWrap': guiObject.setNoWrap(1) else: - raise "unsupported attribute " + attrib + "=" + value + raise SkinError("unsupported attribute " + attrib + "=" + value) except int: # AttributeError: print "widget %s (%s) doesn't support attribute %s!" % ("", guiObject.__class__.__name__, attrib) @@ -216,7 +217,23 @@ def loadSingleSkinData(desktop, dom_skin, path_prefix): skin = dom_skin.childNodes[0] assert skin.tagName == "skin", "root element in skin must be 'skin'!" - + + for c in elementsWithTag(skin.childNodes, "output"): + id = int(c.getAttribute("id") or "0") + if id == 0: # framebuffer + for res in elementsWithTag(c.childNodes, "resolution"): + xres = int(res.getAttribute("xres" or "720")) + yres = int(res.getAttribute("yres" or "576")) + bpp = int(res.getAttribute("bpp" or "32")) + + from enigma import gFBDC + i = gFBDC.getInstance() + i.setResolution(xres, yres) + + if bpp != 32: + # load palette (not yet implemented) + pass + for c in elementsWithTag(skin.childNodes, "colors"): for color in elementsWithTag(c.childNodes, "color"): name = str(color.getAttribute("name"))