famiq 0.3.1

Experimental GUI library, powered by Bevy engine.
Documentation
use bevy::prelude::*;
use super::*;

fn get_progress_bar_size(size: &WidgetSize) -> f32 {
    let size_small = 8.0;
    let size_normal = 12.0;
    let size_large = 15.0;

    match size {
        WidgetSize::Small => size_small,
        WidgetSize::Large => size_large,
        WidgetSize::Custom(v) => *v,
        _ => size_normal
    }
}

pub(crate) fn default_progress_bar_node(size: &WidgetSize) -> Node {
    Node {
        padding: UiRect::all(Val::Px(0.0)),
        margin: UiRect {
            top: Val::Px(2.0),
            right: Val::Px(0.0),
            left: Val::Px(0.0),
            bottom: Val::Px(2.0),
        },
        height: Val::Px(get_progress_bar_size(size)),
        width: Val::Percent(100.0),
        border: UiRect::all(Val::Px(0.0)),
        ..default()
    }
}

pub(crate) fn default_progress_value_node(percentage: Option<f32>) -> Node {
    let mut node = Node {
        width: Val::Percent(100.0),
        height: Val::Percent(100.0),
        border: UiRect::all(Val::Px(0.0)),
        margin: UiRect::all(Val::Px(0.0)),
        ..default()
    };

    if let Some(percentage) = percentage {
        node.width = Val::Percent(percentage);
    }
    node
}