// Map, wardley map editor for linux // Copyright (C) 2026 Rubén Beltrán del Río // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . use std::path::PathBuf; use wmap_renderer::StageType; 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(StageType), 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, // Layout Transition DisableHorizontalLayout, EnableHorizontalLayout, // Help and About OpenAboutDialog, // Preferences ShowPreferences, PreferencesChanged(UserPreferences), PreferencesWindowClosed, ReloadPreferences, }