| use super::utility_types::{FrontendDocumentDetails, MouseCursorIcon}; |
| use crate::messages::layout::utility_types::widget_prelude::*; |
| use crate::messages::portfolio::document::node_graph::utility_types::{ |
| BoxSelection, ContextMenuInformation, FrontendClickTargets, FrontendGraphInput, FrontendGraphOutput, FrontendNode, FrontendNodeType, Transform, |
| }; |
| use crate::messages::portfolio::document::utility_types::nodes::{JsRawBuffer, LayerPanelEntry, RawBuffer}; |
| use crate::messages::portfolio::document::utility_types::wires::{WirePath, WirePathUpdate}; |
| use crate::messages::prelude::*; |
| use crate::messages::tool::utility_types::HintData; |
| use graph_craft::document::NodeId; |
| use graphene_std::raster::color::Color; |
| use graphene_std::text::Font; |
|
|
| #[impl_message(Message, Frontend)] |
| #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] |
| pub enum FrontendMessage { |
| |
| DisplayDialog { |
| title: String, |
| icon: String, |
| }, |
| DisplayDialogDismiss, |
| DisplayDialogPanic { |
| #[serde(rename = "panicInfo")] |
| panic_info: String, |
| }, |
| DisplayEditableTextbox { |
| text: String, |
| #[serde(rename = "lineHeightRatio")] |
| line_height_ratio: f64, |
| #[serde(rename = "fontSize")] |
| font_size: f64, |
| color: Color, |
| url: String, |
| transform: [f64; 6], |
| #[serde(rename = "maxWidth")] |
| max_width: Option<f64>, |
| #[serde(rename = "maxHeight")] |
| max_height: Option<f64>, |
| }, |
| DisplayEditableTextboxTransform { |
| transform: [f64; 6], |
| }, |
| DisplayRemoveEditableTextbox, |
|
|
| |
| SendUIMetadata { |
| #[serde(rename = "nodeDescriptions")] |
| node_descriptions: Vec<(String, String)>, |
| #[serde(rename = "nodeTypes")] |
| node_types: Vec<FrontendNodeType>, |
| }, |
|
|
| |
| TriggerAboutGraphiteLocalizedCommitDate { |
| #[serde(rename = "commitDate")] |
| commit_date: String, |
| }, |
| TriggerDelayedZoomCanvasToFitAll, |
| TriggerDownloadImage { |
| svg: String, |
| name: String, |
| mime: String, |
| size: (f64, f64), |
| }, |
| TriggerDownloadTextFile { |
| document: String, |
| name: String, |
| }, |
| TriggerFetchAndOpenDocument { |
| name: String, |
| filename: String, |
| }, |
| TriggerFontLoad { |
| font: Font, |
| }, |
| TriggerImport, |
| TriggerIndexedDbRemoveDocument { |
| #[serde(rename = "documentId")] |
| document_id: DocumentId, |
| }, |
| TriggerIndexedDbWriteDocument { |
| document: String, |
| details: FrontendDocumentDetails, |
| }, |
| TriggerLoadFirstAutoSaveDocument, |
| TriggerLoadRestAutoSaveDocuments, |
| TriggerLoadPreferences, |
| TriggerOpenDocument, |
| TriggerPaste, |
| TriggerSavePreferences { |
| preferences: PreferencesMessageHandler, |
| }, |
| TriggerSaveActiveDocument { |
| #[serde(rename = "documentId")] |
| document_id: DocumentId, |
| }, |
| TriggerTextCommit, |
| TriggerTextCopy { |
| #[serde(rename = "copyText")] |
| copy_text: String, |
| }, |
| TriggerVisitLink { |
| url: String, |
| }, |
|
|
| |
| UpdateActiveDocument { |
| #[serde(rename = "documentId")] |
| document_id: DocumentId, |
| }, |
| UpdateImportsExports { |
| imports: Vec<(FrontendGraphOutput, i32, i32)>, |
| exports: Vec<(FrontendGraphInput, i32, i32)>, |
| #[serde(rename = "addImport")] |
| add_import: Option<(i32, i32)>, |
| #[serde(rename = "addExport")] |
| add_export: Option<(i32, i32)>, |
| }, |
| UpdateInSelectedNetwork { |
| #[serde(rename = "inSelectedNetwork")] |
| in_selected_network: bool, |
| }, |
| UpdateBox { |
| #[serde(rename = "box")] |
| box_selection: Option<BoxSelection>, |
| }, |
| UpdateContextMenuInformation { |
| #[serde(rename = "contextMenuInformation")] |
| context_menu_information: Option<ContextMenuInformation>, |
| }, |
| UpdateClickTargets { |
| #[serde(rename = "clickTargets")] |
| click_targets: Option<FrontendClickTargets>, |
| }, |
| UpdateGraphViewOverlay { |
| open: bool, |
| }, |
| UpdateSpreadsheetState { |
| open: bool, |
| node: Option<NodeId>, |
| }, |
| UpdateSpreadsheetLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateImportReorderIndex { |
| #[serde(rename = "importIndex")] |
| index: Option<usize>, |
| }, |
| UpdateExportReorderIndex { |
| #[serde(rename = "exportIndex")] |
| index: Option<usize>, |
| }, |
| UpdateLayerWidths { |
| #[serde(rename = "layerWidths")] |
| layer_widths: HashMap<NodeId, u32>, |
| #[serde(rename = "chainWidths")] |
| chain_widths: HashMap<NodeId, u32>, |
| #[serde(rename = "hasLeftInputWire")] |
| has_left_input_wire: HashMap<NodeId, bool>, |
| }, |
| UpdateDialogButtons { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateDialogColumn1 { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateDialogColumn2 { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateDocumentArtwork { |
| svg: String, |
| }, |
| UpdateDocumentBarLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateDocumentLayerDetails { |
| data: LayerPanelEntry, |
| }, |
| UpdateDocumentLayerStructure { |
| #[serde(rename = "dataBuffer")] |
| data_buffer: RawBuffer, |
| }, |
| UpdateDocumentLayerStructureJs { |
| #[serde(rename = "dataBuffer")] |
| data_buffer: JsRawBuffer, |
| }, |
| UpdateDocumentModeLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateDocumentRulers { |
| origin: (f64, f64), |
| spacing: f64, |
| interval: f64, |
| visible: bool, |
| }, |
| UpdateDocumentScrollbars { |
| position: (f64, f64), |
| size: (f64, f64), |
| multiplier: (f64, f64), |
| }, |
| UpdateEyedropperSamplingState { |
| #[serde(rename = "mousePosition")] |
| mouse_position: Option<(f64, f64)>, |
| #[serde(rename = "primaryColor")] |
| primary_color: String, |
| #[serde(rename = "secondaryColor")] |
| secondary_color: String, |
| #[serde(rename = "setColorChoice")] |
| set_color_choice: Option<String>, |
| }, |
| UpdateGraphFadeArtwork { |
| percentage: f64, |
| }, |
| UpdateInputHints { |
| #[serde(rename = "hintData")] |
| hint_data: HintData, |
| }, |
| UpdateLayersPanelControlBarLeftLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateLayersPanelControlBarRightLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateLayersPanelBottomBarLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateMenuBarLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| layout: Vec<MenuBarEntry>, |
| }, |
| UpdateMouseCursor { |
| cursor: MouseCursorIcon, |
| }, |
| UpdateNodeGraphNodes { |
| nodes: Vec<FrontendNode>, |
| }, |
| UpdateVisibleNodes { |
| nodes: Vec<NodeId>, |
| }, |
| UpdateNodeGraphWires { |
| wires: Vec<WirePathUpdate>, |
| }, |
| ClearAllNodeGraphWires, |
| UpdateNodeGraphControlBarLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateNodeGraphSelection { |
| selected: Vec<NodeId>, |
| }, |
| UpdateNodeGraphTransform { |
| transform: Transform, |
| }, |
| UpdateNodeThumbnail { |
| id: NodeId, |
| value: String, |
| }, |
| UpdateOpenDocumentsList { |
| #[serde(rename = "openDocuments")] |
| open_documents: Vec<FrontendDocumentDetails>, |
| }, |
| UpdatePropertyPanelSectionsLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateToolOptionsLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateToolShelfLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| UpdateWirePathInProgress { |
| #[serde(rename = "wirePath")] |
| wire_path: Option<WirePath>, |
| }, |
| UpdateWorkingColorsLayout { |
| #[serde(rename = "layoutTarget")] |
| layout_target: LayoutTarget, |
| diff: Vec<WidgetDiff>, |
| }, |
| } |
|
|