Dynamic Widget system

This commit is contained in:
2025-07-28 15:02:22 +02:00
parent 00f7493741
commit 02bdca151b
7 changed files with 82 additions and 224 deletions
+10 -15
View File
@@ -1,16 +1,7 @@
use std::sync::Arc;
use osui::{elements::state::use_state, frontend::Rsx, rsx, Screen};
use osui::{state::use_state, widget::WidgetLoad, Screen};
fn main() -> std::io::Result<()> {
let screen = Screen::new();
app().draw(&screen);
screen.run()
}
fn app() -> Rsx {
let count = use_state(0);
std::thread::spawn({
@@ -18,12 +9,16 @@ fn app() -> Rsx {
move || loop {
std::thread::sleep(std::time::Duration::from_millis(50));
**count.get() += 1;
count.update();
}
});
rsx! {
%count
@Transform::center();
"{count}"
}
screen
.draw({
let count = count.clone();
move || WidgetLoad::new(format!("Hello, World {count}"))
})
.dependency(count);
screen.run()
}