5858import analogio
5959from adafruit_display_shapes .rect import Rect
6060from adafruit_display_text .label import Label
61+ from adafruit_bitmap_font import bitmap_font
6162import terminalio
6263import adafruit_miniqr
6364import adafruit_lis3dh
6768
6869Buttons = namedtuple ("Buttons" , "b a start select right down up left" )
6970
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
7081
7182# pylint: disable=too-many-instance-attributes
7283class PyBadger :
@@ -258,6 +269,8 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
258269 except AttributeError :
259270 self .display .wait_for_frame ()
260271 if name_string :
272+ if isinstance (name_font , str ):
273+ name_font = load_font (name_font , name_string )
261274 name_group = displayio .Group (scale = name_scale )
262275 name_label = Label (name_font , text = name_string )
263276 (_ , _ , width , _ ) = name_label .bounding_box
@@ -267,6 +280,8 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
267280 name_group .append (name_label )
268281 business_card_splash .append (name_group )
269282 if email_string_one :
283+ if isinstance (email_font_one , str ):
284+ email_font_one = load_font (email_font_one , email_string_one )
270285 email_group_one = displayio .Group (scale = email_scale_one )
271286 email_label_one = Label (email_font_one , text = email_string_one )
272287 (_ , _ , width , _ ) = email_label_one .bounding_box
@@ -277,6 +292,8 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
277292 email_group_one .append (email_label_one )
278293 business_card_splash .append (email_group_one )
279294 if email_string_two :
295+ if isinstance (email_font_two , str ):
296+ email_font_two = load_font (email_font_two , email_string_two )
280297 email_group_two = displayio .Group (scale = email_scale_two )
281298 email_label_two = Label (email_font_two , text = email_string_two )
282299 (_ , _ , width , _ ) = email_label_two .bounding_box
@@ -329,6 +346,8 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
329346 (int (self .display .height * 0.5 )), fill = foreground_color )
330347 splash .append (rect )
331348
349+ if isinstance (hello_font , str ):
350+ hello_font = load_font (hello_font , hello_string )
332351 hello_group = displayio .Group (scale = hello_scale )
333352 hello_label = Label (font = hello_font , text = hello_string )
334353 (_ , _ , width , _ ) = hello_label .bounding_box
@@ -337,6 +356,8 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
337356 hello_label .color = background_text_color
338357 hello_group .append (hello_label )
339358
359+ if isinstance (my_name_is_font , str ):
360+ my_name_is_font = load_font (my_name_is_font , my_name_is_string )
340361 my_name_is_group = displayio .Group (scale = my_name_is_scale )
341362 my_name_is_label = Label (font = my_name_is_font , text = my_name_is_string )
342363 (_ , _ , width , _ ) = my_name_is_label .bounding_box
@@ -345,6 +366,8 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
345366 my_name_is_label .color = background_text_color
346367 my_name_is_group .append (my_name_is_label )
347368
369+ if isinstance (name_font , str ):
370+ name_font = load_font (name_font , name_string )
348371 name_group = displayio .Group (scale = name_scale )
349372 name_label = Label (font = name_font , text = name_string , line_spacing = 0.75 )
350373 (_ , _ , width , _ ) = name_label .bounding_box
0 commit comments