from Components.config import ConfigSubsection, ConfigText, config
from Components.Converter.Converter import Converter
+from Components.Sources.Source import Source
from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS
from Tools.Import import my_import
colorNames = dict()
+def queryColor(colorName):
+ return colorNames.get(colorName)
+
def dump(x, i=0):
print " " * i + str(x)
try:
return None, None
def readSkin(screen, skin, name, desktop):
-
- myscreen, path = lookupScreen(name)
-
+ if not isinstance(name, list):
+ name = [name]
+
+ # try all skins, first existing one have priority
+ for n in name:
+ myscreen, path = lookupScreen(n)
+ if myscreen is not None:
+ break
+
# otherwise try embedded skin
myscreen = myscreen or getattr(screen, "parsedSkin", None)
if myscreen is None and getattr(screen, "skin", None):
myscreen = screen.parsedSkin = xml.dom.minidom.parseString(screen.skin).childNodes[0]
- assert myscreen is not None, "no skin for screen '" + name + "' found!"
+ assert myscreen is not None, "no skin for screen '" + repr(name) + "' found!"
screen.skinAttributes = [ ]
# get corresponding source
source = screen.get(wsource)
if source is None:
- raise SkinError("source '" + wsource + "' was not found in screen '" + name + "'!")
+ if wsource == "fake":
+ if screen.get("fake"):
+ raise SkinError("screen '" + name + "has a element named 'fake' but its not a Source!!")
+ source = Source()
+ screen["fake"] = source
+ else:
+ raise SkinError("source '" + wsource + "' was not found in screen '" + name + "'!")
wrender = widget.getAttribute('render')