rg3d_ui/vec/
mod.rs

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}