Commit 3acea9b2730b3d6edee3d92d0e911051d9e150db
1 parent
69661eb1
Exists in
master
and in
68 other branches
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,6 +227,10 @@ class Viewer(wx.Panel): | ||
227 | style.AddObserver("MouseMoveEvent", self.OnZoomMoveRight) | 227 | style.AddObserver("MouseMoveEvent", self.OnZoomMoveRight) |
228 | style.AddObserver("RightButtonReleaseEvent", self.OnVtkRightRelease) | 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 | if ((state == const.STATE_ZOOM) or (state == const.STATE_ZOOM_SL)): | 234 | if ((state == const.STATE_ZOOM) or (state == const.STATE_ZOOM_SL)): |
231 | self.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnZoom) | 235 | self.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnZoom) |
232 | else: | 236 | else: |
@@ -234,7 +238,6 @@ class Viewer(wx.Panel): | @@ -234,7 +238,6 @@ class Viewer(wx.Panel): | ||
234 | 238 | ||
235 | self.style = style | 239 | self.style = style |
236 | self.interactor.SetInteractorStyle(style) | 240 | self.interactor.SetInteractorStyle(style) |
237 | - | ||
238 | 241 | ||
239 | def QuitRubberBandZoom(self, evt, obj): | 242 | def QuitRubberBandZoom(self, evt, obj): |
240 | style = vtk.vtkInteractorStyleImage() | 243 | style = vtk.vtkInteractorStyleImage() |
@@ -1190,6 +1193,7 @@ class Viewer(wx.Panel): | @@ -1190,6 +1193,7 @@ class Viewer(wx.Panel): | ||
1190 | (self.orientation, pos)) | 1193 | (self.orientation, pos)) |
1191 | 1194 | ||
1192 | def OnScrollBar(self, evt=None): | 1195 | def OnScrollBar(self, evt=None): |
1196 | + print "...................................." | ||
1193 | pos = self.scroll.GetThumbPosition() | 1197 | pos = self.scroll.GetThumbPosition() |
1194 | self.set_slice_number(pos) | 1198 | self.set_slice_number(pos) |
1195 | #self.UpdateSlice3D(pos) | 1199 | #self.UpdateSlice3D(pos) |
@@ -1204,26 +1208,48 @@ class Viewer(wx.Panel): | @@ -1204,26 +1208,48 @@ class Viewer(wx.Panel): | ||
1204 | self.UpdateSlice3D(self.pos) | 1208 | self.UpdateSlice3D(self.pos) |
1205 | evt.Skip() | 1209 | evt.Skip() |
1206 | 1210 | ||
1207 | - def OnKeyDown(self, evt=None): | 1211 | + def OnKeyDown(self, evt=None, obj=None): |
1208 | pos = self.scroll.GetThumbPosition() | 1212 | pos = self.scroll.GetThumbPosition() |
1209 | 1213 | ||
1210 | min = 0 | 1214 | min = 0 |
1211 | max = self.actor.GetSliceNumberMax() | 1215 | max = self.actor.GetSliceNumberMax() |
1212 | 1216 | ||
1213 | if (evt.GetKeyCode() == wx.WXK_UP and pos > min): | 1217 | if (evt.GetKeyCode() == wx.WXK_UP and pos > min): |
1214 | - pos = pos - 1 | ||
1215 | - self.scroll.SetThumbPosition(pos) | 1218 | + self.OnScrollForward() |
1216 | self.OnScrollBar() | 1219 | self.OnScrollBar() |
1220 | + | ||
1217 | elif (evt.GetKeyCode() == wx.WXK_DOWN and pos < max): | 1221 | elif (evt.GetKeyCode() == wx.WXK_DOWN and pos < max): |
1218 | - pos = pos + 1 | ||
1219 | - self.scroll.SetThumbPosition(pos) | 1222 | + self.OnScrollBackward() |
1220 | self.OnScrollBar() | 1223 | self.OnScrollBar() |
1224 | + | ||
1221 | self.UpdateSlice3D(pos) | 1225 | self.UpdateSlice3D(pos) |
1222 | self.interactor.Render() | 1226 | self.interactor.Render() |
1223 | 1227 | ||
1224 | if evt: | 1228 | if evt: |
1225 | evt.Skip() | 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 | def OnSize(self, evt): | 1253 | def OnSize(self, evt): |
1228 | w, h = evt.GetSize() | 1254 | w, h = evt.GetSize() |
1229 | w = float(w) / self.layout[0] | 1255 | w = float(w) / self.layout[0] |