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] |