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}