rg3d-ui 0.15.0

Extendable UI library
Documentation
use crate::numeric::NumericType;
use crate::{
    border::BorderBuilder, brush::Brush, core::color::Color, core::pool::Handle,
    numeric::NumericUpDownBuilder, text::TextBuilder, widget::WidgetBuilder, BuildContext,
    Thickness, UiNode, VerticalAlignment,
};

pub mod vec2;
pub mod vec3;
pub mod vec4;

pub fn make_numeric_input<T: NumericType>(
    ctx: &mut BuildContext,
    column: usize,
    value: T,
) -> Handle<UiNode> {
    NumericUpDownBuilder::new(
        WidgetBuilder::new()
            .on_row(0)
            .on_column(column)
            .with_margin(Thickness {
                left: 1.0,
                top: 0.0,
                right: 1.0,
                bottom: 0.0,
            }),
    )
    .with_precision(3)
    .with_value(value)
    .build(ctx)
}

pub fn make_mark(
    ctx: &mut BuildContext,
    text: &str,
    column: usize,
    color: Color,
) -> Handle<UiNode> {
    BorderBuilder::new(
        WidgetBuilder::new()
            .on_row(0)
            .on_column(column)
            .with_background(Brush::Solid(color))
            .with_foreground(Brush::Solid(Color::TRANSPARENT))
            .with_child(
                TextBuilder::new(WidgetBuilder::new())
                    .with_vertical_text_alignment(VerticalAlignment::Center)
                    .with_text(text)
                    .build(ctx),
            ),
    )
    .build(ctx)
}