Commit a3bd2801bd69be25c5e8c02e71f45fa6f3f44df3

Authored by Thiago Franco de Moraes
1 parent 1069a8c1
Exists in wx2.9_mac

create our own art provider to simplify the toolbar icons

Showing 1 changed file with 83 additions and 113 deletions   Show diff stats
invesalius/gui/frame.py
... ... @@ -46,6 +46,48 @@ VIEW_TOOLS = [ID_LAYOUT, ID_TEXT] =\
46 46 [wx.NewId() for number in range(2)]
47 47  
48 48  
  49 +def scale_bitmap(bitmap, width, height):
  50 + image = wx.ImageFromBitmap(bitmap)
  51 + image = image.Scale(width, height, wx.IMAGE_QUALITY_HIGH)
  52 + result = wx.BitmapFromImage(image)
  53 + return result
  54 +
  55 +d = const.ICON_DIR
  56 +ARTID_FNAME = {'tool_rotate': os.path.join(d, "tool_rotate_original.png"),
  57 + 'tool_translate': os.path.join(d, "tool_translate_original.png"),
  58 + 'tool_zoom': os.path.join(d, "tool_zoom_original.png"),
  59 + 'tool_zoom_select': os.path.join(d, "tool_zoom_select_original.png"),
  60 + 'tool_contraste' :os.path.join(d, "tool_contrast_original.png"),
  61 + 'measure_linear': os.path.join(d, "measure_line_original.png"),
  62 + 'measure_angle': os.path.join(d, "measure_angle_original.png"),
  63 +
  64 + 'slice': os.path.join(d, "slice_original.png"),
  65 + 'cross': os.path.join(d, "cross_original.png"),
  66 +
  67 + 'file_from_internet': os.path.join(d,"file_from_internet_original.png"),
  68 + 'file_import': os.path.join(d, "file_import_original.png"),
  69 + 'file_open': os.path.join(d, "file_open_original.png"),
  70 + 'file_save': os.path.join(d, "file_save_original.png"),
  71 + 'print': os.path.join(d, "print_original.png"),
  72 + 'tool_photo': os.path.join(d, "tool_photo_original.png"),
  73 +
  74 + 'layout_data_only': os.path.join(d, "layout_data_only_original.png"),
  75 + 'layout_full': os.path.join(d, "layout_full_original.png"),
  76 + 'text_inverted': os.path.join(d, "text_inverted_original.png"),
  77 + 'text': os.path.join(d, "text_original.png"),
  78 + }
  79 +
  80 +
  81 +class MyArtProvider(wx.ArtProvider):
  82 + def __init__(self):
  83 + wx.ArtProvider.__init__(self)
  84 +
  85 + def CreateBitmap(self, artid, client, size):
  86 + path = ARTID_FNAME[artid]
  87 + tmp_bmp = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  88 + #bmp = scale_bitmap(tmp_bmp, size.width, size.height)
  89 + return tmp_bmp
  90 +
49 91  
50 92 class MessageWatershed(wx.PopupWindow):
51 93 def __init__(self, prnt, msg):
... ... @@ -862,42 +904,21 @@ class ProjectToolBar(wx.ToolBar):
862 904 """
863 905 # Load bitmaps
864 906 d = const.ICON_DIR
  907 + client = "wx.ART_TOOLBAR"
  908 + wx.ArtProvider.Push(MyArtProvider())
865 909 if sys.platform == 'darwin' and wx.VERSION < (2, 9):
866   - path = os.path.join(d,"file_from_internet_original.png")
867   - BMP_NET = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
868   -
869   - path = os.path.join(d, "file_import_original.png")
870   - BMP_IMPORT = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
871   -
872   - path = os.path.join(d, "file_open_original.png")
873   - BMP_OPEN = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
874   -
875   - path = os.path.join(d, "file_save_original.png")
876   - BMP_SAVE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
877   -
878   - path = os.path.join(d, "print_original.png")
879   - BMP_PRINT = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
880   -
881   - path = os.path.join(d, "tool_photo_original.png")
882   - BMP_PHOTO = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  910 + size = 48, 48
883 911 else:
884   - path = os.path.join(d, "file_from_internet.png")
885   - BMP_NET = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
886   -
887   - path = os.path.join(d, "file_import.png")
888   - BMP_IMPORT = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
889   -
890   - path = os.path.join(d, "file_open.png")
891   - BMP_OPEN = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
892   -
893   - path = os.path.join(d, "file_save.png")
894   - BMP_SAVE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  912 + size = 32, 32
895 913  
896   - path = os.path.join(d, "print.png")
897   - BMP_PRINT = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  914 + BMP_NET = wx.ArtProvider.GetBitmap('file_from_internet', client, size)
  915 + BMP_IMPORT = wx.ArtProvider.GetBitmap('file_import', client, size)
  916 + BMP_OPEN = wx.ArtProvider.GetBitmap('file_open', client, size)
  917 + BMP_SAVE = wx.ArtProvider.GetBitmap('file_save', client, size)
  918 + BMP_PRINT = wx.ArtProvider.GetBitmap('print', client, size)
  919 + BMP_PHOTO = wx.ArtProvider.GetBitmap('tool_photo', client, size)
898 920  
899   - path = os.path.join(d, "tool_photo.png")
900   - BMP_PHOTO = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  921 + wx.ArtProvider.Pop()
901 922  
902 923 # Create tool items based on bitmaps
903 924 self.AddLabelTool(const.ID_DICOM_IMPORT,
... ... @@ -1002,55 +1023,22 @@ class ObjectToolBar(wx.ToolBar):
1002 1023 Add tools into toolbar.
1003 1024 """
1004 1025 d = const.ICON_DIR
  1026 + client = "wx.ART_TOOLBAR"
  1027 + wx.ArtProvider.Push(MyArtProvider())
1005 1028 if sys.platform == 'darwin' and wx.VERSION < (2, 9):
1006   - path = os.path.join(d, "tool_rotate_original.png")
1007   - BMP_ROTATE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1008   -
1009   - path = os.path.join(d, "tool_translate_original.png")
1010   - BMP_MOVE =wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1011   -
1012   - path = os.path.join(d, "tool_zoom_original.png")
1013   - BMP_ZOOM = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1014   -
1015   - path = os.path.join(d, "tool_zoom_select_original.png")
1016   - BMP_ZOOM_SELECT = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1017   -
1018   - path = os.path.join(d, "tool_contrast_original.png")
1019   - BMP_CONTRAST = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1020   -
1021   - path = os.path.join(d, "measure_line_original.png")
1022   - BMP_DISTANCE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1023   -
1024   - path = os.path.join(d, "measure_angle_original.png")
1025   - BMP_ANGLE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1026   -
1027   - #path = os.path.join(d, "tool_annotation_original.png")
1028   - #BMP_ANNOTATE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1029   -
  1029 + size = 48, 48
1030 1030 else:
1031   - path = os.path.join(d, "tool_rotate.png")
1032   - BMP_ROTATE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1031 + size = 32, 32
1033 1032  
1034   - path = os.path.join(d, "tool_translate.png")
1035   - BMP_MOVE =wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1033 + BMP_ROTATE = wx.ArtProvider.GetBitmap('tool_rotate', client, size)
  1034 + BMP_MOVE = wx.ArtProvider.GetBitmap('tool_translate', client, size)
  1035 + BMP_ZOOM = wx.ArtProvider.GetBitmap('tool_zoom', client, size)
  1036 + BMP_ZOOM_SELECT = wx.ArtProvider.GetBitmap('tool_zoom_select', client, size)
  1037 + BMP_CONTRAST = wx.ArtProvider.GetBitmap('tool_contraste', client, size)
  1038 + BMP_DISTANCE = wx.ArtProvider.GetBitmap('measure_linear', client, size)
  1039 + BMP_ANGLE = wx.ArtProvider.GetBitmap('measure_angle', client, size)
1036 1040  
1037   - path = os.path.join(d, "tool_zoom.png")
1038   - BMP_ZOOM = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1039   -
1040   - path = os.path.join(d, "tool_zoom_select.png")
1041   - BMP_ZOOM_SELECT = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1042   -
1043   - path = os.path.join(d, "tool_contrast.png")
1044   - BMP_CONTRAST = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1045   -
1046   - path = os.path.join(d, "measure_line.png")
1047   - BMP_DISTANCE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1048   -
1049   - path = os.path.join(d, "measure_angle.png")
1050   - BMP_ANGLE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
1051   -
1052   - #path = os.path.join(d, "tool_annotation.png")
1053   - #BMP_ANNOTATE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1041 + wx.ArtProvider.Pop()
1054 1042  
1055 1043 # Create tool items based on bitmaps
1056 1044 self.AddLabelTool(const.STATE_ZOOM,
... ... @@ -1212,19 +1200,18 @@ class SliceToolBar(wx.ToolBar):
1212 1200 """
1213 1201 Add tools into toolbar.
1214 1202 """
1215   - d = const.ICON_DIR
1216   - if sys.platform == 'darwin' and wx.VERSION < (2, 9):
1217   - path = os.path.join(d, "slice_original.png")
1218   - BMP_SLICE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1203 + client = "wx.ART_TOOLBAR"
  1204 + wx.ArtProvider.Push(MyArtProvider())
1219 1205  
1220   - path = os.path.join(d,"cross_original.png")
1221   - BMP_CROSS = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1206 + if sys.platform == 'darwin' and wx.VERSION < (2, 9):
  1207 + size = 48, 48
1222 1208 else:
1223   - path = os.path.join(d, "slice.png")
1224   - BMP_SLICE = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1209 + size = 32, 32
  1210 +
  1211 + BMP_SLICE = wx.ArtProvider.GetBitmap('slice', client, size)
  1212 + BMP_CROSS = wx.ArtProvider.GetBitmap('cross', client, size)
1225 1213  
1226   - path = os.path.join(d,"cross.png")
1227   - BMP_CROSS = wx.Bitmap(path, wx.BITMAP_TYPE_PNG)
  1214 + wx.ArtProvider.Pop()
1228 1215  
1229 1216 self.AddCheckTool(const.SLICE_STATE_SCROLL,
1230 1217 BMP_SLICE,
... ... @@ -1356,36 +1343,19 @@ class LayoutToolBar(wx.ToolBar):
1356 1343 Add tools into toolbar.
1357 1344 """
1358 1345 d = const.ICON_DIR
  1346 + client = "wx.ART_TOOLBAR"
  1347 + wx.ArtProvider.Push(MyArtProvider())
1359 1348 if sys.platform == 'darwin' and wx.VERSION < (2, 9):
1360   - # Bitmaps for show/hide task panel item
1361   - p = os.path.join(d, "layout_data_only_original.gif")
1362   - self.BMP_WITH_MENU = wx.Bitmap(p, wx.BITMAP_TYPE_GIF)
1363   -
1364   - p = os.path.join(d, "layout_full_original.gif")
1365   - self.BMP_WITHOUT_MENU = wx.Bitmap(p, wx.BITMAP_TYPE_GIF)
1366   -
1367   - # Bitmaps for show/hide task item
1368   - p = os.path.join(d, "text_inverted_original.png")
1369   - self.BMP_WITHOUT_TEXT = wx.Bitmap(p, wx.BITMAP_TYPE_PNG)
1370   -
1371   - p = os.path.join(d, "text_original.png")
1372   - self.BMP_WITH_TEXT = wx.Bitmap(p, wx.BITMAP_TYPE_PNG)
1373   -
  1349 + size = 48, 48
1374 1350 else:
1375   - # Bitmaps for show/hide task panel item
1376   - p = os.path.join(d, "layout_data_only.gif")
1377   - self.BMP_WITH_MENU = wx.Bitmap(p, wx.BITMAP_TYPE_GIF)
1378   -
1379   - p = os.path.join(d, "layout_full.gif")
1380   - self.BMP_WITHOUT_MENU = wx.Bitmap(p, wx.BITMAP_TYPE_GIF)
1381   -
1382   - # Bitmaps for show/hide task item
1383   - p = os.path.join(d, "text_inverted.png")
1384   - self.BMP_WITHOUT_TEXT = wx.Bitmap(p, wx.BITMAP_TYPE_PNG)
  1351 + size = 32, 32
1385 1352  
1386   - p = os.path.join(d, "text.png")
1387   - self.BMP_WITH_TEXT = wx.Bitmap(p, wx.BITMAP_TYPE_PNG)
  1353 + self.BMP_WITHOUT_MENU = wx.ArtProvider.GetBitmap('layout_data_only', client, size)
  1354 + self.BMP_WITH_MENU = wx.ArtProvider.GetBitmap('layout_full', client, size)
  1355 + self.BMP_WITH_TEXT = wx.ArtProvider.GetBitmap('text_inverted', client, size)
  1356 + self.BMP_WITHOUT_TEXT = wx.ArtProvider.GetBitmap('text', client, size)
1388 1357  
  1358 + wx.ArtProvider.Pop()
1389 1359 self.AddLabelTool(ID_LAYOUT,
1390 1360 "",
1391 1361 bitmap=self.BMP_WITHOUT_MENU,
... ...