58
58
import analogio
59
59
from adafruit_display_shapes .rect import Rect
60
60
from adafruit_display_text .label import Label
61
+ from adafruit_bitmap_font import bitmap_font
61
62
import terminalio
62
63
import adafruit_miniqr
63
64
import adafruit_lis3dh
67
68
68
69
Buttons = namedtuple ("Buttons" , "b a start select right down up left" )
69
70
71
+ def load_font (fontname , text ):
72
+ """Load a font and glyphs in the text string
73
+
74
+ :param str fontname: The full path to the font file.
75
+ :param str text: The text containing the glyphs we want to load.
76
+
77
+ """
78
+ font = bitmap_font .load_font (fontname )
79
+ font .load_glyphs (text .encode ('utf-8' ))
80
+ return font
70
81
71
82
# pylint: disable=too-many-instance-attributes
72
83
class PyBadger :
@@ -258,6 +269,8 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
258
269
except AttributeError :
259
270
self .display .wait_for_frame ()
260
271
if name_string :
272
+ if isinstance (name_font , str ):
273
+ name_font = load_font (name_font , name_string )
261
274
name_group = displayio .Group (scale = name_scale )
262
275
name_label = Label (name_font , text = name_string )
263
276
(_ , _ , width , _ ) = name_label .bounding_box
@@ -267,6 +280,8 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
267
280
name_group .append (name_label )
268
281
business_card_splash .append (name_group )
269
282
if email_string_one :
283
+ if isinstance (email_font_one , str ):
284
+ email_font_one = load_font (email_font_one , email_string_one )
270
285
email_group_one = displayio .Group (scale = email_scale_one )
271
286
email_label_one = Label (email_font_one , text = email_string_one )
272
287
(_ , _ , width , _ ) = email_label_one .bounding_box
@@ -277,6 +292,8 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
277
292
email_group_one .append (email_label_one )
278
293
business_card_splash .append (email_group_one )
279
294
if email_string_two :
295
+ if isinstance (email_font_two , str ):
296
+ email_font_two = load_font (email_font_two , email_string_two )
280
297
email_group_two = displayio .Group (scale = email_scale_two )
281
298
email_label_two = Label (email_font_two , text = email_string_two )
282
299
(_ , _ , width , _ ) = email_label_two .bounding_box
@@ -329,6 +346,8 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
329
346
(int (self .display .height * 0.5 )), fill = foreground_color )
330
347
splash .append (rect )
331
348
349
+ if isinstance (hello_font , str ):
350
+ hello_font = load_font (hello_font , hello_string )
332
351
hello_group = displayio .Group (scale = hello_scale )
333
352
hello_label = Label (font = hello_font , text = hello_string )
334
353
(_ , _ , width , _ ) = hello_label .bounding_box
@@ -337,6 +356,8 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
337
356
hello_label .color = background_text_color
338
357
hello_group .append (hello_label )
339
358
359
+ if isinstance (my_name_is_font , str ):
360
+ my_name_is_font = load_font (my_name_is_font , my_name_is_string )
340
361
my_name_is_group = displayio .Group (scale = my_name_is_scale )
341
362
my_name_is_label = Label (font = my_name_is_font , text = my_name_is_string )
342
363
(_ , _ , width , _ ) = my_name_is_label .bounding_box
@@ -345,6 +366,8 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
345
366
my_name_is_label .color = background_text_color
346
367
my_name_is_group .append (my_name_is_label )
347
368
369
+ if isinstance (name_font , str ):
370
+ name_font = load_font (name_font , name_string )
348
371
name_group = displayio .Group (scale = name_scale )
349
372
name_label = Label (font = name_font , text = name_string , line_spacing = 0.75 )
350
373
(_ , _ , width , _ ) = name_label .bounding_box
0 commit comments