From a00db00acbb9b09eeeeea2bfb8aaa80740926139 Mon Sep 17 00:00:00 2001 From: paulojamorim Date: Wed, 25 Nov 2009 15:44:00 +0000 Subject: [PATCH] ENH: Popup menu in the right button --- invesalius/data/viewer_slice.py | 16 +++++++++++++--- invesalius/mode.py | 13 ++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/invesalius/data/viewer_slice.py b/invesalius/data/viewer_slice.py index 1e2bc1b..6df4130 100755 --- a/invesalius/data/viewer_slice.py +++ b/invesalius/data/viewer_slice.py @@ -52,6 +52,7 @@ class Viewer(wx.Panel): self.modes = []#['DEFAULT'] self.left_pressed = 0 self.right_pressed = 0 + self.last_position_mouse_move = () # All renderers and image actors in this viewer self.slice_data_list = [] @@ -104,8 +105,13 @@ class Viewer(wx.Panel): def OnContextMenu(self, evt): self.right_pressed = 0 - self.PopupMenu(self.menu) - + if (self.last_position_mouse_move ==\ + self.interactor.GetLastEventPosition()): + self.PopupMenu(self.menu) + + evt.Skip() + + def SetPopupMenu(self, menu): self.menu = menu @@ -253,6 +259,9 @@ class Viewer(wx.Panel): def OnRightClick(self, evt, obj): print "OnRightClick" + self.last_position_mouse_move = \ + self.interactor.GetLastEventPosition() + self.right_pressed = 1 def OnReleaseRightButton(self, evt, obj): @@ -261,7 +270,6 @@ class Viewer(wx.Panel): ps.Publisher().sendMessage('Update slice viewer') def OnLeftClick(self, evt, obj): - print "OnLeftClick" self.left_pressed = 1 def OnZoomLeftClick(self, evt, obj): @@ -640,6 +648,8 @@ class Viewer(wx.Panel): coord[2]) def OnZoomMoveRight(self, evt, obj): + + if (self.right_pressed): print "OnZoomMoveRight" evt.Dolly() diff --git a/invesalius/mode.py b/invesalius/mode.py index a0ed232..67a113d 100644 --- a/invesalius/mode.py +++ b/invesalius/mode.py @@ -97,19 +97,10 @@ class SliceMode(object): level = const.LEVEL[state] max_level = max(self.stack.keys()) - - + # Insert new state into stack self.stack[level] = state - #print "ADD---->" - #print self.stack - #print level - #print state - # Only will affect InVesalius behaviour if it is the highest - # level in stack - #if level == max_level: - # let viewer slice and other classes know this - # change (cursor, interaction, etc) + ps.Publisher().sendMessage('Set slice mode', state) def RemoveState(self, state): -- libgit2 0.21.2