def OnZoomMenu(self, event): """Popup Zoom menu""" point = wx.GetMousePosition() zoommenu = Menu() # Add items to the menu zoomwind = wx.MenuItem( zoommenu, wx.ID_ANY, _("Zoom to computational region (set with g.region)")) zoommenu.AppendItem(zoomwind) self.Bind(wx.EVT_MENU, self.OnZoomToWind, zoomwind) zoomdefault = wx.MenuItem(zoommenu, wx.ID_ANY, _("Zoom to default region")) zoommenu.AppendItem(zoomdefault) self.Bind(wx.EVT_MENU, self.OnZoomToDefault, zoomdefault) zoomsaved = wx.MenuItem(zoommenu, wx.ID_ANY, _("Zoom to saved region")) zoommenu.AppendItem(zoomsaved) self.Bind(wx.EVT_MENU, self.OnZoomToSaved, zoomsaved) savewind = wx.MenuItem(zoommenu, wx.ID_ANY, _("Set computational region from display")) zoommenu.AppendItem(savewind) self.Bind(wx.EVT_MENU, self.OnDisplayToWind, savewind) savezoom = wx.MenuItem(zoommenu, wx.ID_ANY, _("Save display geometry to named region")) zoommenu.AppendItem(savezoom) self.Bind(wx.EVT_MENU, self.SaveDisplayRegion, savezoom) # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. self.PopupMenu(zoommenu) zoommenu.Destroy()
def OnToolMenu(self, event): """Menu for additional tools""" toolMenu = Menu() for label, itype, handler, desc in ( ( _("Switch orientation"), wx.ITEM_NORMAL, self.parent.OnSwitchOrientation, "switchOrientation", ), ( _("Switch maps"), wx.ITEM_NORMAL, self.parent.OnSwitchWindows, "switchMaps", ), ): # Add items to the menu item = wx.MenuItem( parentMenu=toolMenu, id=wx.ID_ANY, text=label, kind=itype ) toolMenu.AppendItem(item) self.parent.GetWindow().Bind(wx.EVT_MENU, handler, item) # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. self.parent.GetWindow().PopupMenu(toolMenu) toolMenu.Destroy()
def _popupMenuEmpty(self): """Create empty popup when multiple different types of items are selected""" menu = Menu() item = wx.MenuItem(menu, wx.ID_ANY, _("No available options")) menu.AppendItem(item) item.Enable(False) self.PopupMenu(menu) menu.Destroy()
def _popupMenuLayer(self): """Create popup menu for layers""" menu = Menu() genv = gisenv() currentLocation, currentMapset = self._isCurrent(genv) item = wx.MenuItem(menu, wx.ID_ANY, _("&Cut")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnMoveMap, item) if not currentMapset: item.Enable(False) item = wx.MenuItem(menu, wx.ID_ANY, _("&Copy")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnCopyMap, item) item = wx.MenuItem(menu, wx.ID_ANY, _("Copy &name")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnCopyName, item) item = wx.MenuItem(menu, wx.ID_ANY, _("&Paste")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnPasteMap, item) if not (currentMapset and self.copy_layer): item.Enable(False) item = wx.MenuItem(menu, wx.ID_ANY, _("&Delete")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnDeleteMap, item) item.Enable(currentMapset) item = wx.MenuItem(menu, wx.ID_ANY, _("&Rename")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnRenameMap, item) item.Enable(currentMapset and len(self.selected_layer) == 1) menu.AppendSeparator() if not isinstance(self._giface, StandaloneGrassInterface): if all([ each.label == genv['LOCATION_NAME'] for each in self.selected_location ]): if len(self.selected_layer) > 1: item = wx.MenuItem(menu, wx.ID_ANY, _("&Display layers")) else: item = wx.MenuItem(menu, wx.ID_ANY, _("&Display layer")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnDisplayLayer, item) item = wx.MenuItem(menu, wx.ID_ANY, _("Show &metadata")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnMetadata, item) self.PopupMenu(menu) menu.Destroy()
def PlotOptionsMenu(self, event): """Popup menu for plot and text options""" point = wx.GetMousePosition() popt = Menu() # Add items to the menu settext = wx.MenuItem(popt, wx.ID_ANY, _("Text settings")) popt.AppendItem(settext) self.Bind(wx.EVT_MENU, self.PlotText, settext) setgrid = wx.MenuItem(popt, wx.ID_ANY, _("Plot settings")) popt.AppendItem(setgrid) self.Bind(wx.EVT_MENU, self.PlotOptions, setgrid) # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. self.PopupMenu(popt) popt.Destroy()
def _popupMenuMapset(self): """Create popup menu for mapsets""" menu = Menu() genv = gisenv() currentLocation, currentMapset = self._isCurrent(genv) item = wx.MenuItem(menu, wx.ID_ANY, _("&Paste")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnPasteMap, item) if not (currentMapset and self.copy_layer): item.Enable(False) item = wx.MenuItem(menu, wx.ID_ANY, _("&Switch mapset")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnSwitchLocationMapset, item) if (self.selected_location[0].label == genv['LOCATION_NAME'] and self.selected_mapset[0].label == genv['MAPSET']): item.Enable(False) self.PopupMenu(menu) menu.Destroy()
def _onMenu(self, data): """Toolbar pop-up menu""" menu = Menu() for icon, handler in data: item = wx.MenuItem(menu, wx.ID_ANY, icon.GetLabel()) item.SetBitmap(icon.GetBitmap(self.parent.iconsize)) menu.AppendItem(item) self.Bind(wx.EVT_MENU, handler, item) self.PopupMenu(menu) menu.Destroy()
def PrintMenu(self, event): """Print options and output menu""" point = wx.GetMousePosition() printmenu = Menu() # Add items to the menu setup = wx.MenuItem(printmenu, id=wx.ID_ANY, text=_("Page setup")) printmenu.AppendItem(setup) self.Bind(wx.EVT_MENU, self.printopt.OnPageSetup, setup) preview = wx.MenuItem(printmenu, id=wx.ID_ANY, text=_("Print preview")) printmenu.AppendItem(preview) self.Bind(wx.EVT_MENU, self.printopt.OnPrintPreview, preview) doprint = wx.MenuItem(printmenu, id=wx.ID_ANY, text=_("Print display")) printmenu.AppendItem(doprint) self.Bind(wx.EVT_MENU, self.printopt.OnDoPrint, doprint) # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. self.PopupMenu(printmenu) printmenu.Destroy()
def _popupMenuElement(self): """Create popup menu for elements""" menu = Menu() item = wx.MenuItem(menu, wx.ID_ANY, _("&Paste")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnPasteMap, item) genv = gisenv() currentLocation, currentMapset = self._isCurrent(genv) if not (currentMapset and self.copy_layer): item.Enable(False) self.PopupMenu(menu) menu.Destroy()
def PrintMenu(self, event): """Print options and output menu """ point = wx.GetMousePosition() printmenu = Menu() for title, handler in ((_("Page setup"), self.OnPageSetup), (_("Print preview"), self.OnPrintPreview), (_("Print display"), self.OnDoPrint)): item = wx.MenuItem(printmenu, wx.ID_ANY, title) printmenu.AppendItem(item) self.Bind(wx.EVT_MENU, handler, item) # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. self.PopupMenu(printmenu) printmenu.Destroy()
def OnAdditionalToolMenu(self, event): """Menu for additional tools""" point = wx.GetMousePosition() toolMenu = Menu() for label, itype, handler, desc in ( (_('Break selected lines/boundaries at intersection'), wx.ITEM_CHECK, self.OnBreak, "breakLine"), (_('Connect selected lines/boundaries'), wx.ITEM_CHECK, self.OnConnect, "connectLine"), (_('Copy categories'), wx.ITEM_CHECK, self.OnCopyCats, "copyCats"), (_('Copy features from (background) vector map'), wx.ITEM_CHECK, self.OnCopy, "copyLine"), (_('Copy attributes'), wx.ITEM_CHECK, self.OnCopyAttrb, "copyAttrs"), (_('Feature type conversion'), wx.ITEM_CHECK, self.OnTypeConversion, "typeConv"), (_('Flip selected lines/boundaries'), wx.ITEM_CHECK, self.OnFlip, "flipLine"), (_('Merge selected lines/boundaries'), wx.ITEM_CHECK, self.OnMerge, "mergeLine"), (_('Snap selected lines/boundaries (only to nodes)'), wx.ITEM_CHECK, self.OnSnap, "snapLine"), (_('Split line/boundary'), wx.ITEM_CHECK, self.OnSplitLine, "splitLine"), (_('Query features'), wx.ITEM_CHECK, self.OnQuery, "queryLine"), (_('Z bulk-labeling of 3D lines'), wx.ITEM_CHECK, self.OnZBulk, "zbulkLine")): # Add items to the menu item = wx.MenuItem(parentMenu=toolMenu, id=wx.ID_ANY, text=label, kind=itype) toolMenu.AppendItem(item) self.MapWindow.Bind(wx.EVT_MENU, handler, item) if self.action['desc'] == desc: item.Check(True) # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. self.MapWindow.PopupMenu(toolMenu) toolMenu.Destroy() if self.action['desc'] == 'addPoint': self.ToggleTool(self.additionalTools, False)
def OnImportMenu(self, event): """Create popup menu for other import options""" # create submenu subMenu = Menu() subitem = wx.MenuItem(subMenu, wx.ID_ANY, _("Link external raster data [r.external]")) subMenu.AppendItem(subitem) self.Bind(wx.EVT_MENU, self.OnLinkGdalLayers, subitem) subitem = wx.MenuItem(subMenu, wx.ID_ANY, _("Link external vector data [v.external]")) subMenu.AppendItem(subitem) self.Bind(wx.EVT_MENU, self.OnLinkOgrLayers, subitem) subMenu.AppendSeparator() subitem = wx.MenuItem(subMenu, wx.ID_ANY, _("Set raster output format [r.external.out]")) subMenu.AppendItem(subitem) self.Bind(wx.EVT_MENU, self.OnRasterOutputFormat, subitem) subitem = wx.MenuItem(subMenu, wx.ID_ANY, _("Set vector output format [v.external.out]")) subMenu.AppendItem(subitem) self.Bind(wx.EVT_MENU, self.OnVectorOutputFormat, subitem) # create menu menu = Menu() item = wx.MenuItem(menu, wx.ID_ANY, _("Unpack GRASS raster map [r.unpack]")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, lambda evt: self.GuiParseCommand("r.unpack"), item) item = wx.MenuItem(menu, wx.ID_ANY, _("Unpack GRASS vector map [v.unpack]")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, lambda evt: self.GuiParseCommand("v.unpack"), item) menu.AppendSeparator() item = wx.MenuItem(menu, wx.ID_ANY, _("Create raster map from x,y,z data [r.in.xyz]")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, lambda evt: self.GuiParseCommand("r.in.xyz"), item) item = wx.MenuItem( menu, wx.ID_ANY, _("Create vector map from x,y,z data [v.in.ascii]")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, lambda evt: self.GuiParseCommand("v.in.ascii"), item) menu.AppendSeparator() menu.AppendMenu(wx.ID_ANY, _("Link external data"), subMenu) menu.AppendSeparator() item = wx.MenuItem(menu, wx.ID_ANY, _("More options...")) menu.AppendItem(item) self.Bind(wx.EVT_MENU, self.OnMoreOptions, item) self.PopupMenu(menu) menu.Destroy()