from Tools.Import import my_import
import os
+from Components.config import ConfigSubsection, configElement, configText, config
+
from Tools.XMLTools import elementsWithTag, mergeText
colorNames = dict()
from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS
-class SkinError(str):
- pass
+class SkinError(Exception):
+ def __init__(self, message):
+ self.message = message
+
+ def __str__(self):
+ return self.message
dom_skins = [ ]
# so the first screen found will be used.
# example: loadSkin("nemesis_greenline/skin.xml")
-loadSkin('skin.xml')
+config.skin = ConfigSubsection()
+config.skin.primary_skin = configElement("config.skin.primary_skin", configText, "skin.xml", 0)
+
+try:
+ loadSkin(config.skin.primary_skin.value)
+except SkinError, err:
+ print "SKIN ERROR:", err
+ print "defaulting to standard skin..."
+ loadSkin('skin.xml')
loadSkin('skin_default.xml')
def parsePosition(str):
guiObject.setPointer(ptr.__deref__(), pos)
elif attrib == 'shadowOffset':
guiObject.setShadowOffset(parsePosition(value))
- elif attrib != 'name':
- print "unsupported attribute " + attrib + "=" + value
+ else:
+ raise "unsupported attribute " + attrib + "=" + value
except int:
# AttributeError:
print "widget %s (%s) doesn't support attribute %s!" % ("", guiObject.__class__.__name__, attrib)
for converter in elementsWithTag(widget.childNodes, "convert"):
ctype = converter.getAttribute('type')
- assert ctype
+ assert ctype, "'convert'-tag needs a 'type'-attribute"
converter_class = my_import('.'.join(["Components", "Converter", ctype])).__dict__.get(ctype)
parms = mergeText(converter.childNodes).strip()
c = converter_class(parms)
raise SkinError("unsupported stuff : %s" % widget.tagName)
w.skinAttributes = [ ]
- collectAttributes(w.skinAttributes, widget, skin_path_prefix)
+ collectAttributes(w.skinAttributes, widget, skin_path_prefix, ignore=['name'])
# applyAttributes(guiObject, widget, desktop)
# guiObject.thisown = 0