cushy/examples/overlays.rs
Jonathan Johnson 0d34924ddf
OverlayLayer
Refs #37
2023-12-06 15:53:25 -08:00

65 lines
1.7 KiB
Rust

use gooey::widget::{MakeWidget, MakeWidgetWithId, WidgetTag};
use gooey::widgets::layers::OverlayLayer;
use gooey::Run;
fn main() -> gooey::Result {
let overlay = OverlayLayer::default();
test_widget(&overlay)
.centered()
.and(overlay)
.into_layers()
.run()
}
fn test_widget(overlay: &OverlayLayer) -> impl MakeWidget {
let (my_tag, my_id) = WidgetTag::new();
let right = "Right".into_button().on_click({
let overlay = overlay.clone();
move |()| {
overlay
.build_overlay(test_widget(&overlay))
.right_of(my_id)
.show()
.forget();
}
});
let left = "Left".into_button().on_click({
let overlay = overlay.clone();
move |()| {
overlay
.build_overlay(test_widget(&overlay))
.left_of(my_id)
.show()
.forget();
}
});
let up = "Up".into_button().on_click({
let overlay = overlay.clone();
move |()| {
overlay
.build_overlay(test_widget(&overlay))
.above(my_id)
.show()
.forget();
}
});
let down = "Down".into_button().on_click({
let overlay = overlay.clone();
move |()| {
overlay
.build_overlay(test_widget(&overlay))
.below(my_id)
.show()
.forget();
}
});
up.centered()
.and(left.and(right).into_columns())
.and(down.centered())
.into_rows()
.contain()
.pad()
.make_with_id(my_tag)
}