Commit c6e7c193ddc57ac6e423a60a4cb74fa65b25fde3

Authored by tatiana
1 parent c8881dc5

ENH: Removed devil icon... Still need to enhace icons.

invesalius/gui/default_tasks.py
... ... @@ -96,8 +96,8 @@ class Panel(wx.Panel):
96 96 size=wx.Size(280, 656))
97 97  
98 98 sizer = wx.BoxSizer(wx.VERTICAL)
99   - sizer.Add(UpperTaskPanel(self), 4, wx.EXPAND|wx.GROW)
100   - sizer.Add(LowerTaskPanel(self), 2, wx.EXPAND|wx.GROW)
  99 + sizer.Add(UpperTaskPanel(self), 5, wx.EXPAND|wx.GROW)
  100 + sizer.Add(LowerTaskPanel(self), 3, wx.EXPAND|wx.GROW)
101 101  
102 102 self.SetSizer(sizer)
103 103  
... ... @@ -105,7 +105,7 @@ class Panel(wx.Panel):
105 105 class LowerTaskPanel(wx.Panel):
106 106 def __init__(self, parent):
107 107 wx.Panel.__init__(self, parent, pos=wx.Point(5, 5),
108   - size=wx.Size(280, 656))
  108 + size=wx.Size(280, 700))
109 109  
110 110 fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition,
111 111 self.GetSize(),fpb.FPB_DEFAULT_STYLE,
... ...
invesalius/gui/frame.py
... ... @@ -80,16 +80,23 @@ class Frame(wx.Frame):
80 80  
81 81  
82 82 # Add toolbars to manager
83   - aui_manager.AddPane(ToolBar(self), wx.aui.AuiPaneInfo().
84   - Name("Project Toolbar").
  83 +
  84 + aui_manager.AddPane(ObjectToolBar(self), wx.aui.AuiPaneInfo().
  85 + Name("General Features Toolbar").
85 86 ToolbarPane().Top().Floatable(False).
86 87 LeftDockable(False).RightDockable(False))
87 88  
88   - aui_manager.AddPane(ToolBar(self), wx.aui.AuiPaneInfo().
89   - Name("General Features Toolbar").
  89 + #aui_manager.AddPane(LayoutToolBar(self), wx.aui.AuiPaneInfo().
  90 + # Name("Layout Toolbar").
  91 + # ToolbarPane().Top().Floatable(False).
  92 + # LeftDockable(False).RightDockable(False))
  93 +
  94 + aui_manager.AddPane(ProjectToolBar(self), wx.aui.AuiPaneInfo().
  95 + Name("Project Toolbar").
90 96 ToolbarPane().Top().Floatable(False).
91 97 LeftDockable(False).RightDockable(False))
92 98  
  99 +
93 100 aui_manager.Update()
94 101  
95 102 self.perspective_all = aui_manager.SavePerspective()
... ... @@ -246,21 +253,83 @@ class TaskBarIcon(wx.TaskBarIcon):
246 253  
247 254 # ------------------------------------------------------------------------------
248 255  
249   -class ToolBar(wx.ToolBar):
  256 +class ProjectToolBar(wx.ToolBar):
250 257 # TODO: what will appear in menubar?
251 258 def __init__(self, parent):
252 259 wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_FLAT|wx.TB_NODIVIDER)
253   - self.SetToolBitmapSize(wx.Size(16,16))
  260 + self.SetToolBitmapSize(wx.Size(25,25))
254 261 self.parent = parent
255 262 self.__init_items()
256 263 self.__bind_events()
257 264  
258 265 def __init_items(self):
259   - bmp = wx.ArtProvider_GetBitmap(wx.ART_QUESTION, wx.ART_OTHER, wx.Size(16,16))
260   - self.AddLabelTool(101, "Test", bmp)
261   - self.AddLabelTool(101, "Test", bmp)
262   - self.AddLabelTool(101, "Test", bmp)
263   - self.AddLabelTool(101, "Test", bmp)
  266 +
  267 + BMP_IMPORT = wx.Bitmap("../icons/file_import.png", wx.BITMAP_TYPE_PNG)
  268 + BMP_EXPORT = wx.Bitmap("../icons/file_export.png", wx.BITMAP_TYPE_PNG)
  269 + BMP_NET = wx.Bitmap("../icons/file_from_internet.png", wx.BITMAP_TYPE_PNG)
  270 + BMP_SAVE = wx.Bitmap("../icons/file_save.png", wx.BITMAP_TYPE_PNG)
  271 +
  272 + self.AddLabelTool(101, "Import medical image...", BMP_IMPORT)
  273 + self.AddLabelTool(101, "Export data.", BMP_EXPORT)
  274 + self.AddLabelTool(101, "Load medical image...", BMP_NET)
  275 + self.AddLabelTool(101, "Save InVesalius project", BMP_SAVE)
  276 +
  277 + self.Realize()
  278 +
  279 + def __bind_events(self):
  280 + pass
  281 +
  282 +class ObjectToolBar(wx.ToolBar):
  283 + # TODO: what will appear in menubar?
  284 + def __init__(self, parent):
  285 + wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_FLAT|wx.TB_NODIVIDER)
  286 + self.SetToolBitmapSize(wx.Size(25,25))
  287 + self.parent = parent
  288 + self.__init_items()
  289 + self.__bind_events()
  290 +
  291 + def __init_items(self):
  292 +
  293 + #BMP_ROTATE = wx.Bitmap("../icons/tool_rotate.gif", wx.BITMAP_TYPE_GIF)
  294 + #BMP_TRANSLATE = wx.Bitmap("../icons/tool_translate.gif", wx.BITMAP_TYPE_GIF)
  295 + BMP_ZOOM = wx.Bitmap("../icons/tool_zoom.png", wx.BITMAP_TYPE_PNG)
  296 + BMP_PHOTO = wx.Bitmap("../icons/tool_photo.png", wx.BITMAP_TYPE_PNG)
  297 + BMP_PRINT = wx.Bitmap("../icons/tool_print.png", wx.BITMAP_TYPE_PNG)
  298 +
  299 + #self.AddLabelTool(101, "Rotate image", BMP_ROTATE)
  300 + #self.AddLabelTool(101, "Translate image", BMP_TRANSLATE)
  301 + self.AddLabelTool(101, "Zoom image", BMP_ZOOM)
  302 + self.AddLabelTool(101, "Take photo of screen", BMP_PHOTO)
  303 + self.AddLabelTool(101, "Print screen", BMP_PRINT)
  304 +
  305 + self.Realize()
  306 +
  307 + def __bind_events(self):
  308 + pass
  309 +
  310 +class LayoutToolBar(wx.ToolBar):
  311 + # TODO: what will appear in menubar?
  312 + def __init__(self, parent):
  313 + wx.ToolBar.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_FLAT|wx.TB_NODIVIDER)
  314 + self.SetToolBitmapSize(wx.Size(25,25))
  315 + self.parent = parent
  316 + self.__init_items()
  317 + self.__bind_events()
  318 +
  319 + def __init_items(self):
  320 +
  321 + BMP_ROTATE = wx.Bitmap("../icons/layout_data_only.png", wx.BITMAP_TYPE_PNG)
  322 + BMP_TRANSLATE = wx.Bitmap("../icons/layout_full.png", wx.BITMAP_TYPE_PNG)
  323 + #BMP_ZOOM = wx.Bitmap("../icons/tool_zoom.png", wx.BITMAP_TYPE_PNG)
  324 + #BMP_PHOTO = wx.Bitmap("../icons/tool_photo.png", wx.BITMAP_TYPE_PNG)
  325 + #BMP_PRINT = wx.Bitmap("../icons/tool_print.png", wx.BITMAP_TYPE_PNG)
  326 +
  327 + self.AddLabelTool(101, "Rotate image", BMP_ROTATE)
  328 + self.AddLabelTool(101, "Translate image", BMP_TRANSLATE)
  329 + #self.AddLabelTool(101, "Zoom image", BMP_ZOOM)
  330 + #self.AddLabelTool(101, "Take photo of screen", BMP_PHOTO)
  331 + #self.AddLabelTool(101, "Print screen", BMP_PRINT)
  332 +
264 333 self.Realize()
265 334  
266 335 def __bind_events(self):
... ...
invesalius/gui/task_importer.py
... ... @@ -20,7 +20,6 @@ import os
20 20 import wx
21 21 import wx.lib.hyperlink as hl
22 22 import wx.lib.platebtn as pbtn
23   -import wx.lib.embeddedimage as emb
24 23  
25 24 BTN_IMPORT_LOCAL = wx.NewId()
26 25 BTN_IMPORT_PACS = wx.NewId()
... ... @@ -31,44 +30,6 @@ WILDCARD_OPEN = "InVesalius 1 project (*.promed)|*.promed|"\
31 30 "InVesalius 3 project (*.iv3)|*.iv3|"\
32 31 "All files (*.*)|*.*"
33 32  
34   -
35   -Devil = emb.PyEmbeddedImage(
36   - "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABrpJ"
37   - "REFUWIXtlluMlVcVx3/7u57LzLkMc5gbw2UovFRupQ1INdRkkkrIPDRpLSFREqk8oFKrPhmR"
38   - "oEkfNLFJ39SQkrZGJGRMarCpVWmlLa2OCjOtpVBmgJnOfc79zHf/tg/nO5PTEQEbE1/6T/45"
39   - "315n7b3+e+21sjd8iv8zRPPgtKKc9aV8UArxfT0Mf/4lcI+BocMXNME+BT4XQi6UtCqCigJz"
40   - "oeQNH055cO44uKfB8BTlGwKOqvDW42G49+4FmGrx4Z9uSt98J+988JupwmzFe6mi8NjKroS6"
41   - "bmOqNbcqKWKtOnpMxbMCrIrH3ERNXr9SrsxOLwatIYMrs8bAvY91Z7q3ZIyz37xU2h/KzO0E"
42   - "qM2DR6QwWztzu9ZoG81W22ipFQr39XQl4jv2dJlpLKHnC4iZBeTEHCyUMGoW6bQm+j7TbspJ"
43   - "J55NZ+974KEHkh2dveqNkXln+r35Hw9K+fpdZ+AFSKmKMvX5desSLYZB1XG4MH6d7dtBjYNq"
44   - "gtDqs2QAoQuhDUFNMjQs2L2uj5iuU3Vdzo+OLi5K2fkEVG4nQGse3IDWFVJyZWGOvkwbw9OT"
45   - "rO4FrQW0JKgxgdCbBDgQGBIUQU8nDH00zqbObq7lFyiDnIcUdxCgND4kCB3ObtycM4uexd8n"
46   - "b7Kyw6NrLWgtAq1VoKVBzwqMrEDPgJ6K/ktCzxrIZFyGJm5Q8izWb8zGdDgrl2V5OZZqwIB9"
47   - "3e3xL9+7tT3eVsjT2SVJrRR4cfj6JcmTb4f88SPYuUHQ2S5wEHz1lZAnL4Scm4dtGUFvAlYY"
48   - "kJYh2b52pVhyEr+zg7E/wbu3zcAx0DR4ZuuWlSnn0hRIiVDr5/3sqKQ3BdcOaRy4X/Dt34fo"
49   - "GcFP/hqyOiu4ckBl/3rB0ashiibq85A478+zeWNbSoNnji076mYIgB9Bf097/Mxnt3aknXeu"
50   - "o2cEepZ6qrMCLQtmZNMyAi0OXgGcgsQvSrwC2HlJUASvIHELEq8Ise1dXLicL02VnEePwh+i"
51   - "o44jxBmggpRPKwAm7Ovtbkn5ExVkWPdCggxBhhIR1ItOehBa4JchdCT4kT0ARYKUEtmYK8Gf"
52   - "rtHTnkiZsE+CKoX4IfAEMA4EwEgjNbuzKxLCvzgTLSiRvkD6IN16uwW2RGgCGUhQIptVb8PQ"
53   - "q1N61OcE9eX9gk3bPW0C2O3BTl3KUQEnpZQGoAmQGkAIuVhMZcSGMNBRanGCqXKUik+OlJak"
54   - "V1cIIVeA6Tg8DpwU4FJnvTgCSGuGigxCNgwOkuzoIJHLMTo6yrZt2zBNE9M0UdV604yMjLBp"
55   - "06aPBQvDkKGhIfr6+rBtm9nz57l++DCGJggg3QHXJiA7Df2dUT1A1AUqlLxFD+l56D09qKkU"
56   - "ALqu33Jnmnbrom72N7q68F0Hz/ZRoQSQhyNVeHYCdn1MgAJzds1Da0niTU7eMdDdCPALBTRF"
57   - "wbIDFJgD2AyFCnytDL/9EDYsCQBeX5i3ZFxXsC9fvuWCdyOg2W5duYKphCyUHAksXUjb4M0S"
58   - "/KoEJ5cEOHBqYqZWzrVr5J9//n+SgfkXXySb0pgs2GUHTjX7VeFEFXa9AesVAB9eWyg5lpbQ"
59   - "8D+8SnVo6BNloOFfHR7GHRtFM1UKNc/y4bVmvzJkK0ANQgXgOPg+PPXutWJ59eoEY0eO4C0s"
60   - "/MdAjW64lQCvVOKfBw+yqk3lvclq2YenjoMPcBrUX8BABV4ow5sPw9jSbfg9+PVsxR0r2H6Q"
61   - "M1yG9+4lnJ39rzIgy2X+0t9Pyi2Td8Nw0vKtSbj/u/CzH8Cr12CmDC+VYbYK+6DpOhYgyzBw"
62   - "8UapoKQM2pVFRvbs4caJE8gwvKOAm6dO8daOHbRU5tCTGv+YqSnXocOC75Tg0Dz0z8L4NHzr"
63   - "Kuw8BBNR3CUYQOwg7LhHcGZrbyqZM1V1fMZHJpKsO3CAnoEBkmvXEiYSqJZFbXycqZdfZuy5"
64   - "5wjyC/SkBbO+5OJMTV6GiSpMSphwYXgO3v4bfABYgB3RbQhQgHiDD0FfP5zMpYzOzd2tMcX2"
65   - "KRY9bHRc18N1HHTTwNB1YoFLulVDmiqX5hbdmZqX/yU8fbW+w0YwaxkbtlpzBmJNImJJaPkK"
66   - "7F8FhzNJXV2TMuIrErowNAVdUXD9ANcLmK/58mbVtYuWL0dgcBBe9WCxaZfWLb4t6k81f/lz"
67   - "SQcSgBkJMtPQ8kV4cC3saYEtCmQExCXYAZSK8P5l+PM5uGSBA3gRGxeO00QLqEW/cnkNNENE"
68   - "NdEQYkTitIhqdGwiYvQKIKR+z/sR3aYdu5Ht3wLdLRoBlSY2oyGgwYaoT3Fb/At4CANJRbmY"
69   - "kwAAAABJRU5ErkJggg==")
70   -
71   -
72 33 class TaskPanel(wx.Panel):
73 34 def __init__(self, parent):
74 35 wx.Panel.__init__(self, parent)
... ... @@ -125,19 +86,24 @@ class InnerTaskPanel(wx.Panel):
125 86 link_open_proj.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkOpenProject)
126 87  
127 88 # Image(s) for buttons
128   - bitmap = Devil.GetBitmap() # 32, 32
129   - bitmap.SetWidth(20)
130   - bitmap.SetHeight(20)
  89 + BMP_IMPORT = wx.Bitmap("../icons/file_import.png", wx.BITMAP_TYPE_PNG)
  90 + BMP_NET = wx.Bitmap("../icons/file_from_internet.png", wx.BITMAP_TYPE_PNG)
  91 + BMP_NULL = wx.Bitmap("../icons/object_invisible.jpg", wx.BITMAP_TYPE_JPEG)
  92 +
  93 + bmp_list = [BMP_IMPORT, BMP_NET, BMP_NULL]
  94 + for bmp in bmp_list:
  95 + bmp.SetWidth(25)
  96 + bmp.SetHeight(25)
131 97  
132 98 # Buttons related to hyperlinks
133 99 button_style = pbtn.PB_STYLE_SQUARE | pbtn.PB_STYLE_NOBG
134 100  
135 101 button_import_local = pbtn.PlateButton(self, BTN_IMPORT_LOCAL, "",
136   - bitmap, style=button_style)
137   - button_import_pacs = pbtn.PlateButton(self, BTN_IMPORT_PACS, "", bitmap,
  102 + BMP_IMPORT, style=button_style)
  103 + button_import_pacs = pbtn.PlateButton(self, BTN_IMPORT_PACS, "", BMP_NET,
138 104 style=button_style)
139 105 button_open_proj = pbtn.PlateButton(self, BTN_OPEN_PROJECT, "",
140   - bitmap, style=button_style)
  106 + BMP_NULL, style=button_style)
141 107  
142 108 # When using PlaneButton, it is necessary to bind events from parent win
143 109 self.Bind(wx.EVT_BUTTON, self.OnButton)
... ...
invesalius/gui/task_slice.py
... ... @@ -19,7 +19,6 @@
19 19  
20 20 import wx
21 21 import wx.lib.colourselect as csel
22   -import wx.lib.embeddedimage as emb
23 22 import wx.lib.hyperlink as hl
24 23 import wx.lib.platebtn as pbtn
25 24 import wx.lib.pubsub as ps
... ... @@ -46,42 +45,6 @@ MASK_LIST = []
46 45  
47 46 OP_LIST = ["Draw", "Erase", "Threshold"]
48 47  
49   -Devil = emb.PyEmbeddedImage(
50   - "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABrpJ"
51   - "REFUWIXtlluMlVcVx3/7u57LzLkMc5gbw2UovFRupQ1INdRkkkrIPDRpLSFREqk8oFKrPhmR"
52   - "oEkfNLFJ39SQkrZGJGRMarCpVWmlLa2OCjOtpVBmgJnOfc79zHf/tg/nO5PTEQEbE1/6T/45"
53   - "315n7b3+e+21sjd8iv8zRPPgtKKc9aV8UArxfT0Mf/4lcI+BocMXNME+BT4XQi6UtCqCigJz"
54   - "oeQNH055cO44uKfB8BTlGwKOqvDW42G49+4FmGrx4Z9uSt98J+988JupwmzFe6mi8NjKroS6"
55   - "bmOqNbcqKWKtOnpMxbMCrIrH3ERNXr9SrsxOLwatIYMrs8bAvY91Z7q3ZIyz37xU2h/KzO0E"
56   - "qM2DR6QwWztzu9ZoG81W22ipFQr39XQl4jv2dJlpLKHnC4iZBeTEHCyUMGoW6bQm+j7TbspJ"
57   - "J55NZ+974KEHkh2dveqNkXln+r35Hw9K+fpdZ+AFSKmKMvX5desSLYZB1XG4MH6d7dtBjYNq"
58   - "gtDqs2QAoQuhDUFNMjQs2L2uj5iuU3Vdzo+OLi5K2fkEVG4nQGse3IDWFVJyZWGOvkwbw9OT"
59   - "rO4FrQW0JKgxgdCbBDgQGBIUQU8nDH00zqbObq7lFyiDnIcUdxCgND4kCB3ObtycM4uexd8n"
60   - "b7Kyw6NrLWgtAq1VoKVBzwqMrEDPgJ6K/ktCzxrIZFyGJm5Q8izWb8zGdDgrl2V5OZZqwIB9"
61   - "3e3xL9+7tT3eVsjT2SVJrRR4cfj6JcmTb4f88SPYuUHQ2S5wEHz1lZAnL4Scm4dtGUFvAlYY"
62   - "kJYh2b52pVhyEr+zg7E/wbu3zcAx0DR4ZuuWlSnn0hRIiVDr5/3sqKQ3BdcOaRy4X/Dt34fo"
63   - "GcFP/hqyOiu4ckBl/3rB0ashiibq85A478+zeWNbSoNnji076mYIgB9Bf097/Mxnt3aknXeu"
64   - "o2cEepZ6qrMCLQtmZNMyAi0OXgGcgsQvSrwC2HlJUASvIHELEq8Ise1dXLicL02VnEePwh+i"
65   - "o44jxBmggpRPKwAm7Ovtbkn5ExVkWPdCggxBhhIR1ItOehBa4JchdCT4kT0ARYKUEtmYK8Gf"
66   - "rtHTnkiZsE+CKoX4IfAEMA4EwEgjNbuzKxLCvzgTLSiRvkD6IN16uwW2RGgCGUhQIptVb8PQ"
67   - "q1N61OcE9eX9gk3bPW0C2O3BTl3KUQEnpZQGoAmQGkAIuVhMZcSGMNBRanGCqXKUik+OlJak"
68   - "V1cIIVeA6Tg8DpwU4FJnvTgCSGuGigxCNgwOkuzoIJHLMTo6yrZt2zBNE9M0UdV604yMjLBp"
69   - "06aPBQvDkKGhIfr6+rBtm9nz57l++DCGJggg3QHXJiA7Df2dUT1A1AUqlLxFD+l56D09qKkU"
70   - "ALqu33Jnmnbrom72N7q68F0Hz/ZRoQSQhyNVeHYCdn1MgAJzds1Da0niTU7eMdDdCPALBTRF"
71   - "wbIDFJgD2AyFCnytDL/9EDYsCQBeX5i3ZFxXsC9fvuWCdyOg2W5duYKphCyUHAksXUjb4M0S"
72   - "/KoEJ5cEOHBqYqZWzrVr5J9//n+SgfkXXySb0pgs2GUHTjX7VeFEFXa9AesVAB9eWyg5lpbQ"
73   - "8D+8SnVo6BNloOFfHR7GHRtFM1UKNc/y4bVmvzJkK0ANQgXgOPg+PPXutWJ59eoEY0eO4C0s"
74   - "/MdAjW64lQCvVOKfBw+yqk3lvclq2YenjoMPcBrUX8BABV4ow5sPw9jSbfg9+PVsxR0r2H6Q"
75   - "M1yG9+4lnJ39rzIgy2X+0t9Pyi2Td8Nw0vKtSbj/u/CzH8Cr12CmDC+VYbYK+6DpOhYgyzBw"
76   - "8UapoKQM2pVFRvbs4caJE8gwvKOAm6dO8daOHbRU5tCTGv+YqSnXocOC75Tg0Dz0z8L4NHzr"
77   - "Kuw8BBNR3CUYQOwg7LhHcGZrbyqZM1V1fMZHJpKsO3CAnoEBkmvXEiYSqJZFbXycqZdfZuy5"
78   - "5wjyC/SkBbO+5OJMTV6GiSpMSphwYXgO3v4bfABYgB3RbQhQgHiDD0FfP5zMpYzOzd2tMcX2"
79   - "KRY9bHRc18N1HHTTwNB1YoFLulVDmiqX5hbdmZqX/yU8fbW+w0YwaxkbtlpzBmJNImJJaPkK"
80   - "7F8FhzNJXV2TMuIrErowNAVdUXD9ANcLmK/58mbVtYuWL0dgcBBe9WCxaZfWLb4t6k81f/lz"
81   - "SQcSgBkJMtPQ8kV4cC3saYEtCmQExCXYAZSK8P5l+PM5uGSBA3gRGxeO00QLqEW/cnkNNENE"
82   - "NdEQYkTitIhqdGwiYvQKIKR+z/sR3aYdu5Ht3wLdLRoBlSY2oyGgwYaoT3Fb/At4CANJRbmY"
83   - "kwAAAABJRU5ErkJggg==")
84   -
85 48  
86 49 class TaskPanel(wx.Panel):
87 50 def __init__(self, parent):
... ... @@ -107,15 +70,16 @@ class InnerTaskPanel(wx.Panel):
107 70 self.SetAutoLayout(1)
108 71  
109 72 # Image(s) for buttons
110   - bitmap = Devil.GetBitmap() # 32, 32
111   - bitmap.SetWidth(20)
112   - bitmap.SetHeight(20)
  73 + BMP_ADD = wx.Bitmap("../icons/object_add.png", wx.BITMAP_TYPE_PNG)
  74 + BMP_ADD.SetWidth(25)
  75 + BMP_ADD.SetHeight(25)
113 76  
114   - # Button for creating new mask
115   - button_new_mask = pbtn.PlateButton(self, BTN_NEW, "", bitmap, style=\
  77 + # Button for creating new surface
  78 + button_new_mask = pbtn.PlateButton(self, BTN_NEW, "", BMP_ADD, style=\
116 79 pbtn.PB_STYLE_SQUARE | pbtn.PB_STYLE_NOBG)
117 80 self.Bind(wx.EVT_BUTTON, self.OnButton)
118 81  
  82 +
119 83 # Fixed hyperlink items
120 84 tooltip = wx.ToolTip("Create mask for slice segmentation and edition")
121 85 link_new_mask = hl.HyperLinkCtrl(self, -1, "Create new mask")
... ...
invesalius/gui/task_surface.py
... ... @@ -18,7 +18,6 @@
18 18 #--------------------------------------------------------------------------
19 19 import wx
20 20 import wx.lib.colourselect as csel
21   -import wx.lib.embeddedimage as emb
22 21 import wx.lib.hyperlink as hl
23 22 import wx.lib.platebtn as pbtn
24 23 import wx.lib.pubsub as ps
... ... @@ -39,42 +38,6 @@ MENU_CIRCLE = wx.NewId()
39 38  
40 39 OP_LIST = ["Draw", "Erase", "Threshold"]
41 40  
42   -Devil = emb.PyEmbeddedImage(
43   - "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABrpJ"
44   - "REFUWIXtlluMlVcVx3/7u57LzLkMc5gbw2UovFRupQ1INdRkkkrIPDRpLSFREqk8oFKrPhmR"
45   - "oEkfNLFJ39SQkrZGJGRMarCpVWmlLa2OCjOtpVBmgJnOfc79zHf/tg/nO5PTEQEbE1/6T/45"
46   - "315n7b3+e+21sjd8iv8zRPPgtKKc9aV8UArxfT0Mf/4lcI+BocMXNME+BT4XQi6UtCqCigJz"
47   - "oeQNH055cO44uKfB8BTlGwKOqvDW42G49+4FmGrx4Z9uSt98J+988JupwmzFe6mi8NjKroS6"
48   - "bmOqNbcqKWKtOnpMxbMCrIrH3ERNXr9SrsxOLwatIYMrs8bAvY91Z7q3ZIyz37xU2h/KzO0E"
49   - "qM2DR6QwWztzu9ZoG81W22ipFQr39XQl4jv2dJlpLKHnC4iZBeTEHCyUMGoW6bQm+j7TbspJ"
50   - "J55NZ+974KEHkh2dveqNkXln+r35Hw9K+fpdZ+AFSKmKMvX5desSLYZB1XG4MH6d7dtBjYNq"
51   - "gtDqs2QAoQuhDUFNMjQs2L2uj5iuU3Vdzo+OLi5K2fkEVG4nQGse3IDWFVJyZWGOvkwbw9OT"
52   - "rO4FrQW0JKgxgdCbBDgQGBIUQU8nDH00zqbObq7lFyiDnIcUdxCgND4kCB3ObtycM4uexd8n"
53   - "b7Kyw6NrLWgtAq1VoKVBzwqMrEDPgJ6K/ktCzxrIZFyGJm5Q8izWb8zGdDgrl2V5OZZqwIB9"
54   - "3e3xL9+7tT3eVsjT2SVJrRR4cfj6JcmTb4f88SPYuUHQ2S5wEHz1lZAnL4Scm4dtGUFvAlYY"
55   - "kJYh2b52pVhyEr+zg7E/wbu3zcAx0DR4ZuuWlSnn0hRIiVDr5/3sqKQ3BdcOaRy4X/Dt34fo"
56   - "GcFP/hqyOiu4ckBl/3rB0ashiibq85A478+zeWNbSoNnji076mYIgB9Bf097/Mxnt3aknXeu"
57   - "o2cEepZ6qrMCLQtmZNMyAi0OXgGcgsQvSrwC2HlJUASvIHELEq8Ise1dXLicL02VnEePwh+i"
58   - "o44jxBmggpRPKwAm7Ovtbkn5ExVkWPdCggxBhhIR1ItOehBa4JchdCT4kT0ARYKUEtmYK8Gf"
59   - "rtHTnkiZsE+CKoX4IfAEMA4EwEgjNbuzKxLCvzgTLSiRvkD6IN16uwW2RGgCGUhQIptVb8PQ"
60   - "q1N61OcE9eX9gk3bPW0C2O3BTl3KUQEnpZQGoAmQGkAIuVhMZcSGMNBRanGCqXKUik+OlJak"
61   - "V1cIIVeA6Tg8DpwU4FJnvTgCSGuGigxCNgwOkuzoIJHLMTo6yrZt2zBNE9M0UdV604yMjLBp"
62   - "06aPBQvDkKGhIfr6+rBtm9nz57l++DCGJggg3QHXJiA7Df2dUT1A1AUqlLxFD+l56D09qKkU"
63   - "ALqu33Jnmnbrom72N7q68F0Hz/ZRoQSQhyNVeHYCdn1MgAJzds1Da0niTU7eMdDdCPALBTRF"
64   - "wbIDFJgD2AyFCnytDL/9EDYsCQBeX5i3ZFxXsC9fvuWCdyOg2W5duYKphCyUHAksXUjb4M0S"
65   - "/KoEJ5cEOHBqYqZWzrVr5J9//n+SgfkXXySb0pgs2GUHTjX7VeFEFXa9AesVAB9eWyg5lpbQ"
66   - "8D+8SnVo6BNloOFfHR7GHRtFM1UKNc/y4bVmvzJkK0ANQgXgOPg+PPXutWJ59eoEY0eO4C0s"
67   - "/MdAjW64lQCvVOKfBw+yqk3lvclq2YenjoMPcBrUX8BABV4ow5sPw9jSbfg9+PVsxR0r2H6Q"
68   - "M1yG9+4lnJ39rzIgy2X+0t9Pyi2Td8Nw0vKtSbj/u/CzH8Cr12CmDC+VYbYK+6DpOhYgyzBw"
69   - "8UapoKQM2pVFRvbs4caJE8gwvKOAm6dO8daOHbRU5tCTGv+YqSnXocOC75Tg0Dz0z8L4NHzr"
70   - "Kuw8BBNR3CUYQOwg7LhHcGZrbyqZM1V1fMZHJpKsO3CAnoEBkmvXEiYSqJZFbXycqZdfZuy5"
71   - "5wjyC/SkBbO+5OJMTV6GiSpMSphwYXgO3v4bfABYgB3RbQhQgHiDD0FfP5zMpYzOzd2tMcX2"
72   - "KRY9bHRc18N1HHTTwNB1YoFLulVDmiqX5hbdmZqX/yU8fbW+w0YwaxkbtlpzBmJNImJJaPkK"
73   - "7F8FhzNJXV2TMuIrErowNAVdUXD9ANcLmK/58mbVtYuWL0dgcBBe9WCxaZfWLb4t6k81f/lz"
74   - "SQcSgBkJMtPQ8kV4cC3saYEtCmQExCXYAZSK8P5l+PM5uGSBA3gRGxeO00QLqEW/cnkNNENE"
75   - "NdEQYkTitIhqdGwiYvQKIKR+z/sR3aYdu5Ht3wLdLRoBlSY2oyGgwYaoT3Fb/At4CANJRbmY"
76   - "kwAAAABJRU5ErkJggg==")
77   -
78 41  
79 42 class TaskPanel(wx.Panel):
80 43 def __init__(self, parent):
... ... @@ -104,13 +67,13 @@ class InnerTaskPanel(wx.Panel):
104 67 self.SetBackgroundColour(wx.Colour(255,255,255))
105 68 self.SetAutoLayout(1)
106 69  
107   - # Image(s) for buttons
108   - bitmap = Devil.GetBitmap() # 32, 32
109   - bitmap.SetWidth(20)
110   - bitmap.SetHeight(20)
  70 +
  71 + BMP_ADD = wx.Bitmap("../icons/object_add.png", wx.BITMAP_TYPE_PNG)
  72 + BMP_ADD.SetWidth(25)
  73 + BMP_ADD.SetHeight(25)
111 74  
112 75 # Button for creating new surface
113   - button_new_surface = pbtn.PlateButton(self, BTN_NEW, "", bitmap, style=\
  76 + button_new_surface = pbtn.PlateButton(self, BTN_NEW, "", BMP_ADD, style=\
114 77 pbtn.PB_STYLE_SQUARE | pbtn.PB_STYLE_NOBG)
115 78 self.Bind(wx.EVT_BUTTON, self.OnButton)
116 79  
... ...
invesalius/gui/task_tools.py
... ... @@ -22,46 +22,9 @@ import wx.lib.hyperlink as hl
22 22 import wx.lib.platebtn as pbtn
23 23 import wx.lib.embeddedimage as emb
24 24  
25   -BTN_MEASURE_LINEAR = wx.NewId()
26   -BTN_MEASURE_ANGULAR = wx.NewId()
27   -BTN_ANNOTATION = wx.NewId()
28   -
29   -Devil = emb.PyEmbeddedImage(
30   - "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABrpJ"
31   - "REFUWIXtlluMlVcVx3/7u57LzLkMc5gbw2UovFRupQ1INdRkkkrIPDRpLSFREqk8oFKrPhmR"
32   - "oEkfNLFJ39SQkrZGJGRMarCpVWmlLa2OCjOtpVBmgJnOfc79zHf/tg/nO5PTEQEbE1/6T/45"
33   - "315n7b3+e+21sjd8iv8zRPPgtKKc9aV8UArxfT0Mf/4lcI+BocMXNME+BT4XQi6UtCqCigJz"
34   - "oeQNH055cO44uKfB8BTlGwKOqvDW42G49+4FmGrx4Z9uSt98J+988JupwmzFe6mi8NjKroS6"
35   - "bmOqNbcqKWKtOnpMxbMCrIrH3ERNXr9SrsxOLwatIYMrs8bAvY91Z7q3ZIyz37xU2h/KzO0E"
36   - "qM2DR6QwWztzu9ZoG81W22ipFQr39XQl4jv2dJlpLKHnC4iZBeTEHCyUMGoW6bQm+j7TbspJ"
37   - "J55NZ+974KEHkh2dveqNkXln+r35Hw9K+fpdZ+AFSKmKMvX5desSLYZB1XG4MH6d7dtBjYNq"
38   - "gtDqs2QAoQuhDUFNMjQs2L2uj5iuU3Vdzo+OLi5K2fkEVG4nQGse3IDWFVJyZWGOvkwbw9OT"
39   - "rO4FrQW0JKgxgdCbBDgQGBIUQU8nDH00zqbObq7lFyiDnIcUdxCgND4kCB3ObtycM4uexd8n"
40   - "b7Kyw6NrLWgtAq1VoKVBzwqMrEDPgJ6K/ktCzxrIZFyGJm5Q8izWb8zGdDgrl2V5OZZqwIB9"
41   - "3e3xL9+7tT3eVsjT2SVJrRR4cfj6JcmTb4f88SPYuUHQ2S5wEHz1lZAnL4Scm4dtGUFvAlYY"
42   - "kJYh2b52pVhyEr+zg7E/wbu3zcAx0DR4ZuuWlSnn0hRIiVDr5/3sqKQ3BdcOaRy4X/Dt34fo"
43   - "GcFP/hqyOiu4ckBl/3rB0ashiibq85A478+zeWNbSoNnji076mYIgB9Bf097/Mxnt3aknXeu"
44   - "o2cEepZ6qrMCLQtmZNMyAi0OXgGcgsQvSrwC2HlJUASvIHELEq8Ise1dXLicL02VnEePwh+i"
45   - "o44jxBmggpRPKwAm7Ovtbkn5ExVkWPdCggxBhhIR1ItOehBa4JchdCT4kT0ARYKUEtmYK8Gf"
46   - "rtHTnkiZsE+CKoX4IfAEMA4EwEgjNbuzKxLCvzgTLSiRvkD6IN16uwW2RGgCGUhQIptVb8PQ"
47   - "q1N61OcE9eX9gk3bPW0C2O3BTl3KUQEnpZQGoAmQGkAIuVhMZcSGMNBRanGCqXKUik+OlJak"
48   - "V1cIIVeA6Tg8DpwU4FJnvTgCSGuGigxCNgwOkuzoIJHLMTo6yrZt2zBNE9M0UdV604yMjLBp"
49   - "06aPBQvDkKGhIfr6+rBtm9nz57l++DCGJggg3QHXJiA7Df2dUT1A1AUqlLxFD+l56D09qKkU"
50   - "ALqu33Jnmnbrom72N7q68F0Hz/ZRoQSQhyNVeHYCdn1MgAJzds1Da0niTU7eMdDdCPALBTRF"
51   - "wbIDFJgD2AyFCnytDL/9EDYsCQBeX5i3ZFxXsC9fvuWCdyOg2W5duYKphCyUHAksXUjb4M0S"
52   - "/KoEJ5cEOHBqYqZWzrVr5J9//n+SgfkXXySb0pgs2GUHTjX7VeFEFXa9AesVAB9eWyg5lpbQ"
53   - "8D+8SnVo6BNloOFfHR7GHRtFM1UKNc/y4bVmvzJkK0ANQgXgOPg+PPXutWJ59eoEY0eO4C0s"
54   - "/MdAjW64lQCvVOKfBw+yqk3lvclq2YenjoMPcBrUX8BABV4ow5sPw9jSbfg9+PVsxR0r2H6Q"
55   - "M1yG9+4lnJ39rzIgy2X+0t9Pyi2Td8Nw0vKtSbj/u/CzH8Cr12CmDC+VYbYK+6DpOhYgyzBw"
56   - "8UapoKQM2pVFRvbs4caJE8gwvKOAm6dO8daOHbRU5tCTGv+YqSnXocOC75Tg0Dz0z8L4NHzr"
57   - "Kuw8BBNR3CUYQOwg7LhHcGZrbyqZM1V1fMZHJpKsO3CAnoEBkmvXEiYSqJZFbXycqZdfZuy5"
58   - "5wjyC/SkBbO+5OJMTV6GiSpMSphwYXgO3v4bfABYgB3RbQhQgHiDD0FfP5zMpYzOzd2tMcX2"
59   - "KRY9bHRc18N1HHTTwNB1YoFLulVDmiqX5hbdmZqX/yU8fbW+w0YwaxkbtlpzBmJNImJJaPkK"
60   - "7F8FhzNJXV2TMuIrErowNAVdUXD9ANcLmK/58mbVtYuWL0dgcBBe9WCxaZfWLb4t6k81f/lz"
61   - "SQcSgBkJMtPQ8kV4cC3saYEtCmQExCXYAZSK8P5l+PM5uGSBA3gRGxeO00QLqEW/cnkNNENE"
62   - "NdEQYkTitIhqdGwiYvQKIKR+z/sR3aYdu5Ht3wLdLRoBlSY2oyGgwYaoT3Fb/At4CANJRbmY"
63   - "kwAAAABJRU5ErkJggg==")
64   -
  25 +ID_BTN_MEASURE_LINEAR = wx.NewId()
  26 +ID_BTN_MEASURE_ANGULAR = wx.NewId()
  27 +ID_BTN_ANNOTATION = wx.NewId()
65 28  
66 29 class TaskPanel(wx.Panel):
67 30 def __init__(self, parent):
... ... @@ -105,20 +68,26 @@ class InnerTaskPanel(wx.Panel):
105 68 txt_annotation.Bind(hl.EVT_HYPERLINK_LEFT, self.OnTextAnnotation)
106 69  
107 70 # Image(s) for buttons
108   - bitmap = Devil.GetBitmap() # 32, 32
109   - bitmap.SetWidth(20)
110   - bitmap.SetHeight(20)
  71 + BMP_ANNOTATE = wx.Bitmap("../icons/annotation.png", wx.BITMAP_TYPE_PNG)
  72 + BMP_ANGLE = wx.Bitmap("../icons/measure_angle.jpg", wx.BITMAP_TYPE_JPEG)
  73 + BMP_DISTANCE = wx.Bitmap("../icons/measure_line.png", wx.BITMAP_TYPE_PNG)
  74 + BMP_ANNOTATE.SetWidth(25)
  75 + BMP_ANNOTATE.SetHeight(25)
  76 + BMP_ANGLE.SetWidth(25)
  77 + BMP_ANGLE.SetHeight(25)
  78 + BMP_DISTANCE.SetWidth(25)
  79 + BMP_DISTANCE.SetHeight(25)
111 80  
112 81 # Buttons related to hyperlinks
113 82 button_style = pbtn.PB_STYLE_SQUARE | pbtn.PB_STYLE_NOBG
114 83  
115   - button_measure_linear = pbtn.PlateButton(self, BTN_MEASURE_LINEAR, "",
116   - bitmap, style=button_style)
117   - button_measure_angular = pbtn.PlateButton(self, BTN_MEASURE_ANGULAR, "",
118   - bitmap, style=button_style)
  84 + button_measure_linear = pbtn.PlateButton(self, ID_BTN_MEASURE_LINEAR, "",
  85 + BMP_DISTANCE, style=button_style)
  86 + button_measure_angular = pbtn.PlateButton(self, ID_BTN_MEASURE_ANGULAR, "",
  87 + BMP_ANGLE, style=button_style)
119 88  
120   - button_annotation = pbtn.PlateButton(self, BTN_ANNOTATION, "",
121   - bitmap, style=button_style)
  89 + button_annotation = pbtn.PlateButton(self, ID_BTN_ANNOTATION, "",
  90 + BMP_ANNOTATE, style=button_style)
122 91  
123 92 # When using PlaneButton, it is necessary to bind events from parent win
124 93 self.Bind(wx.EVT_BUTTON, self.OnButton)
... ... @@ -157,11 +126,11 @@ class InnerTaskPanel(wx.Panel):
157 126 def OnButton(self, evt):
158 127 id = evt.GetId()
159 128  
160   - if id == BTN_MEASURE_LINEAR:
  129 + if id == ID_BTN_MEASURE_LINEAR:
161 130 self.OnLinkLinearMeasure()
162   - elif id == BTN_MEASURE_ANGULAR:
  131 + elif id == ID_BTN_MEASURE_ANGULAR:
163 132 self.OnLinkAngularMeasure()
164   - else: # elif id == BTN_ANNOTATION:
  133 + else: # elif id == ID_BTN_ANNOTATION:
165 134 self.OnTextAnnotation()
166 135  
167 136  
... ...