import "themes/default.cfg" new FramedTopLevelWindow main { frame.text = "Hybrid Model viewer"; layout = { padding = 3 3; spacing = 2; } new HBox { layout = { spacing = 2; } [vfill vexpand] new Input pathInput { size = 400 0; text = "scenes/teapot/scene.hme"; } [vfill vexpand] new Button loadButton { text = "Load"; } [vfill vexpand] new Button unloadButton { text = "Unload"; } } new Dummy { size = 0 20; } new HBox { layout = { spacing = 2; } new VBox { view1 { size = 320 240; } [hexpand hfill] new ViewportControls view1ctrl; } new VBox { view2 { size = 320 240; } [hexpand hfill] new ViewportControls view2ctrl; } } new HBox { layout = { spacing = 2; } new VBox { view3 { size = 320 240; } [hexpand hfill] new ViewportControls view3ctrl; } new VBox { view0 { size = 320 240; } [hexpand hfill] new ViewportControls view0ctrl; } } } @overlay { [hexpand vexpand hfill vfill] new Group .overlay { layout = Ghost; } } widget ViewportControls { layout = HBox; [hexpand hfill] new VBox { new Label { text = "zoom"; fontSize = 10; } new FloatInputSpinner zoom; } [hexpand hfill] new VBox { new Label { text = "x offset"; fontSize = 10; } new FloatInputSpinner xoff; } [hexpand hfill] new VBox { new Label { text = "y offset"; fontSize = 10; } new FloatInputSpinner yoff; } [hexpand hfill] new VBox { new Label { text = "z offset"; fontSize = 10; } new FloatInputSpinner zoff; } zoom = prop(zoom.value); x = prop(xoff.value); y = prop(yoff.value); z = prop(zoff.value); }