diff --git a/adafruit_button/button.py b/adafruit_button/button.py index 007a8f1..45c87f7 100644 --- a/adafruit_button/button.py +++ b/adafruit_button/button.py @@ -130,7 +130,8 @@ def __init__( label_color=0x0, selected_fill=None, selected_outline=None, - selected_label=None + selected_label=None, + label_scale=None ): super().__init__( x=x, @@ -142,6 +143,7 @@ def __init__( label_font=label_font, label_color=label_color, selected_label=selected_label, + label_scale=label_scale, ) self.body = self.fill = self.shadow = None diff --git a/adafruit_button/button_base.py b/adafruit_button/button_base.py index d33cfc4..bcebc7e 100644 --- a/adafruit_button/button_base.py +++ b/adafruit_button/button_base.py @@ -58,7 +58,8 @@ def __init__( label=None, label_font=None, label_color=0x0, - selected_label=None + selected_label=None, + label_scale=None ): super().__init__(x=x, y=y) self.x = x @@ -72,6 +73,7 @@ def __init__( self._label_color = label_color self._label_font = label_font self._selected_label = _check_color(selected_label) + self._label_scale = label_scale or 1 @property def label(self): @@ -89,14 +91,18 @@ def label(self, newtext): if not self._label_font: raise RuntimeError("Please provide label font") - self._label = Label(self._label_font, text=newtext) - dims = self._label.bounding_box + self._label = Label(self._label_font, text=newtext, scale=self._label_scale) + dims = list(self._label.bounding_box) + dims[2] *= self._label.scale + dims[3] *= self._label.scale if dims[2] >= self.width or dims[3] >= self.height: while len(self._label.text) > 1 and ( dims[2] >= self.width or dims[3] >= self.height ): self._label.text = "{}.".format(self._label.text[:-2]) - dims = self._label.bounding_box + dims = list(self._label.bounding_box) + dims[2] *= self._label.scale + dims[3] *= self._label.scale if len(self._label.text) <= 1: raise RuntimeError("Button not large enough for label") self._label.x = (self.width - dims[2]) // 2 diff --git a/adafruit_button/sprite_button.py b/adafruit_button/sprite_button.py index c2f02ba..67fd9ee 100644 --- a/adafruit_button/sprite_button.py +++ b/adafruit_button/sprite_button.py @@ -56,7 +56,8 @@ def __init__( selected_label=None, bmp_path=None, selected_bmp_path=None, - transparent_index=None + transparent_index=None, + label_scale=None ): if bmp_path is None: raise ValueError("Please supply bmp_path. It cannot be None.") @@ -71,6 +72,7 @@ def __init__( label_font=label_font, label_color=label_color, selected_label=selected_label, + label_scale=label_scale, ) self._bmp, self._bmp_palette = load(bmp_path)