DragOffsetX = 0.0
DragOffsetY = 0.0
-
def OGLInitialize():
global WhiteBackgroundPen, WhiteBackgroundBrush, TransparentPen
global BlackForegroundPen, NormalFont
def GetPreviousHandler(self):
return self._previousHandler
-
+
+ def OnDelete(self):
+ if self!=self.GetShape():
+ del self
+
def OnDraw(self, dc):
if self._previousHandler:
self._previousHandler.OnDraw(dc)
def GetClassName(self):
return str(self.__class__).split(".")[-1][:-2]
-
- def __del__(self):
+
+ def Delete(self):
if self._parent:
i = self._parent.GetChildren().index(self)
self._parent.GetChildren(i).remove(self)
self.ClearRegions()
self.ClearAttachments()
+ self._handlerShape = None
+
if self._canvas:
- self._canvas.RemoveShape(self)
+ self.RemoveFromCanvas(self._canvas)
self.GetEventHandler().OnDelete()
+ self._eventHandler = None
+
+ def __del__(self):
+ ShapeEvtHandler.__del__(self)
def Draggable(self):
"""TRUE if the shape may be dragged by the user."""
"""Remove the shape from the canvas."""
if self.Selected():
self.Select(False)
+
+ self._canvas = None
theCanvas.RemoveShape(self)
for object in self._children:
object.RemoveFromCanvas(theCanvas)
Does not redraw the shape.
"""
- for control in self._controlPoints:
+ for control in self._controlPoints[:]:
if dc:
control.GetEventHandler().OnErase(dc)
- self._canvas.RemoveShape(control)
- del control
+ control.Delete()
+ self._controlPoints.remove(control)
self._controlPoints = []
-
+
# Children of divisions are contained objects,
# so stop here
if not isinstance(self, DivisionShape):
return True
return False
- # Clears points from a list of wxRealPoints, and clears list
- # Useless in python? /pi
- def ClearPointList(self, list):
- list = []
-
# Assuming the attachment lies along a vertical or horizontal line,
# calculate the position on that point.
def CalcSimpleAttachment(self, pt1, pt2, nth, noArcs, line):
def __del__(self):
if self._lineControlPoints:
- self.ClearPointList(self._lineControlPoints)
self._lineControlPoints = []
for i in range(3):
if self._labelObjects[i]:
def MakeLineControlPoints(self, n):
"""Make a given number of control points (minimum of two)."""
- if self._lineControlPoints:
- self.ClearPointList(self._lineControlPoints)
self._lineControlPoints = []
for _ in range(n):