Commit 2e32edc719b326604ab928a9357485435f3392c6

Authored by Thiago Franco de Moraes
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 """
... ...