self._canvas = canvas
self._xpos = 0.0
self._ypos = 0.0
- self._pen = wx.Pen(wx.BLACK, 1, wx.SOLID)
+ self._pen = BlackForegroundPen
self._brush = wx.WHITE_BRUSH
- self._font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)
+ self._font = NormalFont
self._textColour = wx.BLACK
self._textColourName = wx.BLACK
self._visible = False
# the region eventually (the duplication is for compatibility)
region = ShapeRegion()
region.SetName("0")
- region.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL))
+ region.SetFont(NormalFont)
region.SetFormatMode(FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT)
region.SetColour("BLACK")
self._regions.append(region)
return str(self.__class__).split(".")[-1][:-2]
def Delete(self):
+ """
+ Fully disconnect this shape from parents, children, the
+ canvas, etc.
+ """
if self._parent:
self._parent.GetChildren().remove(self)
+ for child in self.GetChildren():
+ child.Delete()
+
self.ClearText()
self.ClearRegions()
self.ClearAttachments()
if self._pen:
dc.SetPen(self._pen)
- region = self._regions[0]
- if region.GetFont():
- dc.SetFont(region.GetFont())
+ for region in self._regions:
+ if region.GetFont():
+ dc.SetFont(region.GetFont())
- dc.SetTextForeground(region.GetActualColourObject())
- dc.SetBackgroundMode(wx.TRANSPARENT)
- if not self._formatted:
- CentreText(dc, region.GetFormattedText(), self._xpos, self._ypos, bound_x - 2 * self._textMarginX, bound_y - 2 * self._textMarginY, region.GetFormatMode())
- self._formatted = True
+ dc.SetTextForeground(region.GetActualColourObject())
+ dc.SetBackgroundMode(wx.TRANSPARENT)
+ if not self._formatted:
+ CentreText(dc, region.GetFormattedText(), self._xpos, self._ypos, bound_x - 2 * self._textMarginX, bound_y - 2 * self._textMarginY, region.GetFormatMode())
+ self._formatted = True
- if not self.GetDisableLabel():
- DrawFormattedText(dc, region.GetFormattedText(), self._xpos, self._ypos, bound_x - 2 * self._textMarginX, bound_y - 2 * self._textMarginY, region.GetFormatMode())
+ if not self.GetDisableLabel():
+ DrawFormattedText(dc, region.GetFormattedText(), self._xpos, self._ypos, bound_x - 2 * self._textMarginX, bound_y - 2 * self._textMarginY, region.GetFormatMode())
def DrawContents(self, dc):
"""Flash the shape."""
if self.GetCanvas():
dc = wx.ClientDC(self.GetCanvas())
- self.GetCanvas.PrepareDC(dc)
+ self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
self.Draw(dc)
dc.SetLogicalFunction(OGLRBLF)
bound_x, bound_y = self.GetBoundingBoxMin()
- self.GetEventHandler().OnEndSize(bound_x, bound_y)
+ self.GetEventHandler().OnBeginSize(bound_x, bound_y)
# Choose the 'opposite corner' of the object as the stationary
# point in case this is non-centring resizing.
return None
if self._penColour=="Invisible":
return None
- self._actualPenObject = wx.ThePenList.FindOrCreatePen(self._penColour, 1, self._penStyle)
+ self._actualPenObject = wx.Pen(self._penColour, 1, self._penStyle)
return self._actualPenObject
def SetText(self, s):