aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-03-24 17:27:36 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-03-24 17:27:36 +0000
commit7c8c5bc3e04718569b1b848d252d515b81545130 (patch)
treec13c09c4d335327761aedfb898783d584923ff0c
parent4df1ec945881b68e6cdaaf52dff719844b840e6a (diff)
downloadenigma2-7c8c5bc3e04718569b1b848d252d515b81545130.tar.gz
enigma2-7c8c5bc3e04718569b1b848d252d515b81545130.zip
support for arbitrary number of skinfiles
-rw-r--r--mytest.py2
-rw-r--r--skin.py46
2 files changed, 24 insertions, 24 deletions
diff --git a/mytest.py b/mytest.py
index 13d39800..41ce9c84 100644
--- a/mytest.py
+++ b/mytest.py
@@ -363,7 +363,7 @@ def runScreenTest():
import keymapparser
keymapparser.readKeymap()
import skin
-skin.loadSkin(getDesktop(0))
+skin.loadSkinData(getDesktop(0))
import Components.InputDevice
Components.InputDevice.InitInputDevices()
diff --git a/skin.py b/skin.py
index 5327d66c..da97b88a 100644
--- a/skin.py
+++ b/skin.py
@@ -16,9 +16,14 @@ def dump(x, i=0):
from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE
-# read the skin
-dom_skin = xml.dom.minidom.parse(resolveFilename(SCOPE_SKIN, 'skin.xml'))
-dom_skin_default = xml.dom.minidom.parse(resolveFilename(SCOPE_SKIN, 'skin_default.xml'))
+dom_skins = [ ]
+
+def loadSkin(name):
+ # read the skin
+ dom_skins.append(xml.dom.minidom.parse(resolveFilename(SCOPE_SKIN, name)))
+
+loadSkin('skin.xml')
+loadSkin('skin_default.xml')
def parsePosition(str):
x, y = str.split(',')
@@ -158,8 +163,8 @@ def applyAllAttributes(guiObject, desktop, attributes):
for (attrib, value) in attributes:
applySingleAttribute(guiObject, desktop, attrib, value)
-def loadSkin(desktop):
- print "loading skin..."
+def loadSingleSkinData(desktop, dom_skin):
+ """loads skin data like colors, windowstyle etc."""
skin = dom_skin.childNodes[0]
assert skin.tagName == "skin", "root element in skin must be 'skin'!"
@@ -205,26 +210,21 @@ def loadSkin(desktop):
eWindowStyleManager.getInstance(x)
x.setStyle(style)
-def readSkin(screen, skin, name, desktop):
- myscreen = None
-
- # first, find the corresponding screen element
- skin = dom_skin.childNodes[0]
- skin_default = dom_skin_default.childNodes[0]
-
- for x in elementsWithTag(skin.childNodes, "screen"):
- if x.getAttribute('name') == name:
- myscreen = x
- break
-
- # if not found, check default skin
- if myscreen is None:
- for x in elementsWithTag(skin_default.childNodes, "screen"):
+def loadSkinData(desktop):
+ for dom_skin in dom_skins:
+ loadSingleSkinData(desktop, dom_skin)
+
+def lookupScreen(name):
+ for dom_skin in dom_skins:
+ # first, find the corresponding screen element
+ skin = dom_skin.childNodes[0]
+ for x in elementsWithTag(skin.childNodes, "screen"):
if x.getAttribute('name') == name:
- myscreen = x
- break
+ return x
+ return None
- del skin, skin_default
+def readSkin(screen, skin, name, desktop):
+ myscreen = lookupScreen(name)
# otherwise try embedded skin
myscreen = myscreen or getattr(screen, "parsedSkin", None)