def _drawGrid(self, memDC: DC, width: int, height: int, startX: int, startY: int): # self.clsLogger.info(f'{width=} {height=} {startX=} {startY=}') savePen = memDC.GetPen() newPen: Pen = self._getGridPen() memDC.SetPen(newPen) self._drawHorizontalLines(memDC=memDC, width=width, height=height, startX=startX, startY=startY) self._drawVerticalLines(memDC=memDC, width=width, height=height, startX=startX, startY=startY) memDC.SetPen(savePen)
def Draw(self, dc: DC, withChildren: bool = False): """ Called for drawing of interface links. OglLink drew regular lines I need dashed lines for an interface Args: dc: Device context withChildren: Draw the children or not """ self.updateLabels() if self._visible: line = self.GetSegments() if self._selected: dc.SetPen(RED_PEN) if self._spline: dc.DrawSpline(line) else: pen: Pen = dc.GetPen() # pen.SetStyle( PENSTYLE_SHORT_DASH ) # This is what is different from OglLink.Draw(..) dc.SetPen(pen) # dc.DrawLines(line) for control in self._controls: control.Draw(dc) if self._selected: self._srcAnchor.Draw(dc) self._dstAnchor.Draw(dc) dc.SetPen(BLACK_PEN) if self._drawArrow: u, v = line[-2], line[-1] self.DrawArrow(dc, u, v) if withChildren is True: self.DrawChildren(dc)
def Draw(self, dc: DC, withChildren=True): """ Draw the point on the dc. Args: dc: withChildren: """ if self._visible or (self._visibleWhenSelected and self._selected): self.__penSaveColor = dc.GetPen().GetColour() Shape.Draw(self, dc, False) self.__resetPenColor(dc) x, y = self.GetPosition() if not self._selected: dc.DrawRectangle(x - 1, y - 1, 3, 3) else: dc.DrawRectangle(x - 3, y - 3, 7, 7) if withChildren: self.DrawChildren(dc)
def __resetPenColor(self, dc: DC): pen: Pen = dc.GetPen() pen.SetColour(self.__penSaveColor) dc.SetPen(pen)