aboutsummaryrefslogtreecommitdiff
path: root/skin.py
diff options
context:
space:
mode:
authorFraxinas <andreas.frisch@multimedia-labs.de>2009-05-27 23:45:01 +0200
committerFraxinas <andreas.frisch@multimedia-labs.de>2009-05-27 23:45:01 +0200
commit3f71f581949b23c013b07a266e9aae0edd102a53 (patch)
treef00f579f20f3e473589bba09b4c42b51b48ba962 /skin.py
parent51e789a04f758941668b095fd8b051db2ce58281 (diff)
downloadenigma2-3f71f581949b23c013b07a266e9aae0edd102a53.tar.gz
enigma2-3f71f581949b23c013b07a266e9aae0edd102a53.zip
make subtitle font styles skinnable
Diffstat (limited to 'skin.py')
-rw-r--r--skin.py35
1 files changed, 28 insertions, 7 deletions
diff --git a/skin.py b/skin.py
index a37716f1..d44e5033 100644
--- a/skin.py
+++ b/skin.py
@@ -6,7 +6,6 @@ from os import path
profile("LOAD:enigma_skin")
from enigma import eSize, ePoint, gFont, eWindow, eLabel, ePixmap, eWindowStyleManager, \
addFont, gRGB, eWindowStyleSkinned
-
from Components.config import ConfigSubsection, ConfigText, config
from Components.Converter.Converter import Converter
from Components.Sources.Source import Source, ObsoleteSource
@@ -298,6 +297,28 @@ def loadSingleSkinData(desktop, skin, path_prefix):
addFont(resolved_font, name, scale, is_replacement)
#print "Font: ", resolved_font, name, scale, is_replacement
+ for c in skin.findall("subtitles"):
+ from enigma import eWidget, eSubtitleWidget
+ scale = ((1,1),(1,1))
+ for substyle in c.findall("sub"):
+ get_attr = substyle.attrib.get
+ font = parseFont(get_attr("font"), scale)
+ col = get_attr("foregroundColor")
+ if col:
+ foregroundColor = parseColor(col)
+ haveColor = 1
+ else:
+ foregroundColor = gRGB(0xFFFFFF)
+ haveColor = 0
+ col = get_attr("shadowColor")
+ if col:
+ shadowColor = parseColor(col)
+ else:
+ shadowColor = gRGB(0)
+ shadowOffset = parsePosition(get_attr("shadowOffset"), scale)
+ face = eval("eSubtitleWidget.%s" % get_attr("name"))
+ eSubtitleWidget.setFontStyle(face, font, haveColor, foregroundColor, shadowColor, shadowOffset)
+
for windowstyle in skin.findall("windowstyle"):
style = eWindowStyleSkinned()
id = windowstyle.attrib.get("id")
@@ -333,12 +354,12 @@ def loadSingleSkinData(desktop, skin, path_prefix):
for color in windowstyle.findall("color"):
get_attr = color.attrib.get
- type = get_attr("name")
+ colorType = get_attr("name")
color = parseColor(get_attr("color"))
try:
- style.setColor(eWindowStyleSkinned.__dict__["col" + type], color)
+ style.setColor(eWindowStyleSkinned.__dict__["col" + colorType], color)
except:
- raise SkinError("Unknown color %s" % (type))
+ raise SkinError("Unknown color %s" % (colorType))
#pass
#print " color:", type, color
@@ -528,15 +549,15 @@ def readSkin(screen, skin, names, desktop):
#print "Found code:"
#print codeText
- type = widget.attrib.get('type')
+ widgetType = widget.attrib.get('type')
code = compile(codeText, "skin applet", "exec")
- if type == "onLayoutFinish":
+ if widgetType == "onLayoutFinish":
screen.onLayoutFinish.append(code)
#print "onLayoutFinish = ", codeText
else:
- raise SkinError("applet type '%s' unknown!" % type)
+ raise SkinError("applet type '%s' unknown!" % widgetType)
#print "applet type '%s' unknown!" % type
continue