use mkgraphic::prelude::*;
use std::sync::atomic::{AtomicU32, Ordering};
use std::sync::Arc;
fn main() {
let mut app = App::new();
let mut window = Window::new("Timer Example", Extent::new(400.0, 200.0));
let status = Arc::new(status_bar().text("seconds elapsed: 0".to_string()));
window.set_content(status.clone() as ElementPtr);
window.show();
let seconds = Arc::new(AtomicU32::new(0));
let _timer = app.schedule_timer(1.0, move || {
let n = seconds.fetch_add(1, Ordering::SeqCst) + 1;
status.set_text(format!("seconds elapsed: {n}"));
window.refresh();
});
app.run();
}