Commit 549869076e2e6a3dcb29bf73c88681fe14cec66e
1 parent
74061db1
Exists in
master
and in
68 other branches
ENH: Popup menu in volume buttons
Showing
1 changed file
with
24 additions
and
11 deletions
Show diff stats
invesalius/gui/default_viewers.py
@@ -220,6 +220,8 @@ class VolumeToolPanel(wx.Panel): | @@ -220,6 +220,8 @@ class VolumeToolPanel(wx.Panel): | ||
220 | BMP_RAYCASTING, style=pbtn.PB_STYLE_SQUARE, | 220 | BMP_RAYCASTING, style=pbtn.PB_STYLE_SQUARE, |
221 | size=(24,24)) | 221 | size=(24,24)) |
222 | self.button_raycasting = button_raycasting | 222 | self.button_raycasting = button_raycasting |
223 | + self.button_raycasting.Bind(wx.EVT_LEFT_DOWN, self.OnButtonRaycasting) | ||
224 | + | ||
223 | 225 | ||
224 | # VOLUME VIEW ANGLE BUTTON | 226 | # VOLUME VIEW ANGLE BUTTON |
225 | BMP_FRONT = wx.Bitmap(ID_TO_BMP[const.VOL_FRONT][1], | 227 | BMP_FRONT = wx.Bitmap(ID_TO_BMP[const.VOL_FRONT][1], |
@@ -228,37 +230,51 @@ class VolumeToolPanel(wx.Panel): | @@ -228,37 +230,51 @@ class VolumeToolPanel(wx.Panel): | ||
228 | BMP_FRONT, size=(24,24), | 230 | BMP_FRONT, size=(24,24), |
229 | style=pbtn.PB_STYLE_SQUARE) | 231 | style=pbtn.PB_STYLE_SQUARE) |
230 | self.button_view = button_view | 232 | self.button_view = button_view |
233 | + self.button_view.Bind(wx.EVT_LEFT_DOWN, self.OnButtonView) | ||
231 | 234 | ||
232 | # VOLUME COLOUR BUTTON | 235 | # VOLUME COLOUR BUTTON |
236 | + if sys.platform == 'linux2': | ||
237 | + size = (28,28) | ||
238 | + sp = 2 | ||
239 | + else: | ||
240 | + size = (24,24) | ||
241 | + sp = 5 | ||
242 | + | ||
233 | button_colour= csel.ColourSelect(self, 111,colour=(0,0,0), | 243 | button_colour= csel.ColourSelect(self, 111,colour=(0,0,0), |
234 | - size=(24,24)) | 244 | + size=size) |
235 | button_colour.Bind(csel.EVT_COLOURSELECT, self.OnSelectColour) | 245 | button_colour.Bind(csel.EVT_COLOURSELECT, self.OnSelectColour) |
236 | self.button_colour = button_colour | 246 | self.button_colour = button_colour |
237 | 247 | ||
238 | - sizer_colour = wx.BoxSizer(wx.HORIZONTAL) | ||
239 | - sizer_colour.Add(button_colour, 0, wx.RIGHT, 15) | ||
240 | - | ||
241 | # SIZER TO ORGANIZE ALL | 248 | # SIZER TO ORGANIZE ALL |
242 | sizer = wx.BoxSizer(wx.VERTICAL) | 249 | sizer = wx.BoxSizer(wx.VERTICAL) |
250 | + sizer.Add(button_colour, 0, wx.ALL, sp) | ||
243 | sizer.Add(button_raycasting, 0, wx.TOP|wx.BOTTOM, 1) | 251 | sizer.Add(button_raycasting, 0, wx.TOP|wx.BOTTOM, 1) |
244 | sizer.Add(button_view, 0, wx.TOP|wx.BOTTOM, 1) | 252 | sizer.Add(button_view, 0, wx.TOP|wx.BOTTOM, 1) |
245 | - #sizer.AddStretchSpacer() | ||
246 | - sizer.Add(sizer_colour, 0, wx.ALL, 5) | ||
247 | - sizer.Fit(self) | ||
248 | 253 | ||
249 | - self.__init_menus() | 254 | + sizer.Fit(self) |
250 | 255 | ||
251 | self.SetSizer(sizer) | 256 | self.SetSizer(sizer) |
252 | self.SetAutoLayout(1) | 257 | self.SetAutoLayout(1) |
253 | self.Update() | 258 | self.Update() |
254 | self.Refresh() | 259 | self.Refresh() |
255 | 260 | ||
261 | + self.__init_menus() | ||
256 | self.__bind_events() | 262 | self.__bind_events() |
257 | 263 | ||
258 | def __bind_events(self): | 264 | def __bind_events(self): |
259 | ps.Publisher().subscribe(self.ChangeButtonColour, | 265 | ps.Publisher().subscribe(self.ChangeButtonColour, |
260 | 'Change volume viewer gui colour') | 266 | 'Change volume viewer gui colour') |
261 | 267 | ||
268 | + | ||
269 | + def OnButtonRaycasting(self, evt): | ||
270 | + print "menu ray" | ||
271 | + # MENU RELATED TO RAYCASTING TYPES | ||
272 | + self.button_raycasting.PopupMenu(self.menu_raycasting) | ||
273 | + | ||
274 | + def OnButtonView(self, evt): | ||
275 | + print "menu view" | ||
276 | + self.button_view.PopupMenu(self.menu_view) | ||
277 | + | ||
262 | def __init_menus(self, pubsub_evt=None): | 278 | def __init_menus(self, pubsub_evt=None): |
263 | # MENU RELATED TO RAYCASTING TYPES | 279 | # MENU RELATED TO RAYCASTING TYPES |
264 | menu = wx.Menu() | 280 | menu = wx.Menu() |
@@ -279,14 +295,12 @@ class VolumeToolPanel(wx.Panel): | @@ -279,14 +295,12 @@ class VolumeToolPanel(wx.Panel): | ||
279 | submenu.AppendItem(item) | 295 | submenu.AppendItem(item) |
280 | ID_TO_TOOL[id] = name | 296 | ID_TO_TOOL[id] = name |
281 | ID_TO_TOOL_ITEM[id] = item | 297 | ID_TO_TOOL_ITEM[id] = item |
282 | - #submenu.Enable(0) | ||
283 | self.submenu_raycasting_tools = submenu | 298 | self.submenu_raycasting_tools = submenu |
284 | menu.AppendMenu(RAYCASTING_TOOLS, "Tools", submenu) | 299 | menu.AppendMenu(RAYCASTING_TOOLS, "Tools", submenu) |
285 | menu.Enable(RAYCASTING_TOOLS, 0) | 300 | menu.Enable(RAYCASTING_TOOLS, 0) |
286 | 301 | ||
287 | self.menu_raycasting = menu | 302 | self.menu_raycasting = menu |
288 | menu.Bind(wx.EVT_MENU, self.OnMenuRaycasting) | 303 | menu.Bind(wx.EVT_MENU, self.OnMenuRaycasting) |
289 | - self.button_raycasting.SetMenu(menu) | ||
290 | 304 | ||
291 | # VOLUME VIEW ANGLE BUTTON | 305 | # VOLUME VIEW ANGLE BUTTON |
292 | menu = wx.Menu() | 306 | menu = wx.Menu() |
@@ -297,7 +311,6 @@ class VolumeToolPanel(wx.Panel): | @@ -297,7 +311,6 @@ class VolumeToolPanel(wx.Panel): | ||
297 | menu.AppendItem(item) | 311 | menu.AppendItem(item) |
298 | menu.Bind(wx.EVT_MENU, self.OnMenuView) | 312 | menu.Bind(wx.EVT_MENU, self.OnMenuView) |
299 | self.menu_view = menu | 313 | self.menu_view = menu |
300 | - self.button_view.SetMenu(menu) | ||
301 | 314 | ||
302 | self.Fit() | 315 | self.Fit() |
303 | self.Update() | 316 | self.Update() |