use std::path::PathBuf; use crate::preferences::UserPreferences; #[derive(Debug, Clone, Copy)] pub enum ImageFormat { Png, Svg, } impl ImageFormat { pub fn extension(&self) -> &'static str { match self { ImageFormat::Png => "png", ImageFormat::Svg => "svg", } } pub fn mime_type(&self) -> &'static str { match self { ImageFormat::Png => "image/png", ImageFormat::Svg => "image/svg+xml", } } } #[derive(Debug, Clone)] pub enum Action { ChangeOrientation, StageTypeSelected(usize), SourceChanged, Zoom(f64), ZoomOut, ZoomIn, ExportImage, ExportToFile { path: PathBuf, format: ImageFormat }, New, NewFromTemplateById(String), Open, Save { close_after: bool }, SaveAs { close_after: bool }, LoadFile(PathBuf), SaveToFile { path: PathBuf, close_after: bool }, MarkInitialized, CloseWindow, // Preferences ShowPreferences, PreferencesChanged(UserPreferences), PreferencesWindowClosed, ReloadPreferences, }