def OnCreateProfile(self, event): """Main routine for creating a profile. Uses r.profile to create a list of distance,cell value pairs. This is passed to plot to create a line graph of the profile. If the profile transect is in multiple segments, these are drawn as points. Profile transect is drawn, using methods in mapdisp.py """ if len(self.transect) == 0 or len(self.rasterList) == 0: dlg = wx.MessageDialog( parent=self, message= _('You must draw a transect to profile in the map display window.' ), caption=_('Nothing to profile'), style=wx.OK | wx.ICON_INFORMATION | wx.CENTRE) dlg.ShowModal() dlg.Destroy() return self.SetCursor(StockCursor(wx.CURSOR_ARROW)) self.SetupProfile() p = self.CreatePlotList() self.DrawPlot(p)
def OnCreateScatter(self, event): """Main routine for creating a scatterplot. Uses r.stats to create a list of cell value pairs. This is passed to plot to create a scatterplot. """ self.SetCursor(StockCursor(wx.CURSOR_ARROW)) self.SetGraphStyle() wx.BeginBusyCursor() wx.SafeYield() self.SetupScatterplot() p = self.CreatePlotList() if p: self.DrawPlot(p) wx.EndBusyCursor() else: wx.EndBusyCursor() GMessage(_("Nothing to plot."), parent=self)
def OnCreateHist(self, event): """Main routine for creating a histogram. Uses r.stats to create a list of cell value and count/percent/area pairs. This is passed to plot to create a line graph of the histogram. """ try: self.SetCursor(StockCursor(wx.CURSOR_ARROW)) except: pass self.SetGraphStyle() wx.BeginBusyCursor() wx.SafeYield() self.SetupHistogram() p = self.CreatePlotList() self.DrawPlot(p) wx.EndBusyCursor()
def __init__(self, parent, giface, Map): self.parent = parent self.Map = Map self._giface = giface # Emitted when someone registers as mouse event handler self.mouseHandlerRegistered = Signal( "MapWindow.mouseHandlerRegistered") # Emitted when mouse event handler is unregistered self.mouseHandlerUnregistered = Signal( "MapWindow.mouseHandlerUnregistered") # emitted after double click in pointer mode on legend, text, scalebar self.overlayActivated = Signal("MapWindow.overlayActivated") # emitted when overlay should be hidden self.overlayRemoved = Signal("MapWindow.overlayRemoved") # mouse attributes -- position on the screen, begin and end of # dragging, and type of drawing self.mouse = { "begin": [0, 0], # screen coordinates "end": [0, 0], "use": "pointer", "box": "point", } # last east, north coordinates, changes on mouse motion self.lastEN = None # stores overridden cursor self._overriddenCursor = None # dictionary where event types are stored as keys and lists of # handlers for these types as values self.handlersContainer = { wx.EVT_LEFT_DOWN: [], wx.EVT_LEFT_UP: [], wx.EVT_LEFT_DCLICK: [], wx.EVT_MIDDLE_DOWN: [], wx.EVT_MIDDLE_UP: [], wx.EVT_MIDDLE_DCLICK: [], wx.EVT_RIGHT_DOWN: [], wx.EVT_RIGHT_UP: [], wx.EVT_RIGHT_DCLICK: [], wx.EVT_MOTION: [], wx.EVT_ENTER_WINDOW: [], wx.EVT_LEAVE_WINDOW: [], wx.EVT_MOUSEWHEEL: [], wx.EVT_MOUSE_EVENTS: [], } # available cursors self._cursors = { "default": StockCursor(cursorId=wx.CURSOR_ARROW), "cross": StockCursor(cursorId=wx.CURSOR_CROSS), "hand": StockCursor(cursorId=wx.CURSOR_HAND), "pencil": StockCursor(cursorId=wx.CURSOR_PENCIL), "sizenwse": StockCursor(cursorId=wx.CURSOR_SIZENWSE), } # default cursor for window is arrow (at least we rely on it here) # but we need to define attribute here # cannot call SetNamedCursor since it expects the instance # to be a wx window, so setting only the attribute self._cursor = "default" wx.CallAfter(self.InitBinding)