Commit 3acea9b2730b3d6edee3d92d0e911051d9e150db

Authored by Paulo Henrique Junqueira Amorim
1 parent 69661eb1

ENH: Mouse scroll to change slices

Showing 1 changed file with 32 additions and 6 deletions   Show diff stats
invesalius/data/viewer_slice.py
... ... @@ -227,6 +227,10 @@ class Viewer(wx.Panel):
227 227 style.AddObserver("MouseMoveEvent", self.OnZoomMoveRight)
228 228 style.AddObserver("RightButtonReleaseEvent", self.OnVtkRightRelease)
229 229  
  230 + #Scroll change slice
  231 + style.AddObserver("MouseWheelForwardEvent",self.OnScrollForward)
  232 + style.AddObserver("MouseWheelBackwardEvent", self.OnScrollBackward)
  233 +
230 234 if ((state == const.STATE_ZOOM) or (state == const.STATE_ZOOM_SL)):
231 235 self.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnZoom)
232 236 else:
... ... @@ -234,7 +238,6 @@ class Viewer(wx.Panel):
234 238  
235 239 self.style = style
236 240 self.interactor.SetInteractorStyle(style)
237   -
238 241  
239 242 def QuitRubberBandZoom(self, evt, obj):
240 243 style = vtk.vtkInteractorStyleImage()
... ... @@ -1190,6 +1193,7 @@ class Viewer(wx.Panel):
1190 1193 (self.orientation, pos))
1191 1194  
1192 1195 def OnScrollBar(self, evt=None):
  1196 + print "...................................."
1193 1197 pos = self.scroll.GetThumbPosition()
1194 1198 self.set_slice_number(pos)
1195 1199 #self.UpdateSlice3D(pos)
... ... @@ -1204,26 +1208,48 @@ class Viewer(wx.Panel):
1204 1208 self.UpdateSlice3D(self.pos)
1205 1209 evt.Skip()
1206 1210  
1207   - def OnKeyDown(self, evt=None):
  1211 + def OnKeyDown(self, evt=None, obj=None):
1208 1212 pos = self.scroll.GetThumbPosition()
1209 1213  
1210 1214 min = 0
1211 1215 max = self.actor.GetSliceNumberMax()
1212 1216  
1213 1217 if (evt.GetKeyCode() == wx.WXK_UP and pos > min):
1214   - pos = pos - 1
1215   - self.scroll.SetThumbPosition(pos)
  1218 + self.OnScrollForward()
1216 1219 self.OnScrollBar()
  1220 +
1217 1221 elif (evt.GetKeyCode() == wx.WXK_DOWN and pos < max):
1218   - pos = pos + 1
1219   - self.scroll.SetThumbPosition(pos)
  1222 + self.OnScrollBackward()
1220 1223 self.OnScrollBar()
  1224 +
1221 1225 self.UpdateSlice3D(pos)
1222 1226 self.interactor.Render()
1223 1227  
1224 1228 if evt:
1225 1229 evt.Skip()
1226 1230  
  1231 + def OnScrollForward(self, evt=None, obj=None):
  1232 + pos = self.scroll.GetThumbPosition()
  1233 + min = 0
  1234 +
  1235 + if(pos > min):
  1236 + pos = pos - 1
  1237 + self.scroll.SetThumbPosition(pos)
  1238 + self.OnScrollBar()
  1239 +
  1240 +
  1241 +
  1242 + def OnScrollBackward(self, evt=None, obj=None):
  1243 + pos = self.scroll.GetThumbPosition()
  1244 + max = self.actor.GetSliceNumberMax()
  1245 +
  1246 + if(pos < max):
  1247 + pos = pos + 1
  1248 + self.scroll.SetThumbPosition(pos)
  1249 + self.OnScrollBar()
  1250 +
  1251 +
  1252 +
1227 1253 def OnSize(self, evt):
1228 1254 w, h = evt.GetSize()
1229 1255 w = float(w) / self.layout[0]
... ...