gardesk/gardisplay / bdda072

Browse files

fix button text centering using text_in_rect

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
bdda07268e024081bfbb99dcd3f5d16b80d2d103
Parents
1ff5261
Tree
ddcc69f

1 changed file

StatusFile+-
M gardisplay/src/ui/widgets/button.rs 8 5
gardisplay/src/ui/widgets/button.rsmodified
@@ -1,7 +1,7 @@
11
 //! Simple button widget.
22
 
33
 use gartk_core::{InputEvent, MouseButton, Point, Rect, Theme};
4
-use gartk_render::Renderer;
4
+use gartk_render::{Renderer, TextAlign, TextStyle};
55
 
66
 /// A clickable button.
77
 pub struct Button {
@@ -90,10 +90,13 @@ impl Button {
9090
         };
9191
         renderer.stroke_rounded_rect(self.rect, 6.0, border_color, 1.0)?;
9292
 
93
-        // Label (centered)
94
-        let text_x = self.rect.x as f64 + (self.rect.width as f64 / 2.0) - (self.label.len() as f64 * 3.5);
95
-        let text_y = self.rect.y as f64 + (self.rect.height as f64 / 2.0) - 6.0;
96
-        renderer.text_default(&self.label, text_x, text_y, text_color)?;
93
+        // Label (centered using text_in_rect)
94
+        let style = TextStyle::new()
95
+            .font_family(&theme.font_family)
96
+            .font_size(theme.font_size)
97
+            .color(text_color)
98
+            .align(TextAlign::Center);
99
+        renderer.text_in_rect(&self.label, self.rect, &style)?;
97100
 
98101
         Ok(())
99102
     }