43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
use macroquad::prelude::*;
|
|
|
|
use crate::resources::Resources;
|
|
|
|
#[derive(Default)]
|
|
pub struct LabelWidget {
|
|
rect: Rect,
|
|
font_size: f32,
|
|
text_dimensions: TextDimensions,
|
|
pub text: String,
|
|
}
|
|
|
|
impl LabelWidget {
|
|
pub fn initialize_state(text: &str) -> Self {
|
|
Self {
|
|
text: text.to_string(),
|
|
..Default::default()
|
|
}
|
|
}
|
|
|
|
pub fn initialize_drawables(&mut self, rect: Rect, font_size: f32, resources: &Resources) {
|
|
self.rect = rect;
|
|
self.font_size = font_size;
|
|
self.text_dimensions = measure_text(&self.text, Some(resources.font()), font_size as u16, 1.0);
|
|
}
|
|
|
|
pub fn draw(&self, resources: &Resources) {
|
|
let draw_text_params = TextParams {
|
|
font: Some(&resources.font()),
|
|
font_size: self.font_size as u16,
|
|
color: BLACK,
|
|
..Default::default()
|
|
};
|
|
|
|
draw_text_ex(
|
|
&self.text,
|
|
self.rect.x,
|
|
self.rect.y + self.text_dimensions.offset_y,
|
|
draw_text_params,
|
|
);
|
|
}
|
|
}
|