Skip to content

Commit 3572dba

Browse files
authored
Merge pull request #42 from lcmcninch/button_label_scale
Allow label to be scaled
2 parents 3f006d2 + c8e9f55 commit 3572dba

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

adafruit_button/button.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ def __init__(
130130
label_color=0x0,
131131
selected_fill=None,
132132
selected_outline=None,
133-
selected_label=None
133+
selected_label=None,
134+
label_scale=None
134135
):
135136
super().__init__(
136137
x=x,
@@ -142,6 +143,7 @@ def __init__(
142143
label_font=label_font,
143144
label_color=label_color,
144145
selected_label=selected_label,
146+
label_scale=label_scale,
145147
)
146148

147149
self.body = self.fill = self.shadow = None

adafruit_button/button_base.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ def __init__(
5858
label=None,
5959
label_font=None,
6060
label_color=0x0,
61-
selected_label=None
61+
selected_label=None,
62+
label_scale=None
6263
):
6364
super().__init__(x=x, y=y)
6465
self.x = x
@@ -72,6 +73,7 @@ def __init__(
7273
self._label_color = label_color
7374
self._label_font = label_font
7475
self._selected_label = _check_color(selected_label)
76+
self._label_scale = label_scale or 1
7577

7678
@property
7779
def label(self):
@@ -89,14 +91,18 @@ def label(self, newtext):
8991

9092
if not self._label_font:
9193
raise RuntimeError("Please provide label font")
92-
self._label = Label(self._label_font, text=newtext)
93-
dims = self._label.bounding_box
94+
self._label = Label(self._label_font, text=newtext, scale=self._label_scale)
95+
dims = list(self._label.bounding_box)
96+
dims[2] *= self._label.scale
97+
dims[3] *= self._label.scale
9498
if dims[2] >= self.width or dims[3] >= self.height:
9599
while len(self._label.text) > 1 and (
96100
dims[2] >= self.width or dims[3] >= self.height
97101
):
98102
self._label.text = "{}.".format(self._label.text[:-2])
99-
dims = self._label.bounding_box
103+
dims = list(self._label.bounding_box)
104+
dims[2] *= self._label.scale
105+
dims[3] *= self._label.scale
100106
if len(self._label.text) <= 1:
101107
raise RuntimeError("Button not large enough for label")
102108
self._label.x = (self.width - dims[2]) // 2

adafruit_button/sprite_button.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ def __init__(
5656
selected_label=None,
5757
bmp_path=None,
5858
selected_bmp_path=None,
59-
transparent_index=None
59+
transparent_index=None,
60+
label_scale=None
6061
):
6162
if bmp_path is None:
6263
raise ValueError("Please supply bmp_path. It cannot be None.")
@@ -71,6 +72,7 @@ def __init__(
7172
label_font=label_font,
7273
label_color=label_color,
7374
selected_label=selected_label,
75+
label_scale=label_scale,
7476
)
7577

7678
self._bmp, self._bmp_palette = load(bmp_path)

0 commit comments

Comments
 (0)