//! Implements a window for adding a new Todo. use cacao::appkit::window::{Window, WindowDelegate}; use cacao::view::ViewController; use crate::storage::{dispatch_ui, Message}; mod view; use view::AddNewTodoContentView; pub struct AddNewTodoWindow { pub content: ViewController } impl AddNewTodoWindow { pub fn new() -> Self { let content = ViewController::new(AddNewTodoContentView::default()); AddNewTodoWindow { content: content } } pub fn on_message(&self, message: Message) { if let Some(delegate) = &self.content.view.delegate { delegate.on_message(message); } } } impl WindowDelegate for AddNewTodoWindow { const NAME: &'static str = "AddNewTodoWindow"; fn did_load(&mut self, window: Window) { window.set_autosave_name("AddNewTodoWindow"); window.set_minimum_content_size(300, 100); window.set_title("Add a New Task"); window.set_content_view_controller(&self.content); } fn cancel(&self) { dispatch_ui(Message::CloseSheet); } }