Commit 58dbfb0ef9e67335aeb8323f68c53166fd2d3392

Authored by Thiago Franco de Moraes
1 parent f6c43378

Convert toolbar from wx.ToolBar to AuiToolbar.

It was necessary to change from wx.toolbar to auitoolbar because in
macosx it is not possible to untoggle a toggle button when using a
wx.toobar inside a aui.

Some tests to make toolbar toggle work in mac

Added more toolbars as auitoolbar

A Refresh after untoggle all

A Refresh after untoggle all

Converted LayoutToolbar to auitoolbar

Converted HistoryToolbar to auitoolbar

Converted ProjectToolbat to auitoolbar

deleted mask icon

changed the style of toolbar to not use gradient
icons/mask.png

2.63 KB

icons/mask_small.png

791 Bytes

invesalius/gui/frame.py
@@ -29,6 +29,8 @@ from wx.lib.pubsub import pub as Publisher @@ -29,6 +29,8 @@ from wx.lib.pubsub import pub as Publisher
29 import wx.lib.agw.toasterbox as TB 29 import wx.lib.agw.toasterbox as TB
30 import wx.lib.popupctl as pc 30 import wx.lib.popupctl as pc
31 31
  32 +from wx.lib.agw.aui.auibar import AuiToolBar, AUI_TB_PLAIN_BACKGROUND
  33 +
32 import constants as const 34 import constants as const
33 import default_tasks as tasks 35 import default_tasks as tasks
34 import default_viewers as viewers 36 import default_viewers as viewers
@@ -194,6 +196,7 @@ class Frame(wx.Frame): @@ -194,6 +196,7 @@ class Frame(wx.Frame):
194 t2 = ObjectToolBar(self) 196 t2 = ObjectToolBar(self)
195 t1 = SliceToolBar(self) 197 t1 = SliceToolBar(self)
196 198
  199 +
197 aui_manager.AddPane(t1, wx.aui.AuiPaneInfo(). 200 aui_manager.AddPane(t1, wx.aui.AuiPaneInfo().
198 Name("General Features Toolbar"). 201 Name("General Features Toolbar").
199 ToolbarPane().Top().Floatable(False). 202 ToolbarPane().Top().Floatable(False).
@@ -878,16 +881,16 @@ class TaskBarIcon(wx.TaskBarIcon): @@ -878,16 +881,16 @@ class TaskBarIcon(wx.TaskBarIcon):
878 # ------------------------------------------------------------------ 881 # ------------------------------------------------------------------
879 # ------------------------------------------------------------------ 882 # ------------------------------------------------------------------
880 883
881 -class ProjectToolBar(wx.ToolBar): 884 +class ProjectToolBar(AuiToolBar):
882 """ 885 """
883 Toolbar related to general project operations, including: import, 886 Toolbar related to general project operations, including: import,
884 open, save and saveas, among others. 887 open, save and saveas, among others.
885 """ 888 """
886 def __init__(self, parent): 889 def __init__(self, parent):
887 - style = wx.TB_FLAT|wx.TB_NODIVIDER| wx.TB_DOCKABLE  
888 - wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, 890 + style = AUI_TB_PLAIN_BACKGROUND
  891 + AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition,
889 wx.DefaultSize, 892 wx.DefaultSize,
890 - style) 893 + agwStyle=style)
891 self.SetToolBitmapSize(wx.Size(32,32)) 894 self.SetToolBitmapSize(wx.Size(32,32))
892 895
893 self.parent = parent 896 self.parent = parent
@@ -953,21 +956,27 @@ class ProjectToolBar(wx.ToolBar): @@ -953,21 +956,27 @@ class ProjectToolBar(wx.ToolBar):
953 BMP_PHOTO = wx.Bitmap(path, wx.BITMAP_TYPE_PNG) 956 BMP_PHOTO = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
954 957
955 # Create tool items based on bitmaps 958 # Create tool items based on bitmaps
956 - self.AddLabelTool(const.ID_DICOM_IMPORT, 959 + self.AddTool(const.ID_DICOM_IMPORT,
957 "", 960 "",
958 - shortHelp =_("Import DICOM files...\tCtrl+I"),  
959 - bitmap=BMP_IMPORT) 961 + BMP_IMPORT,
  962 + wx.NullBitmap,
  963 + wx.ITEM_NORMAL,
  964 + short_help_string =_("Import DICOM files...\tCtrl+I"))
960 #self.AddLabelTool(const.ID_DICOM_LOAD_NET, 965 #self.AddLabelTool(const.ID_DICOM_LOAD_NET,
961 # "Load medical image...", 966 # "Load medical image...",
962 # BMP_NET) 967 # BMP_NET)
963 - self.AddLabelTool(const.ID_PROJECT_OPEN, 968 + self.AddTool(const.ID_PROJECT_OPEN,
964 "", 969 "",
965 - shortHelp =_("Open InVesalius project..."),  
966 - bitmap=BMP_OPEN)  
967 - self.AddLabelTool(const.ID_PROJECT_SAVE, 970 + BMP_OPEN,
  971 + wx.NullBitmap,
  972 + wx.ITEM_NORMAL,
  973 + short_help_string =_("Open InVesalius project..."))
  974 + self.AddTool(const.ID_PROJECT_SAVE,
968 "", 975 "",
969 - shortHelp = _("Save InVesalius project"),  
970 - bitmap=BMP_SAVE) 976 + BMP_SAVE,
  977 + wx.NullBitmap,
  978 + wx.ITEM_NORMAL,
  979 + short_help_string = _("Save InVesalius project"))
971 #self.AddLabelTool(const.ID_SAVE_SCREENSHOT, 980 #self.AddLabelTool(const.ID_SAVE_SCREENSHOT,
972 # "Take photo of screen", 981 # "Take photo of screen",
973 # BMP_PHOTO) 982 # BMP_PHOTO)
@@ -985,6 +994,7 @@ class ProjectToolBar(wx.ToolBar): @@ -985,6 +994,7 @@ class ProjectToolBar(wx.ToolBar):
985 self.SetStateProjectOpen() 994 self.SetStateProjectOpen()
986 else: 995 else:
987 self.SetStateProjectClose() 996 self.SetStateProjectClose()
  997 + self.Refresh()
988 998
989 def SetStateProjectClose(self): 999 def SetStateProjectClose(self):
990 """ 1000 """
@@ -992,6 +1002,7 @@ class ProjectToolBar(wx.ToolBar): @@ -992,6 +1002,7 @@ class ProjectToolBar(wx.ToolBar):
992 """ 1002 """
993 for tool in self.enable_items: 1003 for tool in self.enable_items:
994 self.EnableTool(tool, False) 1004 self.EnableTool(tool, False)
  1005 + self.Refresh()
995 1006
996 def SetStateProjectOpen(self): 1007 def SetStateProjectOpen(self):
997 """ 1008 """
@@ -999,6 +1010,7 @@ class ProjectToolBar(wx.ToolBar): @@ -999,6 +1010,7 @@ class ProjectToolBar(wx.ToolBar):
999 """ 1010 """
1000 for tool in self.enable_items: 1011 for tool in self.enable_items:
1001 self.EnableTool(tool, True) 1012 self.EnableTool(tool, True)
  1013 + self.Refresh()
1002 1014
1003 1015
1004 1016
@@ -1006,15 +1018,15 @@ class ProjectToolBar(wx.ToolBar): @@ -1006,15 +1018,15 @@ class ProjectToolBar(wx.ToolBar):
1006 # ------------------------------------------------------------------ 1018 # ------------------------------------------------------------------
1007 # ------------------------------------------------------------------ 1019 # ------------------------------------------------------------------
1008 1020
1009 -class ObjectToolBar(wx.ToolBar): 1021 +class ObjectToolBar(AuiToolBar):
1010 """ 1022 """
1011 Toolbar related to general object operations, including: zoom 1023 Toolbar related to general object operations, including: zoom
1012 move, rotate, brightness/contrast, etc. 1024 move, rotate, brightness/contrast, etc.
1013 """ 1025 """
1014 def __init__(self, parent): 1026 def __init__(self, parent):
1015 - style = wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE  
1016 - wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition,  
1017 - wx.DefaultSize, style) 1027 + style = AUI_TB_PLAIN_BACKGROUND
  1028 + AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition,
  1029 + wx.DefaultSize, agwStyle=style)
1018 1030
1019 self.SetToolBitmapSize(wx.Size(32,32)) 1031 self.SetToolBitmapSize(wx.Size(32,32))
1020 1032
@@ -1106,40 +1118,47 @@ class ObjectToolBar(wx.ToolBar): @@ -1106,40 +1118,47 @@ class ObjectToolBar(wx.ToolBar):
1106 #BMP_ANNOTATE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG) 1118 #BMP_ANNOTATE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1107 1119
1108 # Create tool items based on bitmaps 1120 # Create tool items based on bitmaps
1109 - self.AddLabelTool(const.STATE_ZOOM, 1121 + self.AddTool(const.STATE_ZOOM,
1110 "", 1122 "",
1111 - shortHelp =_("Zoom"),  
1112 - bitmap=BMP_ZOOM, 1123 + BMP_ZOOM,
  1124 + wx.NullBitmap,
  1125 + short_help_string =_("Zoom"),
1113 kind = wx.ITEM_CHECK) 1126 kind = wx.ITEM_CHECK)
1114 - self.AddLabelTool(const.STATE_ZOOM_SL, 1127 + self.AddTool(const.STATE_ZOOM_SL,
1115 "", 1128 "",
1116 - shortHelp = _("Zoom based on selection"),  
1117 - bitmap = BMP_ZOOM_SELECT, 1129 + BMP_ZOOM_SELECT,
  1130 + wx.NullBitmap,
  1131 + short_help_string = _("Zoom based on selection"),
1118 kind = wx.ITEM_CHECK) 1132 kind = wx.ITEM_CHECK)
1119 - self.AddLabelTool(const.STATE_SPIN, 1133 + self.AddTool(const.STATE_SPIN,
1120 "", 1134 "",
1121 - shortHelp = _("Rotate"),  
1122 - bitmap = BMP_ROTATE, 1135 + BMP_ROTATE,
  1136 + wx.NullBitmap,
  1137 + short_help_string = _("Rotate"),
1123 kind = wx.ITEM_CHECK) 1138 kind = wx.ITEM_CHECK)
1124 - self.AddLabelTool(const.STATE_PAN, 1139 + self.AddTool(const.STATE_PAN,
1125 "", 1140 "",
1126 - shortHelp = _("Move"),  
1127 - bitmap = BMP_MOVE, 1141 + BMP_MOVE,
  1142 + wx.NullBitmap,
  1143 + short_help_string = _("Move"),
1128 kind = wx.ITEM_CHECK) 1144 kind = wx.ITEM_CHECK)
1129 - self.AddLabelTool(const.STATE_WL, 1145 + self.AddTool(const.STATE_WL,
1130 "", 1146 "",
1131 - shortHelp = _("Constrast"),  
1132 - bitmap = BMP_CONTRAST, 1147 + BMP_CONTRAST,
  1148 + wx.NullBitmap,
  1149 + short_help_string = _("Constrast"),
1133 kind = wx.ITEM_CHECK) 1150 kind = wx.ITEM_CHECK)
1134 - self.AddLabelTool(const.STATE_MEASURE_DISTANCE, 1151 + self.AddTool(const.STATE_MEASURE_DISTANCE,
1135 "", 1152 "",
1136 - shortHelp = _("Measure distance"),  
1137 - bitmap = BMP_DISTANCE, 1153 + BMP_DISTANCE,
  1154 + wx.NullBitmap,
  1155 + short_help_string = _("Measure distance"),
1138 kind = wx.ITEM_CHECK) 1156 kind = wx.ITEM_CHECK)
1139 - self.AddLabelTool(const.STATE_MEASURE_ANGLE, 1157 + self.AddTool(const.STATE_MEASURE_ANGLE,
1140 "", 1158 "",
1141 - shortHelp = _("Measure angle"),  
1142 - bitmap = BMP_ANGLE, 1159 + BMP_ANGLE,
  1160 + wx.NullBitmap,
  1161 + short_help_string = _("Measure angle"),
1143 kind = wx.ITEM_CHECK) 1162 kind = wx.ITEM_CHECK)
1144 #self.AddLabelTool(const.STATE_ANNOTATE, 1163 #self.AddLabelTool(const.STATE_ANNOTATE,
1145 # "", 1164 # "",
@@ -1157,15 +1176,17 @@ class ObjectToolBar(wx.ToolBar): @@ -1157,15 +1176,17 @@ class ObjectToolBar(wx.ToolBar):
1157 self.SetStateProjectOpen() 1176 self.SetStateProjectOpen()
1158 else: 1177 else:
1159 self.SetStateProjectClose() 1178 self.SetStateProjectClose()
  1179 + self.Refresh()
1160 1180
1161 def _UntoggleAllItems(self, pubsub_evt=None): 1181 def _UntoggleAllItems(self, pubsub_evt=None):
1162 """ 1182 """
1163 Untoggle all items on toolbar. 1183 Untoggle all items on toolbar.
1164 """ 1184 """
1165 for id in const.TOOL_STATES: 1185 for id in const.TOOL_STATES:
1166 - state = self.GetToolState(id) 1186 + state = self.GetToolToggled(id)
1167 if state: 1187 if state:
1168 self.ToggleTool(id, False) 1188 self.ToggleTool(id, False)
  1189 + self.Refresh()
1169 1190
1170 def _ToggleLinearMeasure(self, pubsub_evt): 1191 def _ToggleLinearMeasure(self, pubsub_evt):
1171 """ 1192 """
@@ -1177,7 +1198,7 @@ class ObjectToolBar(wx.ToolBar): @@ -1177,7 +1198,7 @@ class ObjectToolBar(wx.ToolBar):
1177 Publisher.sendMessage('Enable style', id) 1198 Publisher.sendMessage('Enable style', id)
1178 Publisher.sendMessage('Untoggle slice toolbar items') 1199 Publisher.sendMessage('Untoggle slice toolbar items')
1179 for item in const.TOOL_STATES: 1200 for item in const.TOOL_STATES:
1180 - state = self.GetToolState(item) 1201 + state = self.GetToolToggled(item)
1181 if state and (item != id): 1202 if state and (item != id):
1182 self.ToggleTool(item, False) 1203 self.ToggleTool(item, False)
1183 1204
@@ -1192,7 +1213,7 @@ class ObjectToolBar(wx.ToolBar): @@ -1192,7 +1213,7 @@ class ObjectToolBar(wx.ToolBar):
1192 Publisher.sendMessage('Enable style', id) 1213 Publisher.sendMessage('Enable style', id)
1193 Publisher.sendMessage('Untoggle slice toolbar items') 1214 Publisher.sendMessage('Untoggle slice toolbar items')
1194 for item in const.TOOL_STATES: 1215 for item in const.TOOL_STATES:
1195 - state = self.GetToolState(item) 1216 + state = self.GetToolToggled(item)
1196 if state and (item != id): 1217 if state and (item != id):
1197 self.ToggleTool(item, False) 1218 self.ToggleTool(item, False)
1198 1219
@@ -1202,7 +1223,7 @@ class ObjectToolBar(wx.ToolBar): @@ -1202,7 +1223,7 @@ class ObjectToolBar(wx.ToolBar):
1202 should be toggle each time). 1223 should be toggle each time).
1203 """ 1224 """
1204 id = evt.GetId() 1225 id = evt.GetId()
1205 - state = self.GetToolState(id) 1226 + state = self.GetToolToggled(id)
1206 if state and ((id == const.STATE_MEASURE_DISTANCE) or\ 1227 if state and ((id == const.STATE_MEASURE_DISTANCE) or\
1207 (id == const.STATE_MEASURE_ANGLE)): 1228 (id == const.STATE_MEASURE_ANGLE)):
1208 Publisher.sendMessage('Fold measure task') 1229 Publisher.sendMessage('Fold measure task')
@@ -1214,7 +1235,7 @@ class ObjectToolBar(wx.ToolBar): @@ -1214,7 +1235,7 @@ class ObjectToolBar(wx.ToolBar):
1214 Publisher.sendMessage('Disable style', id) 1235 Publisher.sendMessage('Disable style', id)
1215 1236
1216 for item in const.TOOL_STATES: 1237 for item in const.TOOL_STATES:
1217 - state = self.GetToolState(item) 1238 + state = self.GetToolToggled(item)
1218 if state and (item != id): 1239 if state and (item != id):
1219 self.ToggleTool(item, False) 1240 self.ToggleTool(item, False)
1220 evt.Skip() 1241 evt.Skip()
@@ -1238,16 +1259,16 @@ class ObjectToolBar(wx.ToolBar): @@ -1238,16 +1259,16 @@ class ObjectToolBar(wx.ToolBar):
1238 # ------------------------------------------------------------------ 1259 # ------------------------------------------------------------------
1239 # ------------------------------------------------------------------ 1260 # ------------------------------------------------------------------
1240 1261
1241 -class SliceToolBar(wx.ToolBar): 1262 +class SliceToolBar(AuiToolBar):
1242 """ 1263 """
1243 Toolbar related to 2D slice specific operations, including: cross 1264 Toolbar related to 2D slice specific operations, including: cross
1244 intersection reference and scroll slices. 1265 intersection reference and scroll slices.
1245 """ 1266 """
1246 def __init__(self, parent): 1267 def __init__(self, parent):
1247 - style = wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE  
1248 - wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, 1268 + style = AUI_TB_PLAIN_BACKGROUND
  1269 + AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition,
1249 wx.DefaultSize, 1270 wx.DefaultSize,
1250 - style) 1271 + agwStyle=style)
1251 1272
1252 self.SetToolBitmapSize(wx.Size(32,32)) 1273 self.SetToolBitmapSize(wx.Size(32,32))
1253 1274
@@ -1279,13 +1300,17 @@ class SliceToolBar(wx.ToolBar): @@ -1279,13 +1300,17 @@ class SliceToolBar(wx.ToolBar):
1279 path = os.path.join(d,"cross.png") 1300 path = os.path.join(d,"cross.png")
1280 BMP_CROSS = wx.Bitmap(path, wx.BITMAP_TYPE_PNG) 1301 BMP_CROSS = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1281 1302
1282 - self.AddCheckTool(const.SLICE_STATE_SCROLL,  
1283 - BMP_SLICE,  
1284 - shortHelp = _("Scroll slices")) 1303 + self.sst = self.AddToggleTool(const.SLICE_STATE_SCROLL,
  1304 + BMP_SLICE,#, kind=wx.ITEM_CHECK)
  1305 + wx.NullBitmap,
  1306 + toggle=True,
  1307 + short_help_string=_("Scroll slices"))
1285 1308
1286 - self.AddCheckTool(const.SLICE_STATE_CROSS,  
1287 - BMP_CROSS,  
1288 - shortHelp = _("Slices' cross intersection")) 1309 + self.sct = self.AddToggleTool(const.SLICE_STATE_CROSS,
  1310 + BMP_CROSS,#, kind=wx.ITEM_CHECK)
  1311 + wx.NullBitmap,
  1312 + toggle=True,
  1313 + short_help_string=_("Slices' cross intersection"))
1289 1314
1290 def __bind_events(self): 1315 def __bind_events(self):
1291 """ 1316 """
@@ -1312,18 +1337,20 @@ class SliceToolBar(wx.ToolBar): @@ -1312,18 +1337,20 @@ class SliceToolBar(wx.ToolBar):
1312 else: 1337 else:
1313 self.SetStateProjectClose() 1338 self.SetStateProjectClose()
1314 self._UntoggleAllItems() 1339 self._UntoggleAllItems()
  1340 + self.Refresh()
1315 1341
1316 def _UntoggleAllItems(self, pubsub_evt=None): 1342 def _UntoggleAllItems(self, pubsub_evt=None):
1317 """ 1343 """
1318 Untoggle all items on toolbar. 1344 Untoggle all items on toolbar.
1319 """ 1345 """
1320 for id in const.TOOL_SLICE_STATES: 1346 for id in const.TOOL_SLICE_STATES:
1321 - state = self.GetToolState(id) 1347 + state = self.GetToolToggled(id)
1322 if state: 1348 if state:
1323 self.ToggleTool(id, False) 1349 self.ToggleTool(id, False)
1324 if id == const.SLICE_STATE_CROSS: 1350 if id == const.SLICE_STATE_CROSS:
1325 msg = 'Set cross visibility' 1351 msg = 'Set cross visibility'
1326 Publisher.sendMessage(msg, 0) 1352 Publisher.sendMessage(msg, 0)
  1353 + self.Refresh()
1327 1354
1328 def OnToggle(self, evt): 1355 def OnToggle(self, evt):
1329 """ 1356 """
@@ -1331,7 +1358,9 @@ class SliceToolBar(wx.ToolBar): @@ -1331,7 +1358,9 @@ class SliceToolBar(wx.ToolBar):
1331 should be toggle each time). 1358 should be toggle each time).
1332 """ 1359 """
1333 id = evt.GetId() 1360 id = evt.GetId()
1334 - state = self.GetToolState(id) 1361 + evt.Skip()
  1362 +
  1363 + state = self.GetToolToggled(id)
1335 1364
1336 if state: 1365 if state:
1337 Publisher.sendMessage('Enable style', id) 1366 Publisher.sendMessage('Enable style', id)
@@ -1339,12 +1368,17 @@ class SliceToolBar(wx.ToolBar): @@ -1339,12 +1368,17 @@ class SliceToolBar(wx.ToolBar):
1339 else: 1368 else:
1340 Publisher.sendMessage('Disable style', id) 1369 Publisher.sendMessage('Disable style', id)
1341 1370
1342 - for item in const.TOOL_SLICE_STATES:  
1343 - state = self.GetToolState(item) 1371 + for item in self.enable_items:
  1372 + state = self.GetToolToggled(item)
1344 if state and (item != id): 1373 if state and (item != id):
  1374 + print ">>>>", item
1345 self.ToggleTool(item, False) 1375 self.ToggleTool(item, False)
  1376 + #self.ToggleTool(const.SLICE_STATE_SCROLL, self.GetToolToggled(const.SLICE_STATE_CROSS))
  1377 + #self.Update()
  1378 + ##self.sst.SetToggle(self.sct.IsToggled())
  1379 + ##print ">>>", self.sst.IsToggled()
  1380 + #print ">>>", self.sst.GetState()
1346 1381
1347 - evt.Skip()  
1348 1382
1349 def SetStateProjectClose(self): 1383 def SetStateProjectClose(self):
1350 """ 1384 """
@@ -1352,6 +1386,7 @@ class SliceToolBar(wx.ToolBar): @@ -1352,6 +1386,7 @@ class SliceToolBar(wx.ToolBar):
1352 """ 1386 """
1353 for tool in self.enable_items: 1387 for tool in self.enable_items:
1354 self.EnableTool(tool, False) 1388 self.EnableTool(tool, False)
  1389 + self.Refresh()
1355 1390
1356 def SetStateProjectOpen(self): 1391 def SetStateProjectOpen(self):
1357 """ 1392 """
@@ -1359,21 +1394,22 @@ class SliceToolBar(wx.ToolBar): @@ -1359,21 +1394,22 @@ class SliceToolBar(wx.ToolBar):
1359 """ 1394 """
1360 for tool in self.enable_items: 1395 for tool in self.enable_items:
1361 self.EnableTool(tool, True) 1396 self.EnableTool(tool, True)
  1397 + self.Refresh()
1362 1398
1363 # ------------------------------------------------------------------ 1399 # ------------------------------------------------------------------
1364 # ------------------------------------------------------------------ 1400 # ------------------------------------------------------------------
1365 # ------------------------------------------------------------------ 1401 # ------------------------------------------------------------------
1366 1402
1367 -class LayoutToolBar(wx.ToolBar): 1403 +class LayoutToolBar(AuiToolBar):
1368 """ 1404 """
1369 Toolbar related to general layout/ visualization configuration 1405 Toolbar related to general layout/ visualization configuration
1370 e.g: show/hide task panel and show/hide text on viewers. 1406 e.g: show/hide task panel and show/hide text on viewers.
1371 """ 1407 """
1372 def __init__(self, parent): 1408 def __init__(self, parent):
1373 - style = wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE  
1374 - wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, 1409 + style = AUI_TB_PLAIN_BACKGROUND
  1410 + AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition,
1375 wx.DefaultSize, 1411 wx.DefaultSize,
1376 - style) 1412 + agwStyle=style)
1377 1413
1378 self.SetToolBitmapSize(wx.Size(32,32)) 1414 self.SetToolBitmapSize(wx.Size(32,32))
1379 1415
@@ -1439,14 +1475,18 @@ class LayoutToolBar(wx.ToolBar): @@ -1439,14 +1475,18 @@ class LayoutToolBar(wx.ToolBar):
1439 p = os.path.join(d, "text.png") 1475 p = os.path.join(d, "text.png")
1440 self.BMP_WITH_TEXT = wx.Bitmap(p, wx.BITMAP_TYPE_PNG) 1476 self.BMP_WITH_TEXT = wx.Bitmap(p, wx.BITMAP_TYPE_PNG)
1441 1477
1442 - self.AddLabelTool(ID_LAYOUT, 1478 + self.AddTool(ID_LAYOUT,
1443 "", 1479 "",
1444 - bitmap=self.BMP_WITHOUT_MENU,  
1445 - shortHelp= _("Hide task panel"))  
1446 - self.AddLabelTool(ID_TEXT, 1480 + self.BMP_WITHOUT_MENU,
  1481 + wx.NullBitmap,
  1482 + wx.ITEM_NORMAL,
  1483 + short_help_string= _("Hide task panel"))
  1484 + self.AddTool(ID_TEXT,
1447 "", 1485 "",
1448 - bitmap=self.BMP_WITH_TEXT,  
1449 - shortHelp= _("Hide text")) 1486 + self.BMP_WITH_TEXT,
  1487 + wx.NullBitmap,
  1488 + wx.ITEM_NORMAL,
  1489 + short_help_string= _("Hide text"))
1450 1490
1451 def _EnableState(self, pubsub_evt): 1491 def _EnableState(self, pubsub_evt):
1452 """ 1492 """
@@ -1458,6 +1498,7 @@ class LayoutToolBar(wx.ToolBar): @@ -1458,6 +1498,7 @@ class LayoutToolBar(wx.ToolBar):
1458 self.SetStateProjectOpen() 1498 self.SetStateProjectOpen()
1459 else: 1499 else:
1460 self.SetStateProjectClose() 1500 self.SetStateProjectClose()
  1501 + self.Refresh()
1461 1502
1462 def _SetLayoutWithoutTask(self, pubsub_evt): 1503 def _SetLayoutWithoutTask(self, pubsub_evt):
1463 """ 1504 """
@@ -1482,7 +1523,7 @@ class LayoutToolBar(wx.ToolBar): @@ -1482,7 +1523,7 @@ class LayoutToolBar(wx.ToolBar):
1482 self.ToggleText() 1523 self.ToggleText()
1483 1524
1484 for item in VIEW_TOOLS: 1525 for item in VIEW_TOOLS:
1485 - state = self.GetToolState(item) 1526 + state = self.GetToolToggled(item)
1486 if state and (item != id): 1527 if state and (item != id):
1487 self.ToggleTool(item, False) 1528 self.ToggleTool(item, False)
1488 1529
@@ -1538,16 +1579,16 @@ class LayoutToolBar(wx.ToolBar): @@ -1538,16 +1579,16 @@ class LayoutToolBar(wx.ToolBar):
1538 self.ontool_text = True 1579 self.ontool_text = True
1539 1580
1540 1581
1541 -class HistoryToolBar(wx.ToolBar): 1582 +class HistoryToolBar(AuiToolBar):
1542 """ 1583 """
1543 Toolbar related to general layout/ visualization configuration 1584 Toolbar related to general layout/ visualization configuration
1544 e.g: show/hide task panel and show/hide text on viewers. 1585 e.g: show/hide task panel and show/hide text on viewers.
1545 """ 1586 """
1546 def __init__(self, parent): 1587 def __init__(self, parent):
1547 - style = wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE  
1548 - wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, 1588 + style = AUI_TB_PLAIN_BACKGROUND
  1589 + AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition,
1549 wx.DefaultSize, 1590 wx.DefaultSize,
1550 - style) 1591 + agwStyle=style)
1551 1592
1552 self.SetToolBitmapSize(wx.Size(32,32)) 1593 self.SetToolBitmapSize(wx.Size(32,32))
1553 1594
@@ -1603,15 +1644,19 @@ class HistoryToolBar(wx.ToolBar): @@ -1603,15 +1644,19 @@ class HistoryToolBar(wx.ToolBar):
1603 p = os.path.join(d, "redo_small.png") 1644 p = os.path.join(d, "redo_small.png")
1604 self.BMP_REDO = wx.Bitmap(p, wx.BITMAP_TYPE_PNG) 1645 self.BMP_REDO = wx.Bitmap(p, wx.BITMAP_TYPE_PNG)
1605 1646
1606 - self.AddLabelTool(wx.ID_UNDO, 1647 + self.AddTool(wx.ID_UNDO,
1607 "", 1648 "",
1608 - bitmap=self.BMP_UNDO,  
1609 - shortHelp= _("Undo")) 1649 + self.BMP_UNDO,
  1650 + wx.NullBitmap,
  1651 + wx.ITEM_NORMAL,
  1652 + short_help_string= _("Undo"))
1610 1653
1611 - self.AddLabelTool(wx.ID_REDO, 1654 + self.AddTool(wx.ID_REDO,
1612 "", 1655 "",
1613 - bitmap=self.BMP_REDO,  
1614 - shortHelp= _("Redo")) 1656 + self.BMP_REDO,
  1657 + wx.NullBitmap,
  1658 + wx.ITEM_NORMAL,
  1659 + short_help_string=_("Redo"))
1615 1660
1616 self.EnableTool(wx.ID_UNDO, False) 1661 self.EnableTool(wx.ID_UNDO, False)
1617 self.EnableTool(wx.ID_REDO, False) 1662 self.EnableTool(wx.ID_REDO, False)
@@ -1626,6 +1671,7 @@ class HistoryToolBar(wx.ToolBar): @@ -1626,6 +1671,7 @@ class HistoryToolBar(wx.ToolBar):
1626 self.SetStateProjectOpen() 1671 self.SetStateProjectOpen()
1627 else: 1672 else:
1628 self.SetStateProjectClose() 1673 self.SetStateProjectClose()
  1674 + self.Refresh()
1629 1675
1630 def _SetLayoutWithoutTask(self, pubsub_evt): 1676 def _SetLayoutWithoutTask(self, pubsub_evt):
1631 """ 1677 """
@@ -1658,7 +1704,7 @@ class HistoryToolBar(wx.ToolBar): @@ -1658,7 +1704,7 @@ class HistoryToolBar(wx.ToolBar):
1658 self.ToggleText() 1704 self.ToggleText()
1659 1705
1660 for item in VIEW_TOOLS: 1706 for item in VIEW_TOOLS:
1661 - state = self.GetToolState(item) 1707 + state = self.GetToolToggled(item)
1662 if state and (item != id): 1708 if state and (item != id):
1663 self.ToggleTool(item, False) 1709 self.ToggleTool(item, False)
1664 1710
@@ -1719,6 +1765,7 @@ class HistoryToolBar(wx.ToolBar): @@ -1719,6 +1765,7 @@ class HistoryToolBar(wx.ToolBar):
1719 self.EnableTool(wx.ID_UNDO, True) 1765 self.EnableTool(wx.ID_UNDO, True)
1720 else: 1766 else:
1721 self.EnableTool(wx.ID_UNDO, False) 1767 self.EnableTool(wx.ID_UNDO, False)
  1768 + self.Refresh()
1722 1769
1723 def OnEnableRedo(self, pubsub_evt): 1770 def OnEnableRedo(self, pubsub_evt):
1724 value = pubsub_evt.data 1771 value = pubsub_evt.data
@@ -1726,3 +1773,4 @@ class HistoryToolBar(wx.ToolBar): @@ -1726,3 +1773,4 @@ class HistoryToolBar(wx.ToolBar):
1726 self.EnableTool(wx.ID_REDO, True) 1773 self.EnableTool(wx.ID_REDO, True)
1727 else: 1774 else:
1728 self.EnableTool(wx.ID_REDO, False) 1775 self.EnableTool(wx.ID_REDO, False)
  1776 + self.Refresh()