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