use druid_shell::kurbo::Size;
use druid_shell::piet::Piet;
use druid_shell::Region;
use guiver::{run, Command, WidgetManager};
use guiver::{Application, SystemEvent};
pub(crate) struct App {
widget_manager: WidgetManager,
}
impl App {
pub(crate) fn new() -> Self {
let mut widget_manager = WidgetManager::new();
let placeholder = widget_manager.new_placeholder();
let _ = widget_manager.send_commands(vec![Command::SetMainWidget(placeholder)]);
App { widget_manager }
}
}
impl Application for App {
fn handle_system_event(&mut self, _system_event: &SystemEvent) {
}
fn paint(&mut self, piet: &mut Piet, region: &Region) {
self.widget_manager.paint(piet, region).unwrap();
}
fn resize(&mut self, size: Size) {
self.widget_manager.resize(size);
}
}
pub fn main() {
run(Box::new(App::new()), "placeholder", (300.0, 150.0).into());
}