Commit a3bd2801bd69be25c5e8c02e71f45fa6f3f44df3
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,6 +46,48 @@ VIEW_TOOLS = [ID_LAYOUT, ID_TEXT] =\ | ||
46 | [wx.NewId() for number in range(2)] | 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 | class MessageWatershed(wx.PopupWindow): | 92 | class MessageWatershed(wx.PopupWindow): |
51 | def __init__(self, prnt, msg): | 93 | def __init__(self, prnt, msg): |
@@ -862,42 +904,21 @@ class ProjectToolBar(wx.ToolBar): | @@ -862,42 +904,21 @@ class ProjectToolBar(wx.ToolBar): | ||
862 | """ | 904 | """ |
863 | # Load bitmaps | 905 | # Load bitmaps |
864 | d = const.ICON_DIR | 906 | d = const.ICON_DIR |
907 | + client = "wx.ART_TOOLBAR" | ||
908 | + wx.ArtProvider.Push(MyArtProvider()) | ||
865 | if sys.platform == 'darwin' and wx.VERSION < (2, 9): | 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 | else: | 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 | # Create tool items based on bitmaps | 923 | # Create tool items based on bitmaps |
903 | self.AddLabelTool(const.ID_DICOM_IMPORT, | 924 | self.AddLabelTool(const.ID_DICOM_IMPORT, |
@@ -1002,55 +1023,22 @@ class ObjectToolBar(wx.ToolBar): | @@ -1002,55 +1023,22 @@ class ObjectToolBar(wx.ToolBar): | ||
1002 | Add tools into toolbar. | 1023 | Add tools into toolbar. |
1003 | """ | 1024 | """ |
1004 | d = const.ICON_DIR | 1025 | d = const.ICON_DIR |
1026 | + client = "wx.ART_TOOLBAR" | ||
1027 | + wx.ArtProvider.Push(MyArtProvider()) | ||
1005 | if sys.platform == 'darwin' and wx.VERSION < (2, 9): | 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 | else: | 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 | # Create tool items based on bitmaps | 1043 | # Create tool items based on bitmaps |
1056 | self.AddLabelTool(const.STATE_ZOOM, | 1044 | self.AddLabelTool(const.STATE_ZOOM, |
@@ -1212,19 +1200,18 @@ class SliceToolBar(wx.ToolBar): | @@ -1212,19 +1200,18 @@ class SliceToolBar(wx.ToolBar): | ||
1212 | """ | 1200 | """ |
1213 | Add tools into toolbar. | 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 | else: | 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 | self.AddCheckTool(const.SLICE_STATE_SCROLL, | 1216 | self.AddCheckTool(const.SLICE_STATE_SCROLL, |
1230 | BMP_SLICE, | 1217 | BMP_SLICE, |
@@ -1356,36 +1343,19 @@ class LayoutToolBar(wx.ToolBar): | @@ -1356,36 +1343,19 @@ class LayoutToolBar(wx.ToolBar): | ||
1356 | Add tools into toolbar. | 1343 | Add tools into toolbar. |
1357 | """ | 1344 | """ |
1358 | d = const.ICON_DIR | 1345 | d = const.ICON_DIR |
1346 | + client = "wx.ART_TOOLBAR" | ||
1347 | + wx.ArtProvider.Push(MyArtProvider()) | ||
1359 | if sys.platform == 'darwin' and wx.VERSION < (2, 9): | 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 | else: | 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 | self.AddLabelTool(ID_LAYOUT, | 1359 | self.AddLabelTool(ID_LAYOUT, |
1390 | "", | 1360 | "", |
1391 | bitmap=self.BMP_WITHOUT_MENU, | 1361 | bitmap=self.BMP_WITHOUT_MENU, |