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 | 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() | ... | ... |