Commit 9ea636e5642af91c5164934cac1dbceeb58b46d5
1 parent
ed221684
Exists in
master
and in
68 other branches
FIX: Back to normal toolbar
Showing
1 changed file
with
124 additions
and
69 deletions
Show diff stats
invesalius/gui/frame.py
| ... | ... | @@ -22,7 +22,6 @@ import sys |
| 22 | 22 | |
| 23 | 23 | import wx |
| 24 | 24 | import wx.aui |
| 25 | -import wx.lib.agw.aui as aui | |
| 26 | 25 | import wx.lib.pubsub as ps |
| 27 | 26 | |
| 28 | 27 | import constants as const |
| ... | ... | @@ -316,12 +315,13 @@ class TaskBarIcon(wx.TaskBarIcon): |
| 316 | 315 | |
| 317 | 316 | # ------------------------------------------------------------------ |
| 318 | 317 | |
| 319 | -class ProjectToolBar(aui.AuiToolBar): | |
| 318 | +class ProjectToolBar(wx.ToolBar): | |
| 320 | 319 | def __init__(self, parent): |
| 321 | - aui.AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 322 | - wx.DefaultSize, aui.AUI_TB_DEFAULT_STYLE) | |
| 320 | + wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 321 | + wx.DefaultSize, | |
| 322 | + wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE) | |
| 323 | 323 | |
| 324 | - self.SetToolBitmapSize(wx.Size(16,16)) | |
| 324 | + self.SetToolBitmapSize(wx.Size(32,32)) | |
| 325 | 325 | |
| 326 | 326 | self.parent = parent |
| 327 | 327 | |
| ... | ... | @@ -342,19 +342,42 @@ class ProjectToolBar(aui.AuiToolBar): |
| 342 | 342 | BMP_PHOTO = wx.Bitmap("../icons/tool_photo.png", |
| 343 | 343 | wx.BITMAP_TYPE_PNG) |
| 344 | 344 | |
| 345 | - self.AddSimpleTool(ID_FILE_IMPORT, | |
| 345 | + if sys.platform == 'darwin': | |
| 346 | + BMP_IMPORT = wx.Bitmap("../icons/file_import_original.png", | |
| 347 | + wx.BITMAP_TYPE_PNG) | |
| 348 | + BMP_NET = wx.Bitmap("../icons/file_from_internet_original.png", | |
| 349 | + wx.BITMAP_TYPE_PNG) | |
| 350 | + BMP_SAVE = wx.Bitmap("../icons/file_save_original.png", | |
| 351 | + wx.BITMAP_TYPE_PNG) | |
| 352 | + BMP_PRINT = wx.Bitmap("../icons/print_original.png", | |
| 353 | + wx.BITMAP_TYPE_PNG) | |
| 354 | + BMP_PHOTO = wx.Bitmap("../icons/tool_photo_original.png", | |
| 355 | + wx.BITMAP_TYPE_PNG) | |
| 356 | + else: | |
| 357 | + BMP_IMPORT = wx.Bitmap("../icons/file_import.png", | |
| 358 | + wx.BITMAP_TYPE_PNG) | |
| 359 | + BMP_NET = wx.Bitmap("../icons/file_from_internet.png", | |
| 360 | + wx.BITMAP_TYPE_PNG) | |
| 361 | + BMP_SAVE = wx.Bitmap("../icons/file_save.png", | |
| 362 | + wx.BITMAP_TYPE_PNG) | |
| 363 | + BMP_PRINT = wx.Bitmap("../icons/print.png", | |
| 364 | + wx.BITMAP_TYPE_PNG) | |
| 365 | + BMP_PHOTO = wx.Bitmap("../icons/tool_photo.png", | |
| 366 | + wx.BITMAP_TYPE_PNG) | |
| 367 | + | |
| 368 | + self.AddLabelTool(ID_FILE_IMPORT, | |
| 346 | 369 | "Import medical image...", |
| 347 | 370 | BMP_IMPORT) |
| 348 | - self.AddSimpleTool(ID_FILE_LOAD_INTERNET, | |
| 371 | + self.AddLabelTool(ID_FILE_LOAD_INTERNET, | |
| 349 | 372 | "Load medical image...", |
| 350 | 373 | BMP_NET) |
| 351 | - self.AddSimpleTool(ID_FILE_SAVE, | |
| 374 | + self.AddLabelTool(ID_FILE_SAVE, | |
| 352 | 375 | "Save InVesalius project", |
| 353 | 376 | BMP_SAVE) |
| 354 | - self.AddSimpleTool(ID_FILE_PHOTO, | |
| 377 | + self.AddLabelTool(ID_FILE_PHOTO, | |
| 355 | 378 | "Take photo of screen", |
| 356 | 379 | BMP_PHOTO) |
| 357 | - self.AddSimpleTool(ID_FILE_PRINT, | |
| 380 | + self.AddLabelTool(ID_FILE_PRINT, | |
| 358 | 381 | "Print medical image...", |
| 359 | 382 | BMP_PRINT) |
| 360 | 383 | |
| ... | ... | @@ -365,12 +388,13 @@ class ProjectToolBar(aui.AuiToolBar): |
| 365 | 388 | |
| 366 | 389 | # ------------------------------------------------------------------ |
| 367 | 390 | |
| 368 | -class ObjectToolBar(aui.AuiToolBar): | |
| 391 | +class ObjectToolBar(wx.ToolBar): | |
| 369 | 392 | def __init__(self, parent): |
| 370 | - aui.AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 371 | - wx.DefaultSize, aui.AUI_TB_DEFAULT_STYLE) | |
| 372 | - self.SetToolBitmapSize(wx.Size(16,16)) | |
| 393 | + wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 394 | + wx.DefaultSize, | |
| 395 | + wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE) | |
| 373 | 396 | |
| 397 | + self.SetToolBitmapSize(wx.Size(32,32)) | |
| 374 | 398 | self.parent = parent |
| 375 | 399 | |
| 376 | 400 | self.__init_items() |
| ... | ... | @@ -379,40 +403,51 @@ class ObjectToolBar(aui.AuiToolBar): |
| 379 | 403 | |
| 380 | 404 | def __init_items(self): |
| 381 | 405 | |
| 382 | - | |
| 383 | - BMP_ROTATE = wx.Bitmap("../icons/tool_rotate.gif", | |
| 384 | - wx.BITMAP_TYPE_GIF) | |
| 385 | - BMP_MOVE = wx.Bitmap("../icons/tool_translate.gif", | |
| 386 | - wx.BITMAP_TYPE_GIF) | |
| 387 | - BMP_ZOOM = wx.Bitmap("../icons/tool_zoom.png", | |
| 388 | - wx.BITMAP_TYPE_PNG) | |
| 389 | - BMP_ZOOM_SELECT = wx.Bitmap("../icons/tool_zoom_select.png", | |
| 390 | - wx.BITMAP_TYPE_PNG) | |
| 391 | - BMP_CONTRAST = wx.Bitmap("../icons/tool_contrast.png", | |
| 406 | + if sys.platform == 'darwin': | |
| 407 | + BMP_ROTATE = wx.Bitmap("../icons/tool_rotate_original.gif", | |
| 408 | + wx.BITMAP_TYPE_GIF) | |
| 409 | + BMP_MOVE =wx.Bitmap("../icons/tool_translate_original.png", | |
| 410 | + wx.BITMAP_TYPE_PNG) | |
| 411 | + BMP_ZOOM = wx.Bitmap("../icons/tool_zoom_original.png", | |
| 392 | 412 | wx.BITMAP_TYPE_PNG) |
| 393 | - | |
| 413 | + BMP_ZOOM_SELECT = wx.Bitmap("../icons/tool_zoom_select_original.png", | |
| 414 | + wx.BITMAP_TYPE_PNG) | |
| 415 | + BMP_CONTRAST = wx.Bitmap("../icons/tool_contrast.png", | |
| 416 | + wx.BITMAP_TYPE_PNG) | |
| 417 | + else: | |
| 418 | + | |
| 419 | + BMP_ROTATE = wx.Bitmap("../icons/tool_rotate.gif", | |
| 420 | + wx.BITMAP_TYPE_GIF) | |
| 421 | + BMP_MOVE = wx.Bitmap("../icons/tool_translate.gif", | |
| 422 | + wx.BITMAP_TYPE_GIF) | |
| 423 | + BMP_ZOOM = wx.Bitmap("../icons/tool_zoom.png", | |
| 424 | + wx.BITMAP_TYPE_PNG) | |
| 425 | + BMP_ZOOM_SELECT = wx.Bitmap("../icons/tool_zoom_select.png", | |
| 426 | + wx.BITMAP_TYPE_PNG) | |
| 427 | + BMP_CONTRAST = wx.Bitmap("../icons/tool_contrast.png", | |
| 428 | + wx.BITMAP_TYPE_PNG) | |
| 394 | 429 | |
| 395 | - self.AddSimpleTool(ID_ZOOM, | |
| 430 | + self.AddLabelTool(ID_ZOOM, | |
| 396 | 431 | "Zoom", |
| 397 | 432 | BMP_ZOOM, |
| 398 | - kind = aui.ITEM_RADIO) | |
| 433 | + kind = wx.ITEM_CHECK) | |
| 399 | 434 | |
| 400 | - self.AddSimpleTool(ID_ZOOM_SELECT, | |
| 435 | + self.AddLabelTool(ID_ZOOM_SELECT, | |
| 401 | 436 | "Zoom based on selection", |
| 402 | 437 | BMP_ZOOM_SELECT, |
| 403 | - kind = aui.ITEM_RADIO) | |
| 438 | + kind = wx.ITEM_CHECK) | |
| 404 | 439 | |
| 405 | - self.AddSimpleTool(ID_ROTATE, | |
| 440 | + self.AddLabelTool(ID_ROTATE, | |
| 406 | 441 | "Rotate", BMP_ROTATE, |
| 407 | - kind = aui.ITEM_RADIO) | |
| 442 | + kind = wx.ITEM_CHECK) | |
| 408 | 443 | |
| 409 | - self.AddSimpleTool(ID_MOVE, | |
| 444 | + self.AddLabelTool(ID_MOVE, | |
| 410 | 445 | "Move", BMP_MOVE, |
| 411 | - kind = aui.ITEM_RADIO) | |
| 446 | + kind = wx.ITEM_CHECK) | |
| 412 | 447 | |
| 413 | - self.AddSimpleTool(ID_CONTRAST, | |
| 448 | + self.AddLabelTool(ID_CONTRAST, | |
| 414 | 449 | "Window and Level", BMP_CONTRAST, |
| 415 | - kind = aui.ITEM_RADIO) | |
| 450 | + kind = wx.ITEM_CHECK) | |
| 416 | 451 | self.Realize() |
| 417 | 452 | |
| 418 | 453 | |
| ... | ... | @@ -424,42 +459,41 @@ class ObjectToolBar(aui.AuiToolBar): |
| 424 | 459 | 'Untoggle object toolbar items') |
| 425 | 460 | |
| 426 | 461 | def OnClick(self, evt): |
| 427 | - print "OnClick", evt.GetId() | |
| 428 | 462 | id = evt.GetId() |
| 429 | - state = self.GetToolToggled(id) | |
| 430 | - label = self.GetToolLabel(id) | |
| 431 | - | |
| 432 | - #if id != ID_ZOOM: | |
| 433 | - # print "Toggled zoom off" | |
| 434 | - # self.ToggleTool(ID_ZOOM, 0) | |
| 463 | + state = self.GetToolState(id) | |
| 435 | 464 | |
| 436 | 465 | if state: |
| 437 | 466 | ps.Publisher().sendMessage(('Set interaction mode', |
| 438 | 467 | MODE_BY_ID[id])) |
| 468 | + ps.Publisher().sendMessage('Untoggle slice toolbar items') | |
| 439 | 469 | else: |
| 440 | 470 | ps.Publisher().sendMessage(('Set interaction mode', |
| 441 | - MODE_SLICE_EDITOR)) | |
| 442 | - ps.Publisher().sendMessage('Untoggle slice toolbar items') | |
| 471 | + const.MODE_SLICE_EDITOR)) | |
| 472 | + | |
| 443 | 473 | |
| 444 | - for id in OBJ_TOOLS: | |
| 445 | - print "-- id: %d, state: %d", id, self.GetToolToggled(id) | |
| 446 | 474 | |
| 447 | - | |
| 475 | + for item in OBJ_TOOLS: | |
| 476 | + state = self.GetToolState(item) | |
| 477 | + if state and (item != id): | |
| 478 | + self.ToggleTool(item, False) | |
| 479 | + | |
| 448 | 480 | evt.Skip() |
| 449 | 481 | |
| 450 | - def UntoggleAllItems(self, pubsub_evt): | |
| 482 | + def UntoggleAllItems(self, pubsub_evt=None): | |
| 451 | 483 | for id in OBJ_TOOLS: |
| 452 | - state = self.GetToolToggled(id) | |
| 484 | + state = self.GetToolState(id) | |
| 453 | 485 | if state: |
| 454 | 486 | self.ToggleTool(id, False) |
| 455 | 487 | |
| 456 | 488 | # ------------------------------------------------------------------- |
| 457 | 489 | |
| 458 | -class SliceToolBar(aui.AuiToolBar): | |
| 490 | +class SliceToolBar(wx.ToolBar): | |
| 459 | 491 | def __init__(self, parent): |
| 460 | - aui.AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 461 | - wx.DefaultSize, aui.AUI_TB_DEFAULT_STYLE) | |
| 462 | - self.SetToolBitmapSize(wx.Size(16,16)) | |
| 492 | + wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 493 | + wx.DefaultSize, | |
| 494 | + wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE) | |
| 495 | + | |
| 496 | + self.SetToolBitmapSize(wx.Size(32,32)) | |
| 463 | 497 | |
| 464 | 498 | self.parent = parent |
| 465 | 499 | self.__init_items() |
| ... | ... | @@ -467,10 +501,15 @@ class SliceToolBar(aui.AuiToolBar): |
| 467 | 501 | self.__bind_events_wx() |
| 468 | 502 | |
| 469 | 503 | def __init_items(self): |
| 470 | - BMP_SLICE = wx.Bitmap("../icons/slice.png", | |
| 471 | - wx.BITMAP_TYPE_PNG) | |
| 472 | - self.AddSimpleTool(ID_SLICE_SCROLL, "Scroll slice", | |
| 473 | - BMP_SLICE, kind = aui.ITEM_RADIO) | |
| 504 | + if sys.platform == 'darwin': | |
| 505 | + BMP_SLICE = wx.Bitmap("../icons/slice_original.png", | |
| 506 | + wx.BITMAP_TYPE_PNG) | |
| 507 | + else: | |
| 508 | + BMP_SLICE = wx.Bitmap("../icons/slice.png", | |
| 509 | + wx.BITMAP_TYPE_PNG) | |
| 510 | + | |
| 511 | + self.AddLabelTool(ID_SLICE_SCROLL, "Scroll slice", | |
| 512 | + BMP_SLICE, kind = wx.ITEM_CHECK) | |
| 474 | 513 | |
| 475 | 514 | self.Realize() |
| 476 | 515 | |
| ... | ... | @@ -484,47 +523,63 @@ class SliceToolBar(aui.AuiToolBar): |
| 484 | 523 | def OnClick(self, evt): |
| 485 | 524 | |
| 486 | 525 | id = evt.GetId() |
| 487 | - state = self.GetToolToggled(id) | |
| 488 | - label = self.GetToolLabel(id) | |
| 526 | + state = self.GetToolState(id) | |
| 489 | 527 | |
| 490 | 528 | if state: |
| 491 | 529 | ps.Publisher().sendMessage(('Set interaction mode', |
| 492 | 530 | SLICE_MODE_BY_ID[id])) |
| 531 | + ps.Publisher().sendMessage('Untoggle object toolbar items') | |
| 493 | 532 | else: |
| 494 | 533 | ps.Publisher().sendMessage(('Set interaction mode', |
| 495 | 534 | const.MODE_SLICE_EDITOR)) |
| 496 | - ps.Publisher().sendMessage('Untoggle object toolbar items') | |
| 535 | + | |
| 536 | + | |
| 537 | + for item in SLICE_TOOLS: | |
| 538 | + state = self.GetToolState(item) | |
| 539 | + if state and (item != id): | |
| 540 | + self.ToggleTool(item, False) | |
| 497 | 541 | |
| 498 | 542 | evt.Skip() |
| 499 | 543 | |
| 500 | 544 | |
| 501 | 545 | def UntoggleAllItem(self, pubsub_evt): |
| 502 | 546 | for id in SLICE_TOOLS: |
| 503 | - state = self.GetToolToggled(id) | |
| 547 | + state = self.GetToolState(id) | |
| 504 | 548 | if state: |
| 505 | 549 | self.ToggleTool(id, False) |
| 506 | 550 | |
| 507 | 551 | # --------------------------------------------------------------------- |
| 508 | 552 | |
| 509 | -class LayoutToolBar(aui.AuiToolBar): | |
| 553 | +class LayoutToolBar(wx.ToolBar): | |
| 510 | 554 | # TODO: what will appear in menubar? |
| 511 | 555 | def __init__(self, parent): |
| 512 | - aui.AuiToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 513 | - wx.DefaultSize, aui.AUI_TB_DEFAULT_STYLE) | |
| 556 | + wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, | |
| 557 | + wx.DefaultSize, | |
| 558 | + wx.TB_FLAT|wx.TB_NODIVIDER | wx.TB_DOCKABLE) | |
| 514 | 559 | |
| 515 | - self.SetToolBitmapSize(wx.Size(16,16)) | |
| 560 | + self.SetToolBitmapSize(wx.Size(32,32)) | |
| 516 | 561 | |
| 517 | 562 | self.parent = parent |
| 518 | 563 | self.__init_items() |
| 519 | 564 | self.__bind_events() |
| 520 | 565 | |
| 521 | 566 | def __init_items(self): |
| 522 | - BMP_ROTATE = wx.Bitmap("../icons/layout_data_only.gif", | |
| 567 | + | |
| 568 | + if sys.platform == 'darwin': | |
| 569 | + BMP_WITHOUT_MENU =\ | |
| 570 | + wx.Bitmap("../icons/layout_data_only_original.gif", | |
| 523 | 571 | wx.BITMAP_TYPE_GIF) |
| 524 | - BMP_TRANSLATE = wx.Bitmap("../icons/layout_full.gif", | |
| 572 | + BMP_WITH_MENU = wx.Bitmap("../icons/layout_full_original.gif", | |
| 525 | 573 | wx.BITMAP_TYPE_GIF) |
| 526 | - self.AddSimpleTool(101, "Rotate image", BMP_ROTATE) | |
| 527 | - self.AddSimpleTool(101, "Translate image", BMP_TRANSLATE) | |
| 574 | + | |
| 575 | + else: | |
| 576 | + BMP_WITHOUT_MENU = wx.Bitmap("../icons/layout_data_only.gif", | |
| 577 | + wx.BITMAP_TYPE_GIF) | |
| 578 | + BMP_WITH_MENU = wx.Bitmap("../icons/layout_full.gif", | |
| 579 | + wx.BITMAP_TYPE_GIF) | |
| 580 | + | |
| 581 | + self.AddLabelTool(101, "Rotate image", BMP_WITHOUT_MENU) | |
| 582 | + self.AddLabelTool(101, "Translate image", BMP_WITH_MENU) | |
| 528 | 583 | |
| 529 | 584 | self.Realize() |
| 530 | 585 | ... | ... |