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,
#add file load functions for the xml-file
def __init__(self, *x):
- Menu.__init__(self, *x)
self.skinName = "Menu"
+ Menu.__init__(self, *x)
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 = [ ]