-
- self["menu"] = MenuList(list)
-
- self["actions"] = ActionMap(["OkCancelActions", "MenuActions"],
+ if menuID is not None:
+ # plugins
+ for l in plugins.getPluginsForMenu(menuID):
+ # check if a plugin overrides an existing menu
+ plugin_menuid = l[2]
+ for x in list:
+ if x[2] == plugin_menuid:
+ list.remove(x)
+ break
+ list.append((l[0], boundFunction(l[1], self.session), l[2], l[3] or 50))
+
+ # 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")
+
+ # Sort by Weight
+ list.sort(key=lambda x: int(x[3]))
+
+ self["menu"] = List(list)
+
+ self["actions"] = NumberActionMap(["OkCancelActions", "MenuActions", "NumberActions"],