use crate::document::layer_panel::{LayerPanelEntry, Path, RawBuffer}; use crate::message_prelude::*; use crate::tool::tool_options::ToolOptions; use crate::Color; use serde::{Deserialize, Serialize}; #[impl_message(Message, Frontend)] #[derive(PartialEq, Clone, Deserialize, Serialize, Debug)] pub enum FrontendMessage { DisplayFolderTreeStructure { data_buffer: RawBuffer }, SetActiveTool { tool_name: String, tool_options: Option }, SetActiveDocument { document_index: usize }, UpdateOpenDocumentsList { open_documents: Vec }, DisplayError { title: String, description: String }, DisplayPanic { panic_info: String, title: String, description: String }, DisplayConfirmationToCloseDocument { document_index: usize }, DisplayConfirmationToCloseAllDocuments, UpdateLayer { path: Path, data: LayerPanelEntry }, UpdateCanvas { document: String }, UpdateScrollbars { position: (f64, f64), size: (f64, f64), multiplier: (f64, f64) }, UpdateRulers { origin: (f64, f64), spacing: f64, interval: f64 }, ExportDocument { document: String, name: String }, SaveDocument { document: String, name: String }, OpenDocumentBrowse, EnableTextInput, DisableTextInput, UpdateWorkingColors { primary: Color, secondary: Color }, SetCanvasZoom { new_zoom: f64 }, SetCanvasRotation { new_radians: f64 }, }