PrepareDC for the wx.MemoryDCs too

This commit is contained in:
Robin Dunn
2017-12-28 16:08:50 -08:00
parent 7e8a27e170
commit beec04eacd
4 changed files with 26 additions and 0 deletions

View File

@@ -522,6 +522,7 @@ class Shape(ShapeEvtHandler):
if redraw and self.GetCanvas():
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.Erase(dc)
self._shadowMode = mode
self.Draw(dc)
@@ -1197,6 +1198,7 @@ class Shape(ShapeEvtHandler):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.MoveLinks(dc)
if not self.GetCanvas().GetQuickEditMode():
@@ -1441,6 +1443,7 @@ class Shape(ShapeEvtHandler):
if self.GetCanvas():
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
self.Draw(dc)
dc.SetLogicalFunction(wx.COPY)
@@ -1567,6 +1570,7 @@ class Shape(ShapeEvtHandler):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.MoveLinks(dc)
def RemoveLine(self, line):
@@ -2505,6 +2509,7 @@ class Shape(ShapeEvtHandler):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
dottedPen = wx.Pen(wx.Colour(0, 0, 0), 1, wx.PENSTYLE_DOT)
@@ -2586,6 +2591,7 @@ class Shape(ShapeEvtHandler):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
bound_x, bound_y = self.GetBoundingBoxMin()
@@ -2687,6 +2693,7 @@ class Shape(ShapeEvtHandler):
"""The sizing end drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
if self._canvas.HasCapture():
self._canvas.ReleaseMouse()
@@ -3288,6 +3295,7 @@ class PolygonShape(Shape):
"""The sizing drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
dottedPen = wx.Pen(wx.Colour(0, 0, 0), 1, wx.PENSTYLE_DOT)
@@ -3304,6 +3312,7 @@ class PolygonShape(Shape):
"""The sizing begin drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
self.Erase(dc)
@@ -3335,6 +3344,7 @@ class PolygonShape(Shape):
"""The sizing end drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
if self._canvas.HasCapture():
self._canvas.ReleaseMouse()

View File

@@ -190,6 +190,7 @@ class Constraint(object):
dc = wx.MemoryDC()
dc.SelectObject(self._constrainingObject.GetCanvas().GetBuffer())
self._constrainingObject.GetCanvas().PrepareDC(dc)
if self._constraintType == CONSTRAINT_CENTRED_VERTICALLY:
n = len(self._constrainedObjects)
@@ -558,6 +559,7 @@ class CompositeShape(RectangleShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
for object in self._children:
# Scale the position first
@@ -792,6 +794,7 @@ class CompositeShape(RectangleShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
division.Move(dc, self.GetX(), self.GetY())
self.Recompute()
@@ -876,6 +879,7 @@ class DivisionControlPoint(ControlPoint):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
division = self._shape
divisionParent = division.GetParent()
@@ -1187,6 +1191,7 @@ class DivisionShape(CompositeShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(wx.COPY)
self._xpos, self._ypos = self._canvas.Snap(self._xpos, self._ypos)
@@ -1248,6 +1253,7 @@ class DivisionShape(CompositeShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
if direction == wx.VERTICAL:
# Dividing vertically means notionally putting a horizontal
@@ -1420,6 +1426,7 @@ class DivisionShape(CompositeShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.Move(dc, newX, self.GetY())
return True
@@ -1448,6 +1455,7 @@ class DivisionShape(CompositeShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.Move(dc, newX, self.GetY())
return True
@@ -1476,6 +1484,7 @@ class DivisionShape(CompositeShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.Move(dc, self.GetX(), newY)
return True
@@ -1557,6 +1566,7 @@ class DivisionShape(CompositeShape):
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
mouse_x = dc.LogicalToDeviceX(x - x1 * unit_x)
mouse_y = dc.LogicalToDeviceY(y - y1 * unit_y)

View File

@@ -50,6 +50,7 @@ class DividedShapeControlPoint(ControlPoint):
"""The drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
dottedPen = wx.Pen(wx.Colour(0, 0, 0), 1, wx.PENSTYLE_DOT)
@@ -68,6 +69,7 @@ class DividedShapeControlPoint(ControlPoint):
"""The begin drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
dottedPen = wx.Pen(wx.Colour(0, 0, 0), 1, wx.PENSTYLE_DOT)
@@ -88,6 +90,7 @@ class DividedShapeControlPoint(ControlPoint):
"""The end drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dividedObject = self._shape
if not dividedObject.GetRegions()[self.regionId]:

View File

@@ -1354,6 +1354,7 @@ class LineShape(Shape):
"""The sizing drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
dc.SetLogicalFunction(OGLRBLF)
dottedPen = wx.Pen(wx.Colour(0, 0, 0), 1, wx.PENSTYLE_DOT)
@@ -1383,6 +1384,7 @@ class LineShape(Shape):
"""The sizing begin drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
if pt._type == CONTROL_POINT_LINE:
pt._originalPos = pt._point
@@ -1425,6 +1427,7 @@ class LineShape(Shape):
"""The sizing end drag left handler."""
dc = wx.MemoryDC()
dc.SelectObject(self.GetCanvas().GetBuffer())
self.GetCanvas().PrepareDC(dc)
self.SetDisableLabel(False)