1use crate::numeric::NumericType;
2use crate::{
3 border::BorderBuilder, brush::Brush, core::color::Color, core::pool::Handle,
4 numeric::NumericUpDownBuilder, text::TextBuilder, widget::WidgetBuilder, BuildContext,
5 Thickness, UiNode, VerticalAlignment,
6};
7
8pub mod vec2;
9pub mod vec3;
10pub mod vec4;
11
12pub fn make_numeric_input<T: NumericType>(
13 ctx: &mut BuildContext,
14 column: usize,
15 value: T,
16) -> Handle<UiNode> {
17 NumericUpDownBuilder::new(
18 WidgetBuilder::new()
19 .on_row(0)
20 .on_column(column)
21 .with_margin(Thickness {
22 left: 1.0,
23 top: 0.0,
24 right: 1.0,
25 bottom: 0.0,
26 }),
27 )
28 .with_precision(3)
29 .with_value(value)
30 .build(ctx)
31}
32
33pub fn make_mark(
34 ctx: &mut BuildContext,
35 text: &str,
36 column: usize,
37 color: Color,
38) -> Handle<UiNode> {
39 BorderBuilder::new(
40 WidgetBuilder::new()
41 .on_row(0)
42 .on_column(column)
43 .with_background(Brush::Solid(color))
44 .with_foreground(Brush::Solid(Color::TRANSPARENT))
45 .with_child(
46 TextBuilder::new(WidgetBuilder::new())
47 .with_vertical_text_alignment(VerticalAlignment::Center)
48 .with_text(text)
49 .build(ctx),
50 ),
51 )
52 .build(ctx)
53}