Some updates to sizing button text

This commit is contained in:
cool-mist
2026-02-15 00:13:54 +05:30
parent 280150b0b0
commit 810a4cb33c
2 changed files with 21 additions and 9 deletions
+7 -8
View File
@@ -66,23 +66,22 @@ impl ButtonWidget {
}; };
let font = resources.font(); let font = resources.font();
let mut dim_width = self.rect.w; let target_w = self.rect.w * 0.9;
let mut font_size = 30.0; let target_h = self.rect.h;
let mut dims = measure_text(&text, Some(&font), font_size as u16, 1.0); let mut font_size = 20;
let mut dims = measure_text(&text, Some(&font), font_size, 1.0);
loop { loop {
if dim_width <= self.rect.w * 0.8 { if dims.width <= target_w && dims.height <= target_h {
break; break;
} }
font_size -= 2;
dims = measure_text(&text, Some(&font), font_size as u16, 1.0); 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 button_draw_offset = self.get_button_draw_offset();
let text_params = TextParams { let text_params = TextParams {
font_size: font_size as u16, font_size,
color: font_color, color: font_color,
font: Some(&font), font: Some(&font),
..Default::default() ..Default::default()
+14 -1
View File
@@ -112,13 +112,26 @@ impl CounterWidget {
self.increment.draw("+", &UiColor::Yellow, resources); self.increment.draw("+", &UiColor::Yellow, resources);
self.decrement.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( draw_text_ex(
&self.current.to_string(), &self.current.to_string(),
self.visual_rect.x + (self.visual_rect.w - self.visual_dims.width) / 2., 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., self.visual_rect.y + (self.visual_rect.h + self.font_size) / 2.,
TextParams { TextParams {
font: Some(resources.font()), font: Some(resources.font()),
font_size: self.font_size as u16, font_size,
color: UiColor::Yellow.to_fg_color(), color: UiColor::Yellow.to_fg_color(),
..Default::default() ..Default::default()
}, },