use orbtk::prelude::*; use orbtk::theme::DEFAULT_THEME_CSS; static CSS_EXT: &'static str = include_str!("../resources/stylesheets/grid.css"); fn get_theme() -> ThemeValue { ThemeValue::create_from_css(DEFAULT_THEME_CSS) .extension_css(CSS_EXT) .build() } widget!(MainView); impl Template for MainView { fn template(self, _: Entity, ctx: &mut BuildContext) -> Self { self.name("MainView").child( Grid::create() .columns( Columns::create() .column("*") .column("auto") .column(90.0) .build(), ) .rows(Rows::create().row("*").row("*").row("*").build()) .child( Grid::create() .selector("hiedemann") .margin((30.0, 25.0, 0.0, 20.0)) .constraint(Constraint::create().width(80.0).build()) .attach(Grid::column(0)) .child( TextBlock::create() .text("Grid\n(0,0)") .selector("hiedemann") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .build(ctx), ) .child( Grid::create() .selector("bluebayoux") .margin(10.0) .constraint(Constraint::create().width(150.0).build()) .attach(Grid::column(1)) .child( TextBlock::create() .text("Grid\n(1,0)") .selector("white") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .build(ctx), ) .child( Grid::create() .selector("linkwater") .attach(Grid::column(2)) .child( TextBlock::create() .text("Grid\n(2,0)") .selector("linkwater") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .build(ctx), ) .child( Grid::create() .selector("goldendream") .attach(Grid::column(0)) .attach(Grid::row(1)) .attach(Grid::column_span(3)) .child( TextBlock::create() .text("Grid (0,1) - ColumnSpan 3") .selector("goldendream") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .build(ctx), ) .child( Grid::create() .selector("bluebayoux") .margin(10.0) .constraint(Constraint::create().width(200.0).build()) .attach(Grid::column(0)) .attach(Grid::row(2)) .child( TextBlock::create() .text("Row 2") .selector("white") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .child( TextBlock::create() .text("(0,1)") .selector("white") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .build(ctx), ) /*.child( Grid::create() .selector("hiedemann") .attach(Grid::column(1)) .attach(Grid::row(2)) //.attach(Grid::column_span(2)) .margin((30.0, 25.0, 0.0, 20.0)) .attach(Grid::column(0)) .child( TextBlock::create() .text("(0,2)") //.selector("light-text") .selector("hiedemann") .horizontal_alignment("center") .vertical_alignment("center") .build(ctx), ) .build(ctx), ) */ .build(ctx), ) } } fn main() { // use this only if you want to run it as web application. //orbtk::initialize(); Application::new() .window(|ctx| { Window::create() .title("OrbTk - grid example") .position((100.0, 10.0)) .size(420.0, 530.0) .theme(get_theme()) .resizeable(true) .child(MainView::create().build(ctx)) .build(ctx) }) .run(); }