From 74c4585a4f1651db58d5a4c8199f963830f28727 Mon Sep 17 00:00:00 2001 From: Ron Tang Date: Mon, 16 Dec 2019 15:31:31 +0800 Subject: [PATCH] Add sysfont for textbox function of SurfacePainter support #210 modify two files loaders.py and ptext.py --- pgzero/loaders.py | 8 ++++++-- pgzero/ptext.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pgzero/loaders.py b/pgzero/loaders.py index d7d2603f..6bb772ef 100644 --- a/pgzero/loaders.py +++ b/pgzero/loaders.py @@ -248,6 +248,9 @@ def getfont( and so on. """ + if fontname is not None and sysfontname is not None: + raise ValueError("Can't set both fontname and sysfontname") + fontname = fontname or ptext.DEFAULT_FONT_NAME fontsize = fontsize or ptext.DEFAULT_FONT_SIZE @@ -262,8 +265,9 @@ def getfont( if key in ptext._font_cache: return ptext._font_cache[key] - - if fontname is None: + if sysfontname is not None: + font = pygame.font.SysFont(sysfontname, fontsize) + elif fontname is None: font = ptext._font_cache.get(key) if font: return font diff --git a/pgzero/ptext.py b/pgzero/ptext.py index 28607d69..57895f59 100644 --- a/pgzero/ptext.py +++ b/pgzero/ptext.py @@ -480,7 +480,7 @@ def drawbox(text, rect, fontname=None, sysfontname=None, lineheight=None, anchor y = rect.y + vanchor * rect.height fontsize = _fitsize(text, fontname, sysfontname, bold, italic, underline, rect.width, rect.height, lineheight, strip) - return draw(text, (x, y), fontname=fontname, fontsize=fontsize, lineheight=lineheight, + return draw(text, (x, y), fontname=fontname, sysfontname=sysfontname, fontsize=fontsize, lineheight=lineheight, width=rect.width, strip=strip, anchor=anchor, **kwargs)