def create_methods(self, methods, menu): items = sorted(methods.items()) for key, val in items: if type(val) == dict: item = self.create_methods(val, wx.Menu()) id = self.get_id() compat_wx.extend_menu(menu, id, key, item) else: id = self.get_id() menu.Append(id, key) compat_wx.handle_event_1(self.parent, wx.EVT_MENU, self.OnPopupFunction, id) self.functions[id] = val return menu
def build_menu(parent, menu_spec): global menu_item_id menu = wx.Menu() for name, func in menu_spec: if util.is_sequence(func): menu_item_id = wx.NewId() compat_wx.extend_menu(menu, menu_item_id, name, build_menu(parent, func)) elif name == None: menu.AppendSeparator() else: menu_item_id = wx.NewId() menu.Append(menu_item_id, name) compat_wx.handle_event_1(parent, wx.EVT_MENU, func, menu_item_id) return menu
def create_methods(self, methods, menu): items = methods.items() items.sort() for key, val in items: if type(val) == dict: item = self.create_methods(val, wx.Menu()) id = self.get_id() compat_wx.extend_menu(menu, id, key, item) else: id = self.get_id() menu.Append(id, key) compat_wx.handle_event_1(self.parent, wx.EVT_MENU, self.OnPopupFunction, id) self.functions[id] = val return menu
def create_menu(self, members, methods, type, type_name, extra_methods): menu = wx.Menu() # Top line if self.mode == HELP_MODE: menu.Append(0, "Help") id = self.get_id() menu.Append(id, type_name + " Image") menu.AppendSeparator() id = self.get_id() menu.Append(id, "new reference") compat_wx.handle_event_1(self.parent, wx.EVT_MENU, self.OnCreateReference, id) id = self.get_id() menu.Append(id, "new copy") compat_wx.handle_event_1(self.parent, wx.EVT_MENU, self.OnCreateCopy, id) id = self.get_id() menu.Append(id, "delete image") compat_wx.handle_event_1(self.parent, wx.EVT_MENU, self.OnDeleteImage, id) menu.AppendSeparator() info_menu = wx.Menu() id = self.get_id() compat_wx.extend_menu(menu, id, "Info", info_menu) # Variables for member in members: id = self.get_id() info_menu.Append(id, member) # Methods menu.AppendSeparator() self.functions = {} menu = self.create_methods(methods, menu) # Extra methods if len(extra_methods): menu.AppendSeparator() menu = self.create_extra_methods(extra_methods, menu) return menu