2023-01-13 00:48:23 +00:00
|
|
|
use dioxus::prelude::*;
|
|
|
|
use dioxus_desktop::tao::event::WindowEvent;
|
|
|
|
use dioxus_desktop::use_wry_event_handler;
|
|
|
|
use dioxus_desktop::wry::application::event::Event as WryEvent;
|
2023-07-04 12:48:05 +00:00
|
|
|
use dioxus_desktop::{Config, WindowCloseBehaviour};
|
2023-01-13 00:48:23 +00:00
|
|
|
|
|
|
|
fn main() {
|
2023-07-04 12:48:05 +00:00
|
|
|
let cfg = Config::new().with_close_behaviour(WindowCloseBehaviour::CloseWindow);
|
|
|
|
|
|
|
|
dioxus_desktop::launch_cfg(app, cfg);
|
2023-01-13 00:48:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn app(cx: Scope) -> Element {
|
|
|
|
let focused = use_state(cx, || false);
|
|
|
|
|
|
|
|
use_wry_event_handler(cx, {
|
|
|
|
to_owned![focused];
|
|
|
|
move |event, _| {
|
|
|
|
if let WryEvent::WindowEvent {
|
|
|
|
event: WindowEvent::Focused(new_focused),
|
|
|
|
..
|
|
|
|
} = event
|
|
|
|
{
|
|
|
|
focused.set(*new_focused);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
cx.render(rsx! {
|
|
|
|
div{
|
|
|
|
width: "100%",
|
|
|
|
height: "100%",
|
|
|
|
display: "flex",
|
|
|
|
flex_direction: "column",
|
|
|
|
align_items: "center",
|
|
|
|
{
|
|
|
|
if *focused.get() {
|
|
|
|
"This window is focused!"
|
|
|
|
} else {
|
|
|
|
"This window is not focused!"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|