Changeset f193585 in sasview for guitools/canvas.py
- Timestamp:
- Apr 28, 2008 5:48:59 PM (16 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 6ed101a
- Parents:
- 9e8dc22
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guitools/canvas.py
r2bf92f2 rf193585 2 2 from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg, _convert_agg_to_wx_bitmap 3 3 from matplotlib.backends.backend_agg import FigureCanvasAgg 4 from matplotlib.backend_bases import MouseEvent 4 5 5 6 class FigureCanvas(FigureCanvasWxAgg): … … 19 20 # doesn't behave as nicely. 20 21 self.idletimer = wx.CallLater(1,self._onDrawIdle) 22 # Support for mouse wheel 23 self.Bind(wx.EVT_MOUSEWHEEL, self._onMouseWheel) 24 21 25 22 26 def draw_idle(self, *args, **kwargs): … … 46 50 else: 47 51 self._isRendered = False 52 def _onMouseWheel(self, evt): 53 """Translate mouse wheel events into matplotlib events""" 54 # Determine mouse location 55 x = evt.GetX() 56 y = self.figure.bbox.height - evt.GetY() 57 58 # Convert delta/rotation/rate into a floating point step size 59 delta = evt.GetWheelDelta() 60 rotation = evt.GetWheelRotation() 61 rate = evt.GetLinesPerAction() 62 #print "delta,rotation,rate",delta,rotation,rate 63 step = rate*float(rotation)/delta 64 65 # Convert to mpl event 66 evt.Skip() 67 self.scroll_event(x, y, step, guiEvent=evt) 68 69 def scroll_event(self, x, y, step=1, guiEvent=None): 70 """ 71 Backend derived classes should call this function on any 72 scroll wheel event. x,y are the canvas coords: 0,0 is lower, 73 left. button and key are as defined in MouseEvent 74 """ 75 button = 'up' if step >= 0 else 'down' 76 self._button = button 77 s = 'scroll_event' 78 event = MouseEvent(s, self, x, y, button, self._key, guiEvent=guiEvent) 79 setattr(event,'step',step) 80 self.callbacks.process(s, event) 81 48 82 49 83 def _onPaint(self, evt): … … 64 98 65 99 evt.Skip() 66 100
Note: See TracChangeset
for help on using the changeset viewer.