update da language
[enigma2.git] / skin.py
diff --git a/skin.py b/skin.py
index fc0360c54888a09f1a7713856c5a8c0208d38a91..baa53f74ddf5ba3de5eb3f3f504a548cf9a4df11 100644 (file)
--- a/skin.py
+++ b/skin.py
@@ -76,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=[]):
@@ -98,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):
@@ -168,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":
@@ -199,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)
@@ -213,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"))