mirror of
https://github.com/danbulant/cushy
synced 2026-07-05 19:20:36 +00:00
65 lines
1.7 KiB
Rust
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)
|
|
}
|