diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2007-09-14 12:26:07 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2007-09-14 12:26:07 +0000 |
| commit | f2a67250266080d05742d961e544e7b8fba2611a (patch) | |
| tree | 23f10e3346e826cbb6c5e924726d8ee961b89d0c | |
| parent | a029953596adaed49a5b0346acd5a867eff91a57 (diff) | |
| download | enigma2-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.py | 10 | ||||
| -rw-r--r-- | skin.py | 14 |
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) @@ -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 = [ ] |
