Skip to content

Commit 93cbd71

Browse files
committed
Use label scale to when centering on button
1 parent 978e333 commit 93cbd71

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
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: 9 additions & 3 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])
99103
dims = 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

0 commit comments

Comments
 (0)