diff --git a/invesalius/data/viewer_slice.py b/invesalius/data/viewer_slice.py index c71bdff..7358556 100755 --- a/invesalius/data/viewer_slice.py +++ b/invesalius/data/viewer_slice.py @@ -196,7 +196,10 @@ class CanvasRendererCTX: self.rgb = np.zeros((h, w, 3), dtype=np.uint8) self.alpha = np.zeros((h, w, 1), dtype=np.uint8) - self.bitmap = wx.EmptyBitmapRGBA(w, h) + try: + self.bitmap = wx.Bitmap.FromRGBA(w, h) + except AttributeError: + self.bitmap = wx.EmptyBitmapRGBA(w, h) self.image = wx.ImageFromBuffer(w, h, self.rgb, self.alpha.data) def _resize_canvas(self, w, h): @@ -208,7 +211,10 @@ class CanvasRendererCTX: self.rgb = np.zeros((h, w, 3), dtype=np.uint8) self.alpha = np.zeros((h, w, 1), dtype=np.uint8) - self.bitmap = wx.EmptyBitmapRGBA(w, h) + try: + self.bitmap = wx.Bitmap.FromRGBA(w, h) + except AttributeError: + self.bitmap = wx.EmptyBitmapRGBA(w, h) self.image = wx.ImageFromBuffer(w, h, self.rgb, self.alpha.data) self.modified = True @@ -288,7 +294,7 @@ class CanvasRendererCTX: w, h = gc.GetTextExtent(text) return w, h - def draw_line(self, pos0, pos1, arrow_start=False, arrow_end=False, colour=(255, 0, 0, 128), width=2, style=wx.SOLID): + def draw_line(self, pos0, pos1, arrow_start=False, arrow_end=False, colour=(255, 0, 0, 0.5), width=2, style=wx.SOLID): """ Draw a line from pos0 to pos1 @@ -311,7 +317,7 @@ class CanvasRendererCTX: p0y = -p0y p1y = -p1y - pen = wx.Pen(wx.Colour(*colour), width, wx.SOLID) + pen = wx.Pen(wx.Colour(int(colour[0]), int(colour[1]), int(colour[2]), alpha=colour[3]), width, wx.SOLID) pen.SetCap(wx.CAP_BUTT) gc.SetPen(pen) @@ -372,7 +378,7 @@ class CanvasRendererCTX: return None gc = self.gc - pen = wx.Pen(wx.Colour(*line_colour), width, wx.SOLID) + pen = wx.Pen(wx.Colour(int(line_colour[0]), int(line_colour[1]), int(line_colour[2]), alpha=line_colour[3]), width, wx.SOLID) gc.SetPen(pen) brush = wx.Brush(wx.Colour(*fill_colour)) @@ -403,7 +409,8 @@ class CanvasRendererCTX: gc = self.gc px, py = pos - gc.SetPen(wx.Pen(line_colour)) + pen = wx.Pen(wx.Colour(int(line_colour[0]), int(line_colour[1]), int(line_colour[2]), alpha=line_colour[3])) + gc.SetPen(pen) gc.SetBrush(wx.Brush(fill_colour)) gc.DrawRectangle(px, py, width, height) self._drawn = True @@ -481,7 +488,7 @@ class CanvasRendererCTX: if self.gc is None: return None gc = self.gc - pen = wx.Pen(wx.Colour(*line_colour), width, wx.SOLID) + pen = wx.Pen(wx.Colour(int(line_colour[0]), int(line_colour[1]), int(line_colour[2]), alpha=line_colour[3]), width, wx.SOLID) gc.SetPen(pen) c = np.array(center) @@ -506,7 +513,7 @@ class CanvasRendererCTX: ea = a0 path = gc.CreatePath() - path.AddArc((c[0], c[1]), min(s0, s1), sa, ea) + path.AddArc(float(c[0]), float(c[1]), float(min(s0, s1)), sa, ea, True) gc.StrokePath(path) self._drawn = True diff --git a/invesalius/gui/task_navigator.py b/invesalius/gui/task_navigator.py index f0a2210..7694dfb 100644 --- a/invesalius/gui/task_navigator.py +++ b/invesalius/gui/task_navigator.py @@ -29,6 +29,11 @@ except ImportError: import wx.lib.masked.numctrl from wx.lib.pubsub import pub as Publisher +try: + from wx.lib.agw import foldpanelbar as fpb +except ImportError: + import wx.lib.foldpanelbar as fpb + import invesalius.constants as const import invesalius.data.bases as db import invesalius.data.coordinates as dco @@ -36,7 +41,6 @@ import invesalius.data.coregistration as dcr import invesalius.data.trackers as dt import invesalius.data.trigger as trig import invesalius.gui.dialogs as dlg -import invesalius.gui.widgets.foldpanelbar as fpb import invesalius.gui.widgets.colourselect as csel class TaskPanel(wx.Panel): diff --git a/invesalius/gui/task_slice.py b/invesalius/gui/task_slice.py index a01d603..4ecc848 100644 --- a/invesalius/gui/task_slice.py +++ b/invesalius/gui/task_slice.py @@ -29,6 +29,11 @@ import wx.lib.platebtn as pbtn from wx.lib.pubsub import pub as Publisher try: + from wx.lib.agw import foldpanelbar as fpb +except ImportError: + import wx.lib.foldpanelbar as fpb + +try: SystemSettings_GetColour = wx.SystemSettings.GetColour except AttributeError: SystemSettings_GetColour = wx.SystemSettings_GetColour @@ -38,7 +43,6 @@ import invesalius.data.slice_ as slice_ import invesalius.constants as const import invesalius.gui.dialogs as dlg import invesalius.gui.widgets.gradient as grad -import invesalius.gui.widgets.foldpanelbar as fpb import invesalius.gui.widgets.colourselect as csel from invesalius.project import Project @@ -276,7 +280,7 @@ class InnerFoldPanel(wx.Panel): self.mask_prop_panel = MaskProperties(item) fold_panel.ApplyCaptionStyle(item, style) - fold_panel.AddFoldPanelWindow(item, self.mask_prop_panel, Spacing= 0, + fold_panel.AddFoldPanelWindow(item, self.mask_prop_panel, spacing=0, leftSpacing=0, rightSpacing=0) # Fold 2 - Advanced edition tools @@ -284,7 +288,7 @@ class InnerFoldPanel(wx.Panel): etw = EditionTools(item) fold_panel.ApplyCaptionStyle(item, style) - fold_panel.AddFoldPanelWindow(item, etw, Spacing= 0, + fold_panel.AddFoldPanelWindow(item, etw, spacing=0, leftSpacing=0, rightSpacing=0) self.__id_editor = item.GetId() self.last_panel_opened = None @@ -294,7 +298,7 @@ class InnerFoldPanel(wx.Panel): wtw = WatershedTool(item) fold_panel.ApplyCaptionStyle(item, style) - fold_panel.AddFoldPanelWindow(item, wtw, Spacing= 0, + fold_panel.AddFoldPanelWindow(item, wtw, spacing=0, leftSpacing=0, rightSpacing=0) self.__id_watershed = item.GetId() diff --git a/invesalius/gui/task_surface.py b/invesalius/gui/task_surface.py index 69b007f..9025387 100644 --- a/invesalius/gui/task_surface.py +++ b/invesalius/gui/task_surface.py @@ -25,6 +25,17 @@ try: except ImportError: import wx.lib.hyperlink as hl from wx.lib.pubsub import pub as Publisher +import wx.lib.platebtn as pbtn + +try: + from wx.lib.agw import foldpanelbar as fpb +except ImportError: + import wx.lib.foldpanelbar as fpb + +try: + from wx.lib.agw import foldpanelbar as fpb +except ImportError: + import wx.lib.foldpanelbar as fpb try: SystemSettings_GetColour = wx.SystemSettings.GetColour @@ -34,9 +45,7 @@ except AttributeError: import invesalius.constants as const import invesalius.data.slice_ as slice_ import invesalius.gui.dialogs as dlg -import invesalius.gui.widgets.foldpanelbar as fpb import invesalius.gui.widgets.colourselect as csel -import invesalius.gui.widgets.platebtn as pbtn import invesalius.project as prj import invesalius.utils as utl @@ -224,13 +233,13 @@ class InnerFoldPanel(wx.Panel): # Fold 1 - Surface properties item = fold_panel.AddFoldPanel(_("Surface properties"), collapsed=True) fold_panel.ApplyCaptionStyle(item, style) - fold_panel.AddFoldPanelWindow(item, SurfaceProperties(item), Spacing= 0, + fold_panel.AddFoldPanelWindow(item, SurfaceProperties(item), spacing=0, leftSpacing=0, rightSpacing=0) # Fold 2 - Surface tools item = fold_panel.AddFoldPanel(_("Advanced options"), collapsed=True) fold_panel.ApplyCaptionStyle(item, style) - fold_panel.AddFoldPanelWindow(item, SurfaceTools(item), Spacing= 0, + fold_panel.AddFoldPanelWindow(item, SurfaceTools(item), spacing=0, leftSpacing=0, rightSpacing=0) #fold_panel.AddFoldPanelWindow(item, QualityAdjustment(item), Spacing= 0, diff --git a/invesalius/gui/widgets/clut_raycasting.py b/invesalius/gui/widgets/clut_raycasting.py index 158cbdc..5c5c715 100644 --- a/invesalius/gui/widgets/clut_raycasting.py +++ b/invesalius/gui/widgets/clut_raycasting.py @@ -169,8 +169,8 @@ class CLUTRaycastingWidget(wx.Panel): pass def OnClick(self, evt): - x, y = evt.GetPositionTuple() - if self.save_button.HasClicked(evt.GetPositionTuple()): + x, y = evt.GetPosition() + if self.save_button.HasClicked(evt.GetPosition()): print "Salvando" filename = dialog.ShowSavePresetDialog() if filename: @@ -218,7 +218,7 @@ class CLUTRaycastingWidget(wx.Panel): """ Used to change the colour of a point """ - point = self._has_clicked_in_a_point(evt.GetPositionTuple()) + point = self._has_clicked_in_a_point(evt.GetPosition()) if point: i, j = point actual_colour = self.curves[i].nodes[j].colour @@ -240,7 +240,7 @@ class CLUTRaycastingWidget(wx.Panel): """ Used to remove a point """ - point = self._has_clicked_in_a_point(evt.GetPositionTuple()) + point = self._has_clicked_in_a_point(evt.GetPosition()) if point: i, j = point print "RightClick", i, j @@ -249,7 +249,7 @@ class CLUTRaycastingWidget(wx.Panel): nevt = CLUTEvent(myEVT_CLUT_POINT_RELEASE, self.GetId(), i) self.GetEventHandler().ProcessEvent(nevt) return - n_curve = self._has_clicked_in_selection_curve(evt.GetPositionTuple()) + n_curve = self._has_clicked_in_selection_curve(evt.GetPosition()) if n_curve is not None: print "Removing a curve" self.RemoveCurve(n_curve) @@ -383,7 +383,7 @@ class CLUTRaycastingWidget(wx.Panel): self.to_render = True i,j = self.point_dragged - width, height= self.GetVirtualSizeTuple() + width, height= self.GetVirtualSize() if y >= height - self.padding: y = height - self.padding @@ -525,7 +525,7 @@ class CLUTRaycastingWidget(wx.Panel): x,y = node.x, node.y value = node.graylevel alpha = node.opacity - widget_width, widget_height = self.GetVirtualSizeTuple() + widget_width, widget_height = self.GetVirtualSize() font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) font.SetWeight(wx.BOLD) @@ -600,7 +600,7 @@ class CLUTRaycastingWidget(wx.Panel): def Render(self, dc): ctx = wx.GraphicsContext.Create(dc) - width, height= self.GetVirtualSizeTuple() + width, height= self.GetVirtualSize() height -= (self.padding * 2) width -= self.padding @@ -614,7 +614,7 @@ class CLUTRaycastingWidget(wx.Panel): self._draw_selected_point_text(ctx) def _build_histogram(self): - width, height = self.GetVirtualSizeTuple() + width, height = self.GetVirtualSize() width -= self.padding height -= (self.padding * 2) x_init = self.Histogram.init @@ -684,7 +684,7 @@ class CLUTRaycastingWidget(wx.Panel): """ Given a Hounsfield point returns a pixel point in the canvas. """ - width,height = self.GetVirtualSizeTuple() + width,height = self.GetVirtualSize() width -= (TOOLBAR_SIZE) proportion = width * 1.0 / (self.end - self.init) x = (graylevel - self.init) * proportion + TOOLBAR_SIZE @@ -694,7 +694,7 @@ class CLUTRaycastingWidget(wx.Panel): """ Given a Opacity point returns a pixel point in the canvas. """ - width,height = self.GetVirtualSizeTuple() + width,height = self.GetVirtualSize() height -= (self.padding * 2) y = height - (opacity * height) + self.padding return y @@ -703,7 +703,7 @@ class CLUTRaycastingWidget(wx.Panel): """ Translate from pixel point to Hounsfield scale. """ - width, height= self.GetVirtualSizeTuple() + width, height= self.GetVirtualSize() width -= (TOOLBAR_SIZE) proportion = width * 1.0 / (self.end - self.init) graylevel = (x - TOOLBAR_SIZE) / proportion - abs(self.init) @@ -713,7 +713,7 @@ class CLUTRaycastingWidget(wx.Panel): """ Translate from pixel point to opacity. """ - width, height= self.GetVirtualSizeTuple() + width, height= self.GetVirtualSize() height -= (self.padding * 2) opacity = (height - y + self.padding) * 1.0 / height return opacity diff --git a/invesalius/gui/widgets/gradient.py b/invesalius/gui/widgets/gradient.py index b07f1c8..0f6d698 100755 --- a/invesalius/gui/widgets/gradient.py +++ b/invesalius/gui/widgets/gradient.py @@ -134,10 +134,10 @@ class GradientSlider(wx.Panel): # Drawing the transparent slider. bytes = numpy.array(self.colour * width_transparency * h, 'B') try: + slider = wx.Bitmap.FromBufferRGBA(width_transparency, h, bytes) + dc.DrawBitmap(slider, self.min_position, 0, True) + except AttributeError: slider = wx.BitmapFromBufferRGBA(width_transparency, h, bytes) - except: - pass - else: dc.DrawBitmap(slider, self.min_position, 0, True) def OnEraseBackGround(self, evt): -- libgit2 0.21.2