From c1f50e1efa78ef7f35ed6f44828976fb7328d85b Mon Sep 17 00:00:00 2001 From: pml68 Date: Sun, 8 Jun 2025 02:04:09 +0200 Subject: feat: dialog improvements - "Unsaved changes" dialogs ask about saving the project - Trying to close the window also triggers an "unsaved changes" dialog when the editor is dirty. - Nicer API for dialogs (similar to what I do in `foghorn-rs/foghorn`) --- src/types.rs | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) (limited to 'src/types.rs') diff --git a/src/types.rs b/src/types.rs index 608f285..ef6d5c3 100644 --- a/src/types.rs +++ b/src/types.rs @@ -7,6 +7,7 @@ use std::path::PathBuf; pub use element_name::ElementName; use iced::advanced::widget::Id; use iced::widget::{pane_grid, text_editor}; +use iced::window; use iced_anim::Event; use material_theme::Theme; pub use project::Project; @@ -33,9 +34,9 @@ pub enum Message { PaneResized(pane_grid::ResizeEvent), PaneClicked(pane_grid::Pane), PaneDragged(pane_grid::DragEvent), - OpenDialog(&'static str, String, DialogButtons, DialogAction), CloseDialog, - DialogOk, + DialogYes, + DialogNo, DialogCancel, NewFile, OpenFile, @@ -43,22 +44,8 @@ pub enum Message { SaveFile, SaveFileAs, FileSaved(Result), -} - -#[derive(Debug, Clone, Copy, Default)] -pub enum DialogButtons { - #[default] - None, - Ok, - OkCancel, -} - -#[derive(Debug, Clone, Copy, Default)] -pub enum DialogAction { - #[default] - None, - NewFile, - OpenFile, + CloseApp, + WindowEvent(window::Event), } #[derive(Debug, Clone, Copy)] -- cgit v1.2.3