Dynamic Widget system
This commit is contained in:
+10
-15
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user