def _create_popup_menu(self, widget): menu = misc.wxGladePopupMenu(self.name) # edit: remove/copy/cut widgetclass = self.__class__.__name__.lstrip("Edit") i = misc.append_menu_item(menu, -1, _('Remove %s\tDel') % widgetclass, wx.ART_DELETE) misc.bind_menu_item_after(widget, i, self.remove) i = misc.append_menu_item(menu, -1, _('Copy\tCtrl+C'), wx.ART_COPY) misc.bind_menu_item_after(widget, i, clipboard.copy, self) i = misc.append_menu_item(menu, -1, _('Cut\tCtrl+X'), wx.ART_CUT) misc.bind_menu_item_after(widget, i, clipboard.cut, self) menu.AppendSeparator() if self.sizer: self.sizer._add_popup_menu_items(menu, self, widget) # preview (create or close?) p = misc.get_toplevel_widget(self) if p is not None and p.preview_is_visible(): item = _('Close preview (%s)\tF5') % p.name else: item = _('Preview (%s)\tF5') % p.name i = misc.append_menu_item(menu, -1, item) #misc.bind_menu_item_after(widget, i, self.preview_parent) misc.bind_menu_item(widget, i, self.preview_parent) return menu
def _create_popup_menu(self, widget): # remove, hide menu = misc.wxGladePopupMenu(self.name) widgetclass = self.__class__.__name__.lstrip("Edit") if self.widget and self.is_visible(): # hide window i = misc.append_menu_item(menu, -1, _('Hide Design Window')) misc.bind_menu_item_after(widget, i, self.hide_widget) else: i = misc.append_menu_item(menu, -1, _('Show Design Window')) misc.bind_menu_item_after(widget, i, common.app_tree.show_toplevel, None, self) menu.AppendSeparator() i = misc.append_menu_item(menu, -1, _('Remove %s\tDel')%widgetclass, wx.ART_DELETE) misc.bind_menu_item_after(widget, i, self.remove) i = misc.append_menu_item(menu, -1, _('Duplicate %s')%widgetclass, wx.ART_COPY) misc.bind_menu_item_after(widget, i, self.duplicate) # paste i = misc.append_menu_item(menu, -1, _('Paste Sizer\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, self.clipboard_paste) if self.sizer is not None or not clipboard.check("sizer"): i.Enable(False) # preview menu.AppendSeparator() i = misc.append_menu_item(menu, -1, _('Preview %s\tF5'%widgetclass)) misc.bind_menu_item(widget, i, self.preview_parent) return menu
def _create_popup_menu(self, widget): menu = misc.wxGladePopupMenu(self.name) # edit: remove/copy/cut widgetclass = self.__class__.__name__.lstrip("Edit") i = misc.append_menu_item(menu, -1, _('Remove %s\tDel')%widgetclass, wx.ART_DELETE) misc.bind_menu_item_after(widget, i, self.remove) i = misc.append_menu_item( menu, -1, _('Copy\tCtrl+C'), wx.ART_COPY ) misc.bind_menu_item_after(widget, i, clipboard.copy, self) i = misc.append_menu_item( menu, -1, _('Cut\tCtrl+X'), wx.ART_CUT ) misc.bind_menu_item_after(widget, i, clipboard.cut, self) menu.AppendSeparator() # rows/cols if inside a grid sizer if "rows" in self.sizer.PROPERTIES: row, col = self.sizer._get_row_col(self.pos) i = misc.append_menu_item(menu, -1, _('Insert Row before') ) misc.bind_menu_item_after(widget, i, self.sizer.insert_row, self.pos) i = misc.append_menu_item(menu, -1, _('Insert Column before') ) misc.bind_menu_item_after(widget, i, self.sizer.insert_col, self.pos) if row==self.sizer.rows-1: # last row i = misc.append_menu_item(menu, -1, _('Add Row') ) misc.bind_menu_item_after(widget, i, self.sizer.insert_row, -1) if col==self.sizer.cols-1: # last col i = misc.append_menu_item(menu, -1, _('Add Column') ) misc.bind_menu_item_after(widget, i, self.sizer.insert_col, -1) menu.AppendSeparator() if not self.sizer.is_virtual() and self.sizer._can_add_insert_slots(): # slots i = misc.append_menu_item(menu, -1, _('Insert Slot before\tCtrl+I') ) misc.bind_menu_item_after(widget, i, self.sizer.insert_slot, self.pos) i = misc.append_menu_item(menu, -1, _('Insert Slots before...\tCtrl+Shift+I') ) misc.bind_menu_item_after(widget, i, self.sizer.insert_slot, self.pos, True) if self.pos==len(self.sizer.children)-1: # last slot -> allow to add i = misc.append_menu_item(menu, -1, _('Add Slot\tCtrl+A') ) misc.bind_menu_item_after(widget, i, self.sizer.add_slot) i = misc.append_menu_item(menu, -1, _('Add Slots...\tCtrl+Shift+A') ) misc.bind_menu_item_after(widget, i, self.sizer.add_slot, True) menu.AppendSeparator() # preview (create or close?) p = misc.get_toplevel_widget(self) if p is not None and p.preview_is_visible(): item = _('Close preview (%s)\tF5') % p.name else: item = _('Preview (%s)\tF5') % p.name i = misc.append_menu_item( menu, -1, item ) #misc.bind_menu_item_after(widget, i, self.preview_parent) misc.bind_menu_item(widget, i, self.preview_parent) return menu
def create_menu(self, parent): menu_bar = wx.MenuBar() compat.wx_ToolTip_SetDelay(1000) compat.wx_ToolTip_SetAutoPop(30000) append_menu_item = misc.append_menu_item # File menu file_menu = wx.Menu(style=wx.MENU_TEAROFF) NEW = append_menu_item(file_menu, -1, _("&New\tCtrl+N"), wx.ART_NEW) misc.bind_menu_item(self, NEW, self.new_app) item = append_menu_item(file_menu, -1, _("New from &Template...\tShift+Ctrl+N")) misc.bind_menu_item(self, item, self.new_app_from_template) OPEN = append_menu_item(file_menu, -1, _("&Open...\tCtrl+O"), wx.ART_FILE_OPEN) misc.bind_menu_item(self, OPEN, self.open_app) SAVE = append_menu_item(file_menu, -1, _("&Save\tCtrl+S"), wx.ART_FILE_SAVE) misc.bind_menu_item(self, SAVE, self.save_app) SAVE_AS = append_menu_item(file_menu, -1, _("Save As..."), wx.ART_FILE_SAVE_AS) misc.bind_menu_item(self, SAVE_AS, self.save_app_as) item = append_menu_item(file_menu, -1, _("Save As Template...")) misc.bind_menu_item(self, item, self.save_app_as_template) file_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- item = append_menu_item(file_menu, wx.ID_REFRESH, _("&Refresh Preview\tF5")) misc.bind_menu_item(self, item, self.preview) GENERATE_CODE = append_menu_item(file_menu, -1, _("&Generate Code\tCtrl+G"), wx.ART_EXECUTABLE_FILE) misc.bind_menu_item(self, GENERATE_CODE, lambda: common.app_tree.app.generate_code()) file_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- item = append_menu_item(file_menu, -1, _("&Import from XRC...")) misc.bind_menu_item(self, item, self.import_xrc) file_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- EXIT = append_menu_item(file_menu, -1, _('E&xit\tCtrl+Q'), wx.ART_QUIT) misc.bind_menu_item(self, EXIT, self.Close) menu_bar.Append(file_menu, _("&File")) # View menu view_menu = wx.Menu(style=wx.MENU_TEAROFF) TREE = append_menu_item(view_menu, -1, _("Show &Tree\tF2")) misc.bind_menu_item(self, TREE, self.show_tree) PROPS = append_menu_item(view_menu, -1, _("Show &Properties\tF3")) misc.bind_menu_item(self, PROPS, self.show_props_window) RAISE = append_menu_item(view_menu, -1, _("&Raise All\tF4")) misc.bind_menu_item(self, RAISE, self.raise_all) DESIGN = append_menu_item(view_menu, -1, _("Show &Design\tF6")) misc.bind_menu_item(self, DESIGN, self.show_design_window) view_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- item = append_menu_item(view_menu, -1, _('Template Manager...')) misc.bind_menu_item(self, item, self.manage_templates) view_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- item = append_menu_item(view_menu, wx.ID_PREFERENCES, _('Preferences...')) misc.bind_menu_item(self, item, self.edit_preferences) menu_bar.Append(view_menu, _("&View")) # Help menu help_menu = wx.Menu(style=wx.MENU_TEAROFF) MANUAL = append_menu_item(help_menu, -1, _('Manual\tF1'), wx.ART_HELP) misc.bind_menu_item(self, MANUAL, self.show_manual) #item = append_menu_item(help_menu, -1, _('Tutorial')) #misc.bind_menu_item(self, item, self.show_tutorial) help_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- i = append_menu_item(help_menu, -1, _('Mailing list')) misc.bind_menu_item(self, i, self.show_mailing_list) i = append_menu_item(help_menu, -1, _('Bug tracker')) misc.bind_menu_item(self, i, self.show_bug_tracker) i = append_menu_item(help_menu, -1, _('Releases')) misc.bind_menu_item(self, i, self.show_releases) help_menu.AppendSeparator( ) # ---------------------------------------------------------------------------------- item = append_menu_item(help_menu, wx.ID_ABOUT, _('About')) misc.bind_menu_item(self, item, self.show_about_box) menu_bar.Append(help_menu, _('&Help')) parent.SetMenuBar(menu_bar) # Mac tweaks... if wx.Platform == "__WXMAC__": if compat.IS_PHOENIX: wx.PyApp.SetMacAboutMenuItemId(wx.ID_ABOUT) wx.PyApp.SetMacPreferencesMenuItemId(wx.ID_PREFERENCES) wx.PyApp.SetMacExitMenuItemId(wx.ID_EXIT) wx.PyApp.SetMacHelpMenuTitleName(_('&Help')) else: wx.App_SetMacAboutMenuItemId(wx.ID_ABOUT) wx.App_SetMacPreferencesMenuItemId(wx.ID_PREFERENCES) wx.App_SetMacExitMenuItemId(wx.ID_EXIT) wx.App_SetMacHelpMenuTitleName(_('&Help')) # file history support self.file_history = wx.FileHistory(config.preferences.number_history) self.file_history.UseMenu(file_menu) files = common.load_file_history() files.reverse() for path in files: self.file_history.AddFileToHistory(path.strip()) self.Bind(wx.EVT_MENU_RANGE, self.open_from_history, id=wx.ID_FILE1, id2=wx.ID_FILE9)