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("Application") i = misc.append_menu_item(menu, -1, _('Generate Code')) misc.bind_menu_item_after( widget, i, self.generate_code) # a property, but it can be called # paste if clipboard.check("menubar"): i = misc.append_menu_item(menu, -1, _('Paste MenuBar\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, clipboard.paste, self) elif clipboard.check("toolbar"): i = misc.append_menu_item(menu, -1, _('Paste ToolBar\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, clipboard.paste, self) else: i = misc.append_menu_item(menu, -1, _('Paste Toplevel Window\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, clipboard.paste, self) if not clipboard.check("window"): i.Enable(False) return menu
def _create_popup_menu(self, widget=None): if widget is None: widget = self.widget menu = misc.wxGladePopupMenu(self.name) i = misc.append_menu_item(menu, -1, _('Remove Panel\tDel'), 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) i = misc.append_menu_item(menu, -1, _('Paste Sizer\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, clipboard.paste, self) if self.top_sizer is not None or not clipboard.check("sizer"): i.Enable(False) if self.sizer and not self.sizer.is_virtual( ) and self.sizer._can_add_insert_slots(): menu.AppendSeparator() # 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() i = misc.append_menu_item(menu, -1, _('Preview')) misc.bind_menu_item_after(widget, i, self.preview_parent) return menu
def _create_popup_menu(self, widget=None): if widget is None: widget = self.widget menu = misc.wxGladePopupMenu(self.name) i = misc.append_menu_item(menu, -1, _('Remove Panel\tDel'), 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) i = misc.append_menu_item(menu, -1, _('Paste Sizer\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, clipboard.paste, self) if self.top_sizer is not None or not clipboard.check("sizer"): i.Enable(False) menu.AppendSeparator() if self.sizer: self.sizer._add_popup_menu_items(menu, self, widget) i = misc.append_menu_item(menu, -1, _('Preview')) misc.bind_menu_item_after(widget, i, self.preview_parent) return menu
def _create_popup_menu(self, widget): # menu title if self.parent.IS_SIZER and "cols" in self.parent.properties: rows, cols = self.parent._get_actual_rows_cols() # calculate row and pos of our slot row, col = self.parent._get_row_col(self.pos) menu = wx.Menu(_("Slot %d/%d" % (row + 1, col + 1))) elif "pos" in self.properties: menu = wx.Menu(_("Slot %d" % self.pos)) else: menu = wx.Menu(_("Slot")) # edit: paste i = misc.append_menu_item(menu, -1, _('Paste\tCtrl+V'), wx.ART_PASTE) misc.bind_menu_item_after(widget, i, clipboard.paste, self) if not clipboard.check("widget", "sizer"): i.Enable(False) menu.AppendSeparator() # slot actions if self.parent.IS_SIZER or self.parent.CHILDREN == -1: if not "cols" in self.parent.properties: i = misc.append_menu_item(menu, -1, _('Remove Slot\tDel'), wx.ART_DELETE) misc.bind_menu_item_after(widget, i, self.remove) if self.parent.IS_SIZER and len(self.parent.children) <= 1: i.Enable(False) else: # if inside a grid sizer: allow removal of empty rows/cols # check whether all slots in same row/col are empty row_is_empty = col_is_empty = True for pos, child in enumerate(self.parent.children): child_row, child_col = self.parent._get_row_col(pos) if child_row == row and not child.IS_SLOT: row_is_empty = False if child_col == col and not child.IS_SLOT: col_is_empty = False # allow removal of empty row i = misc.append_menu_item(menu, -1, _('Remove Row %d' % (row + 1))) misc.bind_menu_item_after(widget, i, self.parent.remove_row, self.pos) if not row_is_empty or rows <= 1: i.Enable(False) # allow removal of empty col i = misc.append_menu_item(menu, -1, _('Remove Column %d' % (col + 1))) misc.bind_menu_item_after(widget, i, self.parent.remove_col, self.pos) if not col_is_empty or cols <= 1: i.Enable(False) menu.AppendSeparator() if hasattr(self.parent, "_add_parent_popup_menu_items"): self.parent._add_parent_popup_menu_items(menu, self, widget) p = self.toplevel_parent_window # misc.get_toplevel_widget(self.sizer) #if p is not None and p.preview_is_visible(): if 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_after(widget, i, p.preview) return menu