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