Commit 27d086a46c3b84acefc4bb21872b1059f540a8d5
1 parent
e4353cf4
Exists in
master
and in
6 other branches
ADD: Pop-up menu with image tiling (some label's and event)
Showing
2 changed files
with
33 additions
and
6 deletions
Show diff stats
invesalius/constants.py
@@ -160,7 +160,7 @@ WINDOW_LEVEL = {"Abdomen":(350,50), | @@ -160,7 +160,7 @@ WINDOW_LEVEL = {"Abdomen":(350,50), | ||
160 | "Vasculature - Hard":(240,80), | 160 | "Vasculature - Hard":(240,80), |
161 | "Vasculature - Soft":(650,160)} | 161 | "Vasculature - Soft":(650,160)} |
162 | 162 | ||
163 | -REDUCE_IMAGEDATA_QUALITY = 0 | 163 | +REDUCE_IMAGEDATA_QUALITY = 1 |
164 | 164 | ||
165 | # if 1, use vtkVolumeRaycastMapper, if 0, use vtkFixedPointVolumeRayCastMapper | 165 | # if 1, use vtkVolumeRaycastMapper, if 0, use vtkFixedPointVolumeRayCastMapper |
166 | TYPE_RAYCASTING_MAPPER = 0 | 166 | TYPE_RAYCASTING_MAPPER = 0 |
@@ -216,3 +216,14 @@ FILETYPE_PS = wx.NewId() | @@ -216,3 +216,14 @@ FILETYPE_PS = wx.NewId() | ||
216 | FILETYPE_POV = wx.NewId() | 216 | FILETYPE_POV = wx.NewId() |
217 | FILETYPE_OBJ = wx.NewId() | 217 | FILETYPE_OBJ = wx.NewId() |
218 | 218 | ||
219 | +IMAGE_TILING = {"1 x 1":(1,1), "1 x 2":(1,2), | ||
220 | + "1 x 3":(1,3), "1 x 4":(1,4), | ||
221 | + "2 x 1":(2,1), "2 x 2":(2,2), | ||
222 | + "2 x 3":(2,3), "2 x 4":(2,4), | ||
223 | + "3 x 1":(3,1), "3 x 2":(3,2), | ||
224 | + "3 x 3":(3,3), "3 x 4":(3,4), | ||
225 | + "4 x 1":(4,1), "4 x 2":(4,2), | ||
226 | + "4 x 3":(4,3), "4 x 4":(4,4), | ||
227 | + "4 x 5":(4,5), "5 x 4":(5,4)} | ||
228 | + | ||
229 | + |
invesalius/gui/widgets/slice_menu.py
@@ -29,9 +29,9 @@ class SliceMenu(wx.Menu): | @@ -29,9 +29,9 @@ class SliceMenu(wx.Menu): | ||
29 | def __init__(self): | 29 | def __init__(self): |
30 | wx.Menu.__init__(self) | 30 | wx.Menu.__init__(self) |
31 | self.ID_TO_TOOL_ITEM = {} | 31 | self.ID_TO_TOOL_ITEM = {} |
32 | - | ||
33 | - submenu_wl = wx.Menu() | ||
34 | 32 | ||
33 | + #------------ Sub menu of the window and level ---------- | ||
34 | + submenu_wl = wx.Menu() | ||
35 | new_id = wx.NewId() | 35 | new_id = wx.NewId() |
36 | wl_item = wx.MenuItem(submenu_wl, new_id,\ | 36 | wl_item = wx.MenuItem(submenu_wl, new_id,\ |
37 | 'Default', kind=wx.ITEM_RADIO) | 37 | 'Default', kind=wx.ITEM_RADIO) |
@@ -45,7 +45,7 @@ class SliceMenu(wx.Menu): | @@ -45,7 +45,7 @@ class SliceMenu(wx.Menu): | ||
45 | submenu_wl.AppendItem(wl_item) | 45 | submenu_wl.AppendItem(wl_item) |
46 | self.ID_TO_TOOL_ITEM[new_id] = name | 46 | self.ID_TO_TOOL_ITEM[new_id] = name |
47 | 47 | ||
48 | - | 48 | + #------------ Sub menu of the pseudo colors ------------- |
49 | submenu_pseudo_colors = wx.Menu() | 49 | submenu_pseudo_colors = wx.Menu() |
50 | new_id = wx.NewId() | 50 | new_id = wx.NewId() |
51 | color_item = wx.MenuItem(submenu_pseudo_colors, new_id,\ | 51 | color_item = wx.MenuItem(submenu_pseudo_colors, new_id,\ |
@@ -60,16 +60,28 @@ class SliceMenu(wx.Menu): | @@ -60,16 +60,28 @@ class SliceMenu(wx.Menu): | ||
60 | submenu_pseudo_colors.AppendItem(color_item) | 60 | submenu_pseudo_colors.AppendItem(color_item) |
61 | self.ID_TO_TOOL_ITEM[new_id] = name | 61 | self.ID_TO_TOOL_ITEM[new_id] = name |
62 | 62 | ||
63 | + #------------ Sub menu of the image tiling --------------- | ||
64 | + submenu_image_tiling = wx.Menu() | ||
65 | + for name in sorted(const.IMAGE_TILING): | ||
66 | + new_id = wx.NewId() | ||
67 | + image_tiling_item = wx.MenuItem(submenu_image_tiling, new_id,\ | ||
68 | + name, kind=wx.ITEM_RADIO) | ||
69 | + submenu_image_tiling.AppendItem(image_tiling_item) | ||
70 | + self.ID_TO_TOOL_ITEM[new_id] = name | ||
71 | + | ||
72 | + # Add sub itens in the menu | ||
63 | self.AppendMenu(-1, "Window Width & Level", submenu_wl) | 73 | self.AppendMenu(-1, "Window Width & Level", submenu_wl) |
64 | self.AppendMenu(-1, "Pseudo Colors", submenu_pseudo_colors) | 74 | self.AppendMenu(-1, "Pseudo Colors", submenu_pseudo_colors) |
65 | - | 75 | + self.AppendMenu(-1, "Image Tiling", submenu_image_tiling) |
76 | + | ||
66 | # It doesn't work in Linux | 77 | # It doesn't work in Linux |
67 | self.Bind(wx.EVT_MENU, self.OnPopup) | 78 | self.Bind(wx.EVT_MENU, self.OnPopup) |
68 | # In Linux the bind must be putted in the submenu | 79 | # In Linux the bind must be putted in the submenu |
69 | if sys.platform == 'linux2': | 80 | if sys.platform == 'linux2': |
70 | submenu_wl.Bind(wx.EVT_MENU, self.OnPopup) | 81 | submenu_wl.Bind(wx.EVT_MENU, self.OnPopup) |
71 | submenu_pseudo_colors.Bind(wx.EVT_MENU, self.OnPopup) | 82 | submenu_pseudo_colors.Bind(wx.EVT_MENU, self.OnPopup) |
72 | - | 83 | + submenu_image_tiling.Bind(wx.EVT_MENU, self.OnPopup) |
84 | + | ||
73 | def OnPopup(self, evt): | 85 | def OnPopup(self, evt): |
74 | 86 | ||
75 | id = evt.GetId() | 87 | id = evt.GetId() |
@@ -90,5 +102,9 @@ class SliceMenu(wx.Menu): | @@ -90,5 +102,9 @@ class SliceMenu(wx.Menu): | ||
90 | ps.Publisher().sendMessage('Change color table from background image', values) | 102 | ps.Publisher().sendMessage('Change color table from background image', values) |
91 | ps.Publisher().sendMessage('Update slice viewer') | 103 | ps.Publisher().sendMessage('Update slice viewer') |
92 | 104 | ||
105 | + elif(key in const.IMAGE_TILING.keys()): | ||
106 | + values = const.IMAGE_TILING[key] | ||
107 | + print "Changed Window to ", values | ||
108 | + | ||
93 | evt.Skip() | 109 | evt.Skip() |
94 | 110 |