aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2007-09-14 12:26:07 +0000
committerFelix Domke <tmbinc@elitedvb.net>2007-09-14 12:26:07 +0000
commitf2a67250266080d05742d961e544e7b8fba2611a (patch)
tree23f10e3346e826cbb6c5e924726d8ee961b89d0c
parenta029953596adaed49a5b0346acd5a867eff91a57 (diff)
downloadenigma2-f2a67250266080d05742d961e544e7b8fba2611a.tar.gz
enigma2-f2a67250266080d05742d961e544e7b8fba2611a.zip
allow different skins by specifying a list as skinName, use menu_<menuid> as alternative skin for menus
-rw-r--r--lib/python/Screens/Menu.py10
-rw-r--r--skin.py14
2 files changed, 18 insertions, 6 deletions
diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py
index 1b0ef1a3..5ff929c6 100644
--- a/lib/python/Screens/Menu.py
+++ b/lib/python/Screens/Menu.py
@@ -205,8 +205,14 @@ class Menu(Screen):
for l in plugins.getPluginsForMenu(menuID):
list.append((l[0], boundFunction(l[1], self.session)))
+ # for the skin: first try a menu_<menuID>, then Menu
+ self.skinName = [ ]
+ if menuID is not None:
+ self.skinName.append("menu_" + menuID)
+ self.skinName.append("Menu")
+
self["menu"] = List(list)
-
+
self["actions"] = ActionMap(["OkCancelActions", "MenuActions"],
{
"ok": self.okbuttonClick,
@@ -233,5 +239,5 @@ class MainMenu(Menu):
#add file load functions for the xml-file
def __init__(self, *x):
- Menu.__init__(self, *x)
self.skinName = "Menu"
+ Menu.__init__(self, *x)
diff --git a/skin.py b/skin.py
index 3b448127..13d56cf1 100644
--- a/skin.py
+++ b/skin.py
@@ -286,9 +286,15 @@ def lookupScreen(name):
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)
@@ -296,7 +302,7 @@ def readSkin(screen, skin, name, desktop):
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 = [ ]