iris_ui/
label.rs

1use crate::gfx::TextStyle;
2use crate::util;
3use crate::view::Flex::Intrinsic;
4use crate::view::{View, ViewId};
5
6pub fn make_label(name: &'static str, title: &str) -> View {
7    View {
8        name: ViewId::new(name),
9        title: title.into(),
10        h_flex: Intrinsic,
11        v_flex: Intrinsic,
12        layout: Some(|e| {
13            if let Some(view) = e.scene.get_view_mut(e.target) {
14                view.bounds.size = util::calc_size(e.theme.font, &view.title);
15            }
16        }),
17        draw: Some(|e| {
18            let style = TextStyle::new(&e.theme.font, &e.theme.fg);
19            e.ctx.fill_text(&e.view.bounds, &e.view.title, &style);
20        }),
21        ..Default::default()
22    }
23}