xref: /aosp_15_r20/external/fonttools/Lib/fontTools/pens/qtPen.py (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
1from fontTools.pens.basePen import BasePen
2
3
4__all__ = ["QtPen"]
5
6
7class QtPen(BasePen):
8    def __init__(self, glyphSet, path=None):
9        BasePen.__init__(self, glyphSet)
10        if path is None:
11            from PyQt5.QtGui import QPainterPath
12
13            path = QPainterPath()
14        self.path = path
15
16    def _moveTo(self, p):
17        self.path.moveTo(*p)
18
19    def _lineTo(self, p):
20        self.path.lineTo(*p)
21
22    def _curveToOne(self, p1, p2, p3):
23        self.path.cubicTo(*p1, *p2, *p3)
24
25    def _qCurveToOne(self, p1, p2):
26        self.path.quadTo(*p1, *p2)
27
28    def _closePath(self):
29        self.path.closeSubpath()
30