diff --git a/gui/src/widgets/button.rs b/gui/src/widgets/button.rs index 584a352..2bb2031 100644 --- a/gui/src/widgets/button.rs +++ b/gui/src/widgets/button.rs @@ -66,23 +66,22 @@ impl ButtonWidget { }; let font = resources.font(); - let mut dim_width = self.rect.w; - let mut font_size = 30.0; - let mut dims = measure_text(&text, Some(&font), font_size as u16, 1.0); + let target_w = self.rect.w * 0.9; + let target_h = self.rect.h; + let mut font_size = 20; + let mut dims = measure_text(&text, Some(&font), font_size, 1.0); loop { - if dim_width <= self.rect.w * 0.8 { + if dims.width <= target_w && dims.height <= target_h { break; } + font_size -= 2; dims = measure_text(&text, Some(&font), font_size as u16, 1.0); - dim_width = dims.width; - font_size -= 2.0; } let button_draw_offset = self.get_button_draw_offset(); - let text_params = TextParams { - font_size: font_size as u16, + font_size, color: font_color, font: Some(&font), ..Default::default() diff --git a/gui/src/widgets/counter.rs b/gui/src/widgets/counter.rs index 6a0819e..f52d938 100644 --- a/gui/src/widgets/counter.rs +++ b/gui/src/widgets/counter.rs @@ -112,13 +112,26 @@ impl CounterWidget { self.increment.draw("+", &UiColor::Yellow, resources); self.decrement.draw("-", &UiColor::Yellow, resources); + let font = resources.font(); + let mut min_dim = self.visual_rect.w.min(self.visual_rect.h); + let mut font_size = self.font_size as u16; + loop { + if min_dim <= self.visual_rect.w * 0.5 { + break; + } + + let dims = measure_text(&self.current.to_string(), Some(&font), font_size as u16, 1.0); + min_dim = dims.width.min(dims.height); + font_size -= 1; + } + draw_text_ex( &self.current.to_string(), self.visual_rect.x + (self.visual_rect.w - self.visual_dims.width) / 2., self.visual_rect.y + (self.visual_rect.h + self.font_size) / 2., TextParams { font: Some(resources.font()), - font_size: self.font_size as u16, + font_size, color: UiColor::Yellow.to_fg_color(), ..Default::default() },