Commit 549869076e2e6a3dcb29bf73c88681fe14cec66e

Authored by tatiana
1 parent 74061db1

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 220 BMP_RAYCASTING, style=pbtn.PB_STYLE_SQUARE,
221 221 size=(24,24))
222 222 self.button_raycasting = button_raycasting
  223 + self.button_raycasting.Bind(wx.EVT_LEFT_DOWN, self.OnButtonRaycasting)
  224 +
223 225  
224 226 # VOLUME VIEW ANGLE BUTTON
225 227 BMP_FRONT = wx.Bitmap(ID_TO_BMP[const.VOL_FRONT][1],
... ... @@ -228,37 +230,51 @@ class VolumeToolPanel(wx.Panel):
228 230 BMP_FRONT, size=(24,24),
229 231 style=pbtn.PB_STYLE_SQUARE)
230 232 self.button_view = button_view
  233 + self.button_view.Bind(wx.EVT_LEFT_DOWN, self.OnButtonView)
231 234  
232 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 243 button_colour= csel.ColourSelect(self, 111,colour=(0,0,0),
234   - size=(24,24))
  244 + size=size)
235 245 button_colour.Bind(csel.EVT_COLOURSELECT, self.OnSelectColour)
236 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 248 # SIZER TO ORGANIZE ALL
242 249 sizer = wx.BoxSizer(wx.VERTICAL)
  250 + sizer.Add(button_colour, 0, wx.ALL, sp)
243 251 sizer.Add(button_raycasting, 0, wx.TOP|wx.BOTTOM, 1)
244 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 256 self.SetSizer(sizer)
252 257 self.SetAutoLayout(1)
253 258 self.Update()
254 259 self.Refresh()
255 260  
  261 + self.__init_menus()
256 262 self.__bind_events()
257 263  
258 264 def __bind_events(self):
259 265 ps.Publisher().subscribe(self.ChangeButtonColour,
260 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 278 def __init_menus(self, pubsub_evt=None):
263 279 # MENU RELATED TO RAYCASTING TYPES
264 280 menu = wx.Menu()
... ... @@ -279,14 +295,12 @@ class VolumeToolPanel(wx.Panel):
279 295 submenu.AppendItem(item)
280 296 ID_TO_TOOL[id] = name
281 297 ID_TO_TOOL_ITEM[id] = item
282   - #submenu.Enable(0)
283 298 self.submenu_raycasting_tools = submenu
284 299 menu.AppendMenu(RAYCASTING_TOOLS, "Tools", submenu)
285 300 menu.Enable(RAYCASTING_TOOLS, 0)
286 301  
287 302 self.menu_raycasting = menu
288 303 menu.Bind(wx.EVT_MENU, self.OnMenuRaycasting)
289   - self.button_raycasting.SetMenu(menu)
290 304  
291 305 # VOLUME VIEW ANGLE BUTTON
292 306 menu = wx.Menu()
... ... @@ -297,7 +311,6 @@ class VolumeToolPanel(wx.Panel):
297 311 menu.AppendItem(item)
298 312 menu.Bind(wx.EVT_MENU, self.OnMenuView)
299 313 self.menu_view = menu
300   - self.button_view.SetMenu(menu)
301 314  
302 315 self.Fit()
303 316 self.Update()
... ...