Skip to content
Snippets Groups Projects
grid.rs 2.4 KiB
Newer Older
use orbtk::*;

struct MainView;

// todo: check running by each system

// todo: use ParentType::Single as default

impl Widget for MainView {
    fn create() -> Template {
        Template::default()
Florian Blasius's avatar
Florian Blasius committed
            .debug_name("MainView")
            .child(
Florian Blasius's avatar
Florian Blasius committed
                    .property(Selector::from("green"))
                    .property(
                        Columns::create()
Florian Blasius's avatar
Florian Blasius committed
                            .column(Column::create().width(ColumnWidth::Stretch).build())
                            .column(Column::create().width(ColumnWidth::Auto).build())
                            .column(Column::create().width(ColumnWidth::Width(50.0)).build())
Florian Blasius's avatar
Florian Blasius committed
                    .property(
Florian Blasius's avatar
Florian Blasius committed
                            .row(Row::create().height(RowHeight::Stretch).build())
                            .row(Row::create().height(RowHeight::Stretch).build())
Florian Blasius's avatar
Florian Blasius committed
                    .child(
Florian Blasius's avatar
Florian Blasius committed
                            .property(Selector::from("blue"))
                            .property(GridColumn(0)),
Florian Blasius's avatar
Florian Blasius committed
                    .child(
Florian Blasius's avatar
Florian Blasius committed
                            .property(Selector::from("yellow"))
                            .property(GridColumn(1)),
Florian Blasius's avatar
Florian Blasius committed
                    .child(
Florian Blasius's avatar
Florian Blasius committed
                            .property(Selector::from("red"))
                            .property(GridColumn(2)),
Florian Blasius's avatar
Florian Blasius committed
                    .child(
Florian Blasius's avatar
Florian Blasius committed
                            .property(Selector::from("olive"))
                            .property(GridColumn(1))
                            .property(GridRow(1))
                            .property(ColumnSpan(2)),
                    ),
            )
    }
}

fn main() {
    let mut application = Application::default();
    application
        .create_window()
Florian Blasius's avatar
Florian Blasius committed
        .bounds(Bounds::new(100.0, 100.0, 420.0, 730.0))
        .title("OrbTk - grid example")
        .root(MainView::create())
        .theme(
Florian Blasius's avatar
Florian Blasius committed
                .extenstion_path("examples/res/grid.css")
Florian Blasius's avatar
Florian Blasius committed
        .resizable(true)
        .debug_flag(true)
        .build();
    application.run();
}