Commit 102faa25184697409ffd6980f1d53090b18ef2fe
1 parent
0da93f69
Exists in
master
and in
68 other branches
ADD: Restructuring of the ways to bring the tools
Showing
3 changed files
with
51 additions
and
32 deletions
Show diff stats
invesalius/constants.py
| ... | ... | @@ -328,10 +328,14 @@ SLICE_STATE_WL = 2 |
| 328 | 328 | SLICE_STATE_SPIN = 3 |
| 329 | 329 | SLICE_STATE_ZOOM = 4 |
| 330 | 330 | SLICE_STATE_ZOOM_SL = 5 |
| 331 | +SLICE_STATE_CROSS = 6 | |
| 332 | +SLICE_STATE_SCROLL = 7 | |
| 331 | 333 | |
| 332 | 334 | LEVEL = {SLICE_STATE_DEFAULT: 0, |
| 333 | 335 | SLICE_STATE_EDITOR: 1, |
| 334 | 336 | SLICE_STATE_WL: 2, |
| 335 | 337 | SLICE_STATE_SPIN: 2, |
| 336 | 338 | SLICE_STATE_ZOOM: 2, |
| 337 | - SLICE_STATE_ZOOM_SL: 2} | |
| 339 | + SLICE_STATE_ZOOM_SL: 2, | |
| 340 | + SLICE_STATE_CROSS: 2, | |
| 341 | + SLICE_STATE_SCROLL: 2} | ... | ... |
invesalius/data/viewer_slice.py
| ... | ... | @@ -33,6 +33,7 @@ import constants as const |
| 33 | 33 | import cursor_actors as ca |
| 34 | 34 | import data.slice_ as sl |
| 35 | 35 | import data.vtk_utils as vtku |
| 36 | +import mode as md | |
| 36 | 37 | import project |
| 37 | 38 | from slice_data import SliceData |
| 38 | 39 | |
| ... | ... | @@ -74,7 +75,8 @@ class Viewer(wx.Panel): |
| 74 | 75 | |
| 75 | 76 | self.__bind_events() |
| 76 | 77 | self.__bind_events_wx() |
| 77 | - | |
| 78 | + | |
| 79 | + md.SliceMode() | |
| 78 | 80 | |
| 79 | 81 | def __init_gui(self): |
| 80 | 82 | |
| ... | ... | @@ -227,12 +229,17 @@ class Viewer(wx.Panel): |
| 227 | 229 | self.append_mode('EDITOR') |
| 228 | 230 | self.mouse_pressed = 0 |
| 229 | 231 | self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK)) |
| 230 | - | |
| 232 | + #------------------------------------------ | |
| 233 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_EDITOR) | |
| 234 | + | |
| 231 | 235 | def __set_mode_spin(self, pubsub_evt): |
| 232 | 236 | self.append_mode('SPIN') |
| 233 | 237 | self.mouse_pressed = 0 |
| 234 | 238 | self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZING)) |
| 235 | - | |
| 239 | + #------------------------------------------ | |
| 240 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_SPIN) | |
| 241 | + | |
| 242 | + | |
| 236 | 243 | def __set_mode_zoom(self, pubsub_evt): |
| 237 | 244 | #print "Zoom" |
| 238 | 245 | self.append_mode('ZOOM') |
| ... | ... | @@ -240,33 +247,46 @@ class Viewer(wx.Panel): |
| 240 | 247 | ICON_IMAGE = wx.Image(os.path.join(const.ICON_DIR, |
| 241 | 248 | "tool_zoom.png"),wx.BITMAP_TYPE_PNG) |
| 242 | 249 | self.interactor.SetCursor(wx.CursorFromImage(ICON_IMAGE)) |
| 243 | - | |
| 250 | + #------------------------------------------ | |
| 251 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_ZOOM) | |
| 252 | + | |
| 244 | 253 | def __set_mode_pan(self, pubsub_evt): |
| 245 | 254 | self.append_mode('PAN') |
| 246 | 255 | self.mouse_pressed = 0 |
| 247 | 256 | self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZING)) |
| 248 | - | |
| 257 | + #------------------------------------------ | |
| 258 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_PAN) | |
| 259 | + | |
| 249 | 260 | def __set_mode_zoom_select(self, pubsub_evt): |
| 250 | 261 | self.append_mode('ZOOMSELECT') |
| 251 | 262 | ICON_IMAGE = wx.Image(os.path.join(const.ICON_DIR, |
| 252 | 263 | "tool_zoom.png"),wx.BITMAP_TYPE_PNG) |
| 253 | 264 | self.interactor.SetCursor(wx.CursorFromImage(ICON_IMAGE)) |
| 254 | - | |
| 265 | + #------------------------------------------ | |
| 266 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_SL) | |
| 267 | + | |
| 255 | 268 | def __set_mode_window_level(self, pubsub_evt): |
| 256 | 269 | self.append_mode('WINDOWLEVEL') |
| 257 | 270 | self.mouse_pressed = 0 |
| 258 | 271 | self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZING)) |
| 259 | 272 | self.interactor.Render() |
| 273 | + #------------------------------------------ | |
| 274 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_WL) | |
| 275 | + | |
| 260 | 276 | |
| 261 | 277 | def __set_mode_slice_scroll(self, pubsub_evt): |
| 262 | 278 | self.append_mode('CHANGESLICE') |
| 263 | 279 | self.mouse_pressed = 0 |
| 264 | 280 | self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZENS)) |
| 281 | + #------------------------------------------ | |
| 282 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_SCROLL) | |
| 265 | 283 | |
| 266 | 284 | def __set_mode_cross(self, pubsub_evt): |
| 267 | 285 | self.append_mode('CROSS') |
| 268 | 286 | self.mouse_pressed = 0 |
| 269 | 287 | self.cross_actor.VisibilityOn() |
| 288 | + #------------------------------------------ | |
| 289 | + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_CROSS) | |
| 270 | 290 | |
| 271 | 291 | def OnWindowLevelMove(self, evt, obj): |
| 272 | 292 | if self.mouse_pressed: | ... | ... |
invesalius/mode.py
| ... | ... | @@ -17,19 +17,14 @@ |
| 17 | 17 | # detalhes. |
| 18 | 18 | #-------------------------------------------------------------------------- |
| 19 | 19 | |
| 20 | +import wx.lib.pubsub as ps | |
| 21 | + | |
| 22 | + | |
| 20 | 23 | # mode.py |
| 21 | 24 | # to be instanced inside Controller (control.py) |
| 22 | 25 | |
| 23 | 26 | |
| 24 | -# TODO: Add to constants.py: | |
| 25 | -#-------------------- | |
| 26 | -# SLICE MODE | |
| 27 | -SLICE_STATE_DEFAULT = 0 | |
| 28 | -SLICE_STATE_EDITOR = 1 | |
| 29 | -SLICE_STATE_WL = 2 | |
| 30 | -SLICE_STATE_SPIN = 3 | |
| 31 | -SLICE_STATE_ZOOM = 4 | |
| 32 | -SLICE_STATE_ZOOM_SL = 5 | |
| 27 | + | |
| 33 | 28 | # IMPORTANT: When adding a new state, remember o insert it into LEVEL |
| 34 | 29 | # dictionary |
| 35 | 30 | |
| ... | ... | @@ -38,19 +33,19 @@ SLICE_STATE_ZOOM_SL = 5 |
| 38 | 33 | # default is the only level 0 |
| 39 | 34 | # states controlled somehow by taskmenu are level 1 |
| 40 | 35 | # states controlled by toolbar are level 2 |
| 41 | -LEVEL = {SLICE_STATE_DEFAULT: 0, | |
| 42 | - SLICE_STATE_EDITOR: 1, | |
| 43 | - SLICE_STATE_WL: 2, | |
| 44 | - SLICE_STATE_SPIN: 2, | |
| 45 | - SLICE_STATE_ZOOM: 2, | |
| 46 | - SLICE_STATE_ZOOM_SL: 2} | |
| 36 | +#LEVEL = {SLICE_STATE_DEFAULT: 0, | |
| 37 | +# SLICE_STATE_EDITOR: 1, | |
| 38 | +# SLICE_STATE_WL: 2, | |
| 39 | +# SLICE_STATE_SPIN: 2, | |
| 40 | +# SLICE_STATE_ZOOM: 2, | |
| 41 | +# SLICE_STATE_ZOOM_SL: 2} | |
| 47 | 42 | #---------------------- |
| 48 | 43 | # TODO: Add to viewer_slice.py: |
| 49 | 44 | |
| 50 | - ps.Publisher().subscribe(self.OnSetMode, 'Set slice mode') | |
| 45 | +#ps.Publisher().subscribe(self.OnSetMode, 'Set slice mode') | |
| 51 | 46 | |
| 52 | -def OnSetMode(self, pubsub_evt): | |
| 53 | - mode = pubsub_evt.data | |
| 47 | +#def OnSetMode(self, pubsub_evt): | |
| 48 | +# mode = pubsub_evt.data | |
| 54 | 49 | # according to mode, set cursor, interaction, etc |
| 55 | 50 | #---------------------- |
| 56 | 51 | # TODO: Add GUI classes (frame, tasks related to slice, toolbar): |
| ... | ... | @@ -59,11 +54,11 @@ def OnSetMode(self, pubsub_evt): |
| 59 | 54 | # viewer_slice directly |
| 60 | 55 | |
| 61 | 56 | # example - pseudo code |
| 62 | -def OnToggleButtonSpin(self, evt) | |
| 63 | - if evt.toggle: # doesn't exist, just to illustrate | |
| 64 | - ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_ZOOM) | |
| 65 | - else: | |
| 66 | - ps.Publisher().subscribe('Disable mode', const.SLICE_STATE_ZOOM) | |
| 57 | +#def OnToggleButtonSpin(self, evt) | |
| 58 | +# if evt.toggle: # doesn't exist, just to illustrate | |
| 59 | +# ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_ZOOM) | |
| 60 | +# else: | |
| 61 | +# ps.Publisher().subscribe('Disable mode', const.SLICE_STATE_ZOOM) | |
| 67 | 62 | |
| 68 | 63 | |
| 69 | 64 | #---------------------- |
| ... | ... | @@ -83,9 +78,9 @@ class SliceMode(object): |
| 83 | 78 | const.SLICE_STATE_DEFAULT |
| 84 | 79 | |
| 85 | 80 | # bind pubsub evt |
| 86 | - self.bind_events() | |
| 81 | + self.__bind_events() | |
| 87 | 82 | |
| 88 | - def _bind_events(self): | |
| 83 | + def __bind_events(self): | |
| 89 | 84 | ps.Publisher().subscribe(self.OnEnableState, 'Enable mode') |
| 90 | 85 | ps.Publisher().subscribe(self.OnDisableState, 'Disable mode') |
| 91 | 86 | ... | ... |