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