Commit 2e32edc719b326604ab928a9357485435f3392c6
1 parent
f6c43378
Exists in
mactoolbar_bkp
Some tests to make toolbar toggle work in mac
Showing
1 changed file
with
53 additions
and
36 deletions
Show diff stats
invesalius/gui/frame.py
| ... | ... | @@ -29,6 +29,8 @@ from wx.lib.pubsub import pub as Publisher |
| 29 | 29 | import wx.lib.agw.toasterbox as TB |
| 30 | 30 | import wx.lib.popupctl as pc |
| 31 | 31 | |
| 32 | +from wx.lib.agw.aui.auibar import AuiToolBar | |
| 33 | + | |
| 32 | 34 | import constants as const |
| 33 | 35 | import default_tasks as tasks |
| 34 | 36 | import default_viewers as viewers |
| ... | ... | @@ -182,42 +184,46 @@ class Frame(wx.Frame): |
| 182 | 184 | # This is pretty tricky -- order on win32 is inverted when |
| 183 | 185 | # compared to linux2 & darwin |
| 184 | 186 | if sys.platform == 'win32': |
| 185 | - t1 = ProjectToolBar(self) | |
| 186 | - t2 = HistoryToolBar(self) | |
| 187 | - t3 = LayoutToolBar(self) | |
| 188 | - t4 = ObjectToolBar(self) | |
| 187 | + #t1 = ProjectToolBar(self) | |
| 188 | + #t2 = HistoryToolBar(self) | |
| 189 | + #t3 = LayoutToolBar(self) | |
| 190 | + #t4 = ObjectToolBar(self) | |
| 189 | 191 | t5 = SliceToolBar(self) |
| 190 | 192 | else: |
| 191 | - t5 = ProjectToolBar(self) | |
| 192 | - t4 = HistoryToolBar(self) | |
| 193 | - t3 = LayoutToolBar(self) | |
| 194 | - t2 = ObjectToolBar(self) | |
| 193 | + #t5 = ProjectToolBar(self) | |
| 194 | + #t4 = HistoryToolBar(self) | |
| 195 | + #t3 = LayoutToolBar(self) | |
| 196 | + #t2 = ObjectToolBar(self) | |
| 195 | 197 | t1 = SliceToolBar(self) |
| 196 | 198 | |
| 199 | + | |
| 200 | + #self.SetToolBar(t1) | |
| 201 | + #t1.Realize() | |
| 202 | + | |
| 197 | 203 | aui_manager.AddPane(t1, wx.aui.AuiPaneInfo(). |
| 198 | 204 | Name("General Features Toolbar"). |
| 199 | 205 | ToolbarPane().Top().Floatable(False). |
| 200 | 206 | LeftDockable(False).RightDockable(False)) |
| 201 | 207 | |
| 202 | - aui_manager.AddPane(t2, wx.aui.AuiPaneInfo(). | |
| 203 | - Name("Layout Toolbar"). | |
| 204 | - ToolbarPane().Top().Floatable(False). | |
| 205 | - LeftDockable(False).RightDockable(False)) | |
| 208 | + #aui_manager.AddPane(t2, wx.aui.AuiPaneInfo(). | |
| 209 | + #Name("Layout Toolbar"). | |
| 210 | + #ToolbarPane().Top().Floatable(False). | |
| 211 | + #LeftDockable(False).RightDockable(False)) | |
| 206 | 212 | |
| 207 | - aui_manager.AddPane(t3, wx.aui.AuiPaneInfo(). | |
| 208 | - Name("Project Toolbar"). | |
| 209 | - ToolbarPane().Top().Floatable(False). | |
| 210 | - LeftDockable(False).RightDockable(False)) | |
| 213 | + #aui_manager.AddPane(t3, wx.aui.AuiPaneInfo(). | |
| 214 | + #Name("Project Toolbar"). | |
| 215 | + #ToolbarPane().Top().Floatable(False). | |
| 216 | + #LeftDockable(False).RightDockable(False)) | |
| 211 | 217 | |
| 212 | - aui_manager.AddPane(t4, wx.aui.AuiPaneInfo(). | |
| 213 | - Name("Slice Toolbar"). | |
| 214 | - ToolbarPane().Top().Floatable(False). | |
| 215 | - LeftDockable(False).RightDockable(False)) | |
| 218 | + #aui_manager.AddPane(t4, wx.aui.AuiPaneInfo(). | |
| 219 | + #Name("Slice Toolbar"). | |
| 220 | + #ToolbarPane().Top().Floatable(False). | |
| 221 | + #LeftDockable(False).RightDockable(False)) | |
| 216 | 222 | |
| 217 | - aui_manager.AddPane(t5, wx.aui.AuiPaneInfo(). | |
| 218 | - Name("History Toolbar"). | |
| 219 | - ToolbarPane().Top().Floatable(False). | |
| 220 | - LeftDockable(False).RightDockable(False)) | |
| 223 | + #aui_manager.AddPane(t5, wx.aui.AuiPaneInfo(). | |
| 224 | + #Name("History Toolbar"). | |
| 225 | + #ToolbarPane().Top().Floatable(False). | |
| 226 | + #LeftDockable(False).RightDockable(False)) | |
| 221 | 227 | |
| 222 | 228 | aui_manager.Update() |
| 223 | 229 | self.aui_manager = aui_manager |
| ... | ... | @@ -1238,14 +1244,14 @@ class ObjectToolBar(wx.ToolBar): |
| 1238 | 1244 | # ------------------------------------------------------------------ |
| 1239 | 1245 | # ------------------------------------------------------------------ |
| 1240 | 1246 | |
| 1241 | -class SliceToolBar(wx.ToolBar): | |
| 1247 | +class SliceToolBar(AuiToolBar): | |
| 1242 | 1248 | """ |
| 1243 | 1249 | Toolbar related to 2D slice specific operations, including: cross |
| 1244 | 1250 | intersection reference and scroll slices. |
| 1245 | 1251 | """ |
| 1246 | 1252 | def __init__(self, parent): |
| 1247 | 1253 | style = wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE |
| 1248 | - wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 1254 | + AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 1249 | 1255 | wx.DefaultSize, |
| 1250 | 1256 | style) |
| 1251 | 1257 | |
| ... | ... | @@ -1279,13 +1285,17 @@ class SliceToolBar(wx.ToolBar): |
| 1279 | 1285 | path = os.path.join(d,"cross.png") |
| 1280 | 1286 | BMP_CROSS = wx.Bitmap(path, wx.BITMAP_TYPE_PNG) |
| 1281 | 1287 | |
| 1282 | - self.AddCheckTool(const.SLICE_STATE_SCROLL, | |
| 1283 | - BMP_SLICE, | |
| 1284 | - shortHelp = _("Scroll slices")) | |
| 1288 | + self.sst = self.AddToggleTool(const.SLICE_STATE_SCROLL, | |
| 1289 | + BMP_SLICE,#, kind=wx.ITEM_CHECK) | |
| 1290 | + wx.NullBitmap, | |
| 1291 | + toggle=True, | |
| 1292 | + short_help_string=_("Scroll slices")) | |
| 1285 | 1293 | |
| 1286 | - self.AddCheckTool(const.SLICE_STATE_CROSS, | |
| 1287 | - BMP_CROSS, | |
| 1288 | - shortHelp = _("Slices' cross intersection")) | |
| 1294 | + self.sct = self.AddToggleTool(const.SLICE_STATE_CROSS, | |
| 1295 | + BMP_CROSS,#, kind=wx.ITEM_CHECK) | |
| 1296 | + wx.NullBitmap, | |
| 1297 | + toggle=True, | |
| 1298 | + short_help_string=_("Slices' cross intersection")) | |
| 1289 | 1299 | |
| 1290 | 1300 | def __bind_events(self): |
| 1291 | 1301 | """ |
| ... | ... | @@ -1331,7 +1341,9 @@ class SliceToolBar(wx.ToolBar): |
| 1331 | 1341 | should be toggle each time). |
| 1332 | 1342 | """ |
| 1333 | 1343 | id = evt.GetId() |
| 1334 | - state = self.GetToolState(id) | |
| 1344 | + evt.Skip() | |
| 1345 | + | |
| 1346 | + state = self.GetToolToggled(id) | |
| 1335 | 1347 | |
| 1336 | 1348 | if state: |
| 1337 | 1349 | Publisher.sendMessage('Enable style', id) |
| ... | ... | @@ -1339,12 +1351,17 @@ class SliceToolBar(wx.ToolBar): |
| 1339 | 1351 | else: |
| 1340 | 1352 | Publisher.sendMessage('Disable style', id) |
| 1341 | 1353 | |
| 1342 | - for item in const.TOOL_SLICE_STATES: | |
| 1343 | - state = self.GetToolState(item) | |
| 1354 | + for item in self.enable_items: | |
| 1355 | + state = self.GetToolToggled(item) | |
| 1344 | 1356 | if state and (item != id): |
| 1357 | + print ">>>>", item | |
| 1345 | 1358 | self.ToggleTool(item, False) |
| 1359 | + #self.ToggleTool(const.SLICE_STATE_SCROLL, self.GetToolToggled(const.SLICE_STATE_CROSS)) | |
| 1360 | + #self.Update() | |
| 1361 | + ##self.sst.SetToggle(self.sct.IsToggled()) | |
| 1362 | + ##print ">>>", self.sst.IsToggled() | |
| 1363 | + #print ">>>", self.sst.GetState() | |
| 1346 | 1364 | |
| 1347 | - evt.Skip() | |
| 1348 | 1365 | |
| 1349 | 1366 | def SetStateProjectClose(self): |
| 1350 | 1367 | """ | ... | ... |