dioxus/examples/overlay.rs

64 lines
1.5 KiB
Rust
Raw Normal View History

2022-12-31 03:14:28 +00:00
use dioxus::prelude::*;
2022-12-31 03:30:04 +00:00
use dioxus_desktop::{tao::dpi::PhysicalPosition, use_window, Config, LogicalSize, WindowBuilder};
2022-12-31 03:14:28 +00:00
fn main() {
2022-12-31 03:30:04 +00:00
dioxus_desktop::launch_cfg(app, make_config());
2022-12-31 03:14:28 +00:00
}
fn app(cx: Scope) -> Element {
let window = use_window(cx);
cx.render(rsx! {
div {
2022-12-31 03:30:04 +00:00
width: "100%",
height: "100%",
background_color: "red",
border: "1px solid black",
div {
width: "100%",
height: "10px",
background_color: "black",
onmousedown: move |_| window.drag(),
2022-12-31 03:14:28 +00:00
}
2022-12-31 03:30:04 +00:00
"This is an overlay!"
2022-12-31 03:14:28 +00:00
}
})
}
2022-12-31 03:30:04 +00:00
fn make_config() -> dioxus_desktop::Config {
dioxus_desktop::Config::default()
.with_window(make_window())
.with_custom_head(
r#"
<style type="text/css">
html, body {
height: 100px;
margin: 0;
overscroll-behavior-y: none;
overscroll-behavior-x: none;
overflow: hidden;
}
#main, #bodywrap {
height: 100%;
margin: 0;
overscroll-behavior-x: none;
overscroll-behavior-y: none;
}
</style>
"#
.to_owned(),
)
}
fn make_window() -> WindowBuilder {
WindowBuilder::new()
.with_transparent(true)
.with_decorations(false)
.with_resizable(false)
.with_always_on_top(true)
.with_position(PhysicalPosition::new(0, 0))
.with_max_inner_size(LogicalSize::new(100000, 50))
2022-12-31 03:14:28 +00:00
}