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 @@
1
 //! Simple button widget.
1
 //! Simple button widget.
2
 
2
 
3
 use gartk_core::{InputEvent, MouseButton, Point, Rect, Theme};
3
 use gartk_core::{InputEvent, MouseButton, Point, Rect, Theme};
4
-use gartk_render::Renderer;
4
+use gartk_render::{Renderer, TextAlign, TextStyle};
5
 
5
 
6
 /// A clickable button.
6
 /// A clickable button.
7
 pub struct Button {
7
 pub struct Button {
@@ -90,10 +90,13 @@ impl Button {
90
         };
90
         };
91
         renderer.stroke_rounded_rect(self.rect, 6.0, border_color, 1.0)?;
91
         renderer.stroke_rounded_rect(self.rect, 6.0, border_color, 1.0)?;
92
 
92
 
93
-        // Label (centered)
93
+        // Label (centered using text_in_rect)
94
-        let text_x = self.rect.x as f64 + (self.rect.width as f64 / 2.0) - (self.label.len() as f64 * 3.5);
94
+        let style = TextStyle::new()
95
-        let text_y = self.rect.y as f64 + (self.rect.height as f64 / 2.0) - 6.0;
95
+            .font_family(&theme.font_family)
96
-        renderer.text_default(&self.label, text_x, text_y, text_color)?;
96
+            .font_size(theme.font_size)
97
+            .color(text_color)
98
+            .align(TextAlign::Center);
99
+        renderer.text_in_rect(&self.label, self.rect, &style)?;
97
 
100
 
98
         Ok(())
101
         Ok(())
99
     }
102
     }