fltk-flex 0.2.1

A flexbox widget for fltk-rs
use fltk::{prelude::*, *};
use fltk_flex::Flex;

fn main() {
    let a = app::App::default().with_scheme(app::Scheme::Gtk);
    let mut win = window::Window::default().with_size(640, 480);
    let mut col = Flex::new(5, 5, 630, 470, None).column();
    {
        let mut row = Flex::default().row();
        {
            let _cancel = create_button("Cancel");
            let frame = frame::Frame::default().with_label("Box");
            let _ok = create_button("OK");
            let _input = input::Input::default();
            let col2 = Flex::default().column();
            {
                let top = create_button("Top");
                col2.resizable(&top);
                let _bottom = create_button("Bottom");
                col2.end();
            }
            row.resizable(&frame);
            row.end();
        }
        col.set_size(&mut create_middle(), 30);
        let _ub1 = create_button("Something1");
        row = Flex::default().row();
        {
            let mut cancel = create_button("Cancel");
            let mut ok = create_button("OK");
            let _input = input::Input::default();
            row.set_size(&mut cancel, 100);
            row.set_size(&mut ok, 100);
            row.end();
        }
        let _ub2 = create_button("Something2");
        col.set_size(&mut row, 30);
        col.end();
    }
    win.resizable(&col);
    win.end();
    win.show();
    a.run().unwrap();
}

fn create_middle() -> Flex {
    let mut row = Flex::default().row();
    {
        let _cancel = create_button("Cancel");
        let mut frame = frame::Frame::default().with_label("Box");
        let _ok = create_button("OK");
        let _input = input::Input::default();
        let mut col2 = Flex::default().column();
        {
            create_button("Top");
            col2.end();
        }
        row.set_size(&mut frame, 30);
        row.set_size(&mut col2, 100);
        row.end();
    }
    row
}

fn create_button(caption: &str) -> button::Button {
    let mut btn = button::Button::default()
        .with_label(caption);
    btn.set_color(enums::Color::from_rgb(225, 225, 225));
    btn
}