add subtitle widget
[enigma2.git] / skin.py
diff --git a/skin.py b/skin.py
index c16d998c25e6772802ef083aea69c2cb117eba60..f8fcb1224cf0bca30709a671ea33dea03941215b 100644 (file)
--- a/skin.py
+++ b/skin.py
@@ -14,7 +14,7 @@ def dump(x, i=0):
        except:
                None
 
-from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE
+from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS
 
 dom_skins = [ ]
 
@@ -84,7 +84,7 @@ def applySingleAttribute(guiObject, desktop, attrib, value):
                elif attrib == "pixmap":
                        ptr = loadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, value))
                        # that __deref__ still scares me!
-#                      desktop.makeCompatiblePixmap(ptr.__deref__())
+                       desktop.makeCompatiblePixmap(ptr.__deref__())
                        guiObject.setPixmap(ptr.__deref__())
                        # guiObject.setPixmapFromFile(value)
                elif attrib == "alphatest": # used by ePixmap
@@ -155,10 +155,10 @@ def applySingleAttribute(guiObject, desktop, attrib, value):
                        ptr = loadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, name))
                        desktop.makeCompatiblePixmap(ptr.__deref__())
                        guiObject.setPointer(ptr.__deref__(), pos)
-               elif attrib != 'name':
-                       print "unsupported attribute " + attrib + "=" + value
                elif attrib == 'shadowOffset':
                        guiObject.setShadowOffset(parsePosition(value))
+               elif attrib != 'name':
+                       print "unsupported attribute " + attrib + "=" + value
        except int:
 # AttributeError:
                print "widget %s (%s) doesn't support attribute %s!" % ("", guiObject.__class__.__name__, attrib)
@@ -183,6 +183,14 @@ def loadSingleSkinData(desktop, dom_skin):
                                
                        colorNames[name] = parseColor(color)
        
+       for c in elementsWithTag(skin.childNodes, "fonts"):
+               for font in elementsWithTag(c.childNodes, "font"):
+                       filename = str(font.getAttribute("filename") or "<NONAME>")
+                       name = str(font.getAttribute("name") or "Regular")
+                       scale = int(font.getAttribute("scale") or "100")
+                       is_replacement = font.getAttribute("replacement") != ""
+                       addFont(resolveFilename(SCOPE_FONTS, filename), name, scale, is_replacement)
+       
        for windowstyle in elementsWithTag(skin.childNodes, "windowstyle"):
                style = eWindowStyleSkinned()