Commit 3acea9b2730b3d6edee3d92d0e911051d9e150db
1 parent
69661eb1
Exists in
master
and in
6 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] | ... | ... |