Message `editor/src/messages/message.rs#L6` ├── Animation │ ├── AnimationMessage `editor/src/messages/animation/animation_message.rs#L6` │ │ ├── ToggleLivePreview │ │ ├── EnableLivePreview │ │ ├── DisableLivePreview │ │ ├── RestartAnimation │ │ ├── SetFrameIndex │ │ │ └── frame: f64 │ │ ├── SetTime │ │ │ └── time: f64 │ │ ├── UpdateTime │ │ ├── IncrementFrameCounter │ │ └── SetAnimationTimeMode │ │ └── animation_time_mode: AnimationTimeMode │ └── AnimationMessageHandler `editor/src/messages/animation/animation_message_handler.rs#L28` │ ├── live_preview_recently_zero: bool │ ├── timestamp: f64 │ ├── frame_index: f64 │ ├── animation_state: AnimationState │ ├── fps: f64 │ └── animation_time_mode: AnimationTimeMode ├── AppWindow │ ├── AppWindowMessage `editor/src/messages/app_window/app_window_message.rs#L5` │ │ ├── PointerLock │ │ ├── PointerLockMove │ │ │ ├── x: f64 │ │ │ └── y: f64 │ │ ├── Restart │ │ ├── Close │ │ ├── Minimize │ │ ├── Maximize │ │ ├── Fullscreen │ │ ├── Drag │ │ ├── Hide │ │ ├── HideOthers │ │ └── ShowAll │ └── AppWindowMessageHandler `editor/src/messages/app_window/app_window_message_handler.rs#L7` ├── Broadcast │ ├── BroadcastMessage `editor/src/messages/broadcast/broadcast_message.rs#L5` │ │ ├── TriggerEvent │ │ │ ├── EventMessage `editor/src/messages/broadcast/event/event_message.rs#L5` │ │ │ │ ├── AnimationFrame │ │ │ │ ├── CanvasTransformed │ │ │ │ ├── ToolAbort │ │ │ │ ├── SelectionChanged │ │ │ │ └── WorkingColorChanged │ │ │ ├── EventMessageHandler `editor/src/messages/broadcast/event/event_message_handler.rs#L9` │ │ │ └── EventMessageContext `editor/src/messages/broadcast/event/event_message_handler.rs#L4` │ │ │ └── listeners: &'a mut HashMap> │ │ ├── SubscribeEvent │ │ │ ├── on: EventMessage │ │ │ └── send: Box │ │ └── UnsubscribeEvent │ │ ├── on: EventMessage │ │ └── send: Box │ └── BroadcastMessageHandler `editor/src/messages/broadcast/broadcast_message_handler.rs#L4` │ ├── event: EventMessageHandler │ └── listeners: HashMap> ├── Clipboard │ ├── ClipboardMessage `editor/src/messages/clipboard/clipboard_message.rs#L6` │ │ ├── Cut │ │ ├── Copy │ │ ├── Paste │ │ ├── ReadClipboard │ │ │ └── content: ClipboardContentRaw │ │ ├── ReadSelection │ │ │ ├── content: Option │ │ │ └── cut: bool │ │ └── Write │ │ └── content: ClipboardContent │ └── ClipboardMessageHandler `editor/src/messages/clipboard/clipboard_message_handler.rs#L11` ├── Debug │ ├── DebugMessage `editor/src/messages/debug/debug_message.rs#L5` │ │ ├── ToggleTraceLogs │ │ ├── MessageOff │ │ ├── MessageNames │ │ └── MessageContents │ └── DebugMessageHandler `editor/src/messages/debug/debug_message_handler.rs#L5` │ └── message_logging_verbosity: MessageLoggingVerbosity ├── Defer │ ├── DeferMessage `editor/src/messages/defer/defer_message.rs#L5` │ │ ├── SetGraphSubmissionIndex │ │ │ └── execution_id: u64 │ │ ├── TriggerGraphRun │ │ │ ├── execution_id: u64 │ │ │ └── document_id: DocumentId │ │ ├── AfterGraphRun │ │ │ └── messages: Vec │ │ ├── TriggerNavigationReady │ │ └── AfterNavigationReady │ │ └── messages: Vec │ ├── DeferMessageHandler `editor/src/messages/defer/defer_message_handler.rs#L9` │ │ ├── after_graph_run: HashMap> │ │ ├── after_viewport_resize: Vec │ │ └── current_graph_submission_id: u64 │ └── DeferMessageContext `editor/src/messages/defer/defer_message_handler.rs#L4` │ └── portfolio: &'a PortfolioMessageHandler ├── Dialog │ ├── DialogMessage `editor/src/messages/dialog/dialog_message.rs#L5` │ │ ├── ExportDialog │ │ │ ├── ExportDialogMessage `editor/src/messages/dialog/export_dialog/export_dialog_message.rs#L6` │ │ │ │ ├── FileType │ │ │ │ │ └── file_type: FileType │ │ │ │ ├── ScaleFactor │ │ │ │ │ └── factor: f64 │ │ │ │ ├── TransparentBackground │ │ │ │ │ └── transparent: bool │ │ │ │ ├── ExportBounds │ │ │ │ │ └── bounds: ExportBounds │ │ │ │ └── Submit │ │ │ ├── ExportDialogMessageHandler `editor/src/messages/dialog/export_dialog/export_dialog_message_handler.rs#L13` │ │ │ │ ├── file_type: FileType │ │ │ │ ├── scale_factor: f64 │ │ │ │ ├── bounds: ExportBounds │ │ │ │ ├── transparent_background: bool │ │ │ │ ├── artboards: HashMap │ │ │ │ └── has_selection: bool │ │ │ └── ExportDialogMessageContext `editor/src/messages/dialog/export_dialog/export_dialog_message_handler.rs#L7` │ │ │ └── portfolio: &'a PortfolioMessageHandler │ │ ├── NewDocumentDialog │ │ │ ├── NewDocumentDialogMessage `editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs#L5` │ │ │ │ ├── Name │ │ │ │ │ └── name: String │ │ │ │ ├── Infinite │ │ │ │ │ └── infinite: bool │ │ │ │ ├── DimensionsX │ │ │ │ │ └── width: f64 │ │ │ │ ├── DimensionsY │ │ │ │ │ └── height: f64 │ │ │ │ └── Submit │ │ │ └── NewDocumentDialogMessageHandler `editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs#L8` │ │ │ ├── name: String │ │ │ ├── infinite: bool │ │ │ └── dimensions: UVec2 │ │ ├── PreferencesDialog │ │ │ ├── PreferencesDialogMessage `editor/src/messages/dialog/preferences_dialog/preferences_dialog_message.rs#L5` │ │ │ │ ├── MayRequireRestart │ │ │ │ ├── Confirm │ │ │ │ └── Update │ │ │ ├── PreferencesDialogMessageHandler `editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs#L15` │ │ │ │ └── unmodified_preferences: Option │ │ │ └── PreferencesDialogMessageContext `editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs#L9` │ │ │ └── preferences: &'a PreferencesMessageHandler │ │ ├── Dismiss │ │ ├── Close │ │ ├── CloseAndThen │ │ │ └── followups: Vec │ │ ├── CloseAllDocumentsWithConfirmation │ │ ├── DisplayDialogError │ │ │ ├── title: String │ │ │ └── description: String │ │ ├── RequestAboutGraphiteDialog │ │ ├── RequestAboutGraphiteDialogWithLocalizedCommitDate │ │ │ ├── localized_commit_date: String │ │ │ └── localized_commit_year: String │ │ ├── RequestDemoArtworkDialog │ │ ├── RequestExportDialog │ │ ├── RequestLicensesDialogWithLocalizedCommitDate │ │ │ └── localized_commit_year: String │ │ ├── RequestLicensesThirdPartyDialogWithLicenseText │ │ │ └── license_text: String │ │ ├── RequestNewDocumentDialog │ │ ├── RequestPreferencesDialog │ │ └── RequestConfirmRestartDialog │ │ └── preferences_requiring_restart: Vec │ ├── DialogMessageHandler `editor/src/messages/dialog/dialog_message_handler.rs#L16` │ │ ├── on_dismiss: Option │ │ ├── export_dialog: ExportDialogMessageHandler │ │ ├── new_document_dialog: NewDocumentDialogMessageHandler │ │ └── preferences_dialog: PreferencesDialogMessageHandler │ └── DialogMessageContext `editor/src/messages/dialog/dialog_message_handler.rs#L9` │ ├── portfolio: &'a PortfolioMessageHandler │ └── preferences: &'a PreferencesMessageHandler ├── Frontend │ ├── FrontendMessage `editor/src/messages/frontend/frontend_message.rs#L27` │ │ ├── DisplayDialog │ │ │ ├── title: String │ │ │ └── icon: IconName │ │ ├── DialogClose │ │ ├── DisplayDialogPanic │ │ │ └── panic_info: String │ │ ├── DisplayEditableTextbox │ │ │ ├── text: String │ │ │ ├── line_height_ratio: f64 │ │ │ ├── font_size: f64 │ │ │ ├── color: String │ │ │ ├── font_data: serde_bytes::ByteBuf │ │ │ ├── transform: [f64; 6] │ │ │ ├── max_width: Option │ │ │ ├── max_height: Option │ │ │ └── align: TextAlign │ │ ├── DisplayEditableTextboxUpdateFontData │ │ │ └── font_data: serde_bytes::ByteBuf │ │ ├── DisplayEditableTextboxTransform │ │ │ └── transform: [f64; 6] │ │ ├── DisplayRemoveEditableTextbox │ │ ├── SendUIMetadata │ │ │ ├── node_descriptions: Vec<(String, String)> │ │ │ └── node_types: Vec │ │ ├── SendShortcutFullscreen │ │ │ ├── shortcut: Option │ │ │ └── shortcut_mac: Option │ │ ├── SendShortcutAltClick │ │ │ └── shortcut: Option │ │ ├── SendShortcutShiftClick │ │ │ └── shortcut: Option │ │ ├── TriggerAboutGraphiteLocalizedCommitDate │ │ │ └── commit_date: String │ │ ├── TriggerDisplayThirdPartyLicensesDialog │ │ ├── TriggerSaveDocument │ │ │ ├── document_id: DocumentId │ │ │ ├── name: String │ │ │ ├── path: Option │ │ │ └── content: serde_bytes::ByteBuf │ │ ├── TriggerSaveFile │ │ │ ├── name: String │ │ │ └── content: serde_bytes::ByteBuf │ │ ├── TriggerExportImage │ │ │ ├── svg: String │ │ │ ├── name: String │ │ │ ├── mime: String │ │ │ └── size: (f64, f64) │ │ ├── TriggerFetchAndOpenDocument │ │ │ ├── name: String │ │ │ └── filename: String │ │ ├── TriggerFontCatalogLoad │ │ ├── TriggerFontDataLoad │ │ │ ├── font: Font │ │ │ └── url: String │ │ ├── TriggerPersistenceRemoveDocument │ │ │ └── document_id: DocumentId │ │ ├── TriggerPersistenceWriteDocument │ │ │ ├── document_id: DocumentId │ │ │ ├── document: String │ │ │ └── details: DocumentDetails │ │ ├── TriggerLoadFirstAutoSaveDocument │ │ ├── TriggerLoadRestAutoSaveDocuments │ │ ├── TriggerOpenLaunchDocuments │ │ ├── TriggerLoadPreferences │ │ ├── TriggerOpen │ │ ├── TriggerImport │ │ ├── TriggerSavePreferences │ │ │ └── preferences: PreferencesMessageHandler │ │ ├── TriggerSaveActiveDocument │ │ │ └── document_id: DocumentId │ │ ├── TriggerTextCommit │ │ ├── TriggerVisitLink │ │ │ └── url: String │ │ ├── TriggerClipboardRead │ │ ├── TriggerClipboardWrite │ │ │ └── content: String │ │ ├── TriggerSelectionRead │ │ │ └── cut: bool │ │ ├── TriggerSelectionWrite │ │ │ └── content: String │ │ ├── UpdateActiveDocument │ │ │ └── document_id: DocumentId │ │ ├── UpdateGradientStopColorPickerPosition │ │ │ ├── color: Color │ │ │ └── position: (f64, f64) │ │ ├── UpdateImportsExports │ │ │ ├── imports: Vec> │ │ │ ├── exports: Vec> │ │ │ ├── import_position: (i32, i32) │ │ │ ├── export_position: (i32, i32) │ │ │ └── add_import_export: bool │ │ ├── UpdateInSelectedNetwork │ │ │ └── in_selected_network: bool │ │ ├── UpdateBox │ │ │ └── box_selection: Option │ │ ├── UpdateContextMenuInformation │ │ │ └── context_menu_information: Option │ │ ├── UpdateClickTargets │ │ │ └── click_targets: Option │ │ ├── UpdateGraphViewOverlay │ │ │ └── open: bool │ │ ├── UpdateDataPanelState │ │ │ └── open: bool │ │ ├── UpdatePropertiesPanelState │ │ │ └── open: bool │ │ ├── UpdateLayersPanelState │ │ │ └── open: bool │ │ ├── UpdateLayout │ │ │ ├── layout_target: LayoutTarget │ │ │ └── diff: Vec │ │ ├── UpdateImportReorderIndex │ │ │ └── index: Option │ │ ├── UpdateExportReorderIndex │ │ │ └── index: Option │ │ ├── UpdateLayerWidths │ │ │ ├── layer_widths: HashMap │ │ │ ├── chain_widths: HashMap │ │ │ └── has_left_input_wire: HashMap │ │ ├── UpdateDocumentArtwork │ │ │ └── svg: String │ │ ├── UpdateImageData │ │ │ └── image_data: Vec<(u64, Image)> │ │ ├── UpdateDocumentLayerDetails │ │ │ └── data: LayerPanelEntry │ │ ├── UpdateDocumentLayerStructure │ │ │ └── layer_structure: Vec │ │ ├── UpdateDocumentRulers │ │ │ ├── origin: (f64, f64) │ │ │ ├── spacing: f64 │ │ │ ├── interval: f64 │ │ │ └── visible: bool │ │ ├── UpdateDocumentScrollbars │ │ │ ├── position: (f64, f64) │ │ │ ├── size: (f64, f64) │ │ │ └── multiplier: (f64, f64) │ │ ├── UpdateEyedropperSamplingState │ │ │ ├── image: Option │ │ │ ├── mouse_position: Option<(f64, f64)> │ │ │ ├── primary_color: String │ │ │ ├── secondary_color: String │ │ │ └── set_color_choice: Option │ │ ├── UpdateGraphFadeArtwork │ │ │ └── percentage: f64 │ │ ├── UpdateMouseCursor │ │ │ └── cursor: MouseCursorIcon │ │ ├── UpdateNodeGraphNodes │ │ │ └── nodes: Vec │ │ ├── UpdateNodeGraphErrorDiagnostic │ │ │ └── error: Option │ │ ├── UpdateVisibleNodes │ │ │ └── nodes: Vec │ │ ├── UpdateNodeGraphWires │ │ │ └── wires: Vec │ │ ├── ClearAllNodeGraphWires │ │ ├── UpdateNodeGraphSelection │ │ │ └── selected: Vec │ │ ├── UpdateNodeGraphTransform │ │ │ ├── translation: (f64, f64) │ │ │ └── scale: f64 │ │ ├── UpdateNodeThumbnail │ │ │ ├── id: NodeId │ │ │ └── value: String │ │ ├── UpdateOpenDocumentsList │ │ │ └── open_documents: Vec │ │ ├── UpdateWirePathInProgress │ │ │ └── wire_path: Option │ │ ├── UpdatePlatform │ │ │ └── platform: AppWindowPlatform │ │ ├── UpdateMaximized │ │ │ └── maximized: bool │ │ ├── UpdateFullscreen │ │ │ └── fullscreen: bool │ │ ├── UpdateViewportHolePunch │ │ │ └── active: bool │ │ ├── UpdateViewportPhysicalBounds │ │ │ ├── x: f64 │ │ │ ├── y: f64 │ │ │ ├── width: f64 │ │ │ └── height: f64 │ │ ├── UpdateUIScale │ │ │ └── scale: f64 │ │ ├── RenderOverlays │ │ │ └── context: OverlayContext │ │ ├── WindowPointerLock │ │ ├── WindowPointerLockMove │ │ │ └── position: (f64, f64) │ │ ├── WindowClose │ │ ├── WindowMinimize │ │ ├── WindowMaximize │ │ ├── WindowFullscreen │ │ ├── WindowDrag │ │ ├── WindowHide │ │ ├── WindowHideOthers │ │ ├── WindowShowAll │ │ └── WindowRestart ├── InputPreprocessor │ ├── InputPreprocessorMessage `editor/src/messages/input_preprocessor/input_preprocessor_message.rs#L7` │ │ ├── DoubleClick │ │ │ ├── editor_mouse_state: EditorMouseState │ │ │ └── modifier_keys: ModifierKeys │ │ ├── KeyDown │ │ │ ├── key: Key │ │ │ ├── key_repeat: bool │ │ │ └── modifier_keys: ModifierKeys │ │ ├── KeyUp │ │ │ ├── key: Key │ │ │ ├── key_repeat: bool │ │ │ └── modifier_keys: ModifierKeys │ │ ├── PointerDown │ │ │ ├── editor_mouse_state: EditorMouseState │ │ │ └── modifier_keys: ModifierKeys │ │ ├── PointerMove │ │ │ ├── editor_mouse_state: EditorMouseState │ │ │ └── modifier_keys: ModifierKeys │ │ ├── PointerUp │ │ │ ├── editor_mouse_state: EditorMouseState │ │ │ └── modifier_keys: ModifierKeys │ │ ├── PointerShake │ │ │ ├── editor_mouse_state: EditorMouseState │ │ │ └── modifier_keys: ModifierKeys │ │ ├── CurrentTime │ │ │ └── timestamp: u64 │ │ └── WheelScroll │ │ ├── editor_mouse_state: EditorMouseState │ │ └── modifier_keys: ModifierKeys │ ├── InputPreprocessorMessageHandler `editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs#L14` │ │ ├── frame_time: FrameTimeInfo │ │ ├── time: u64 │ │ ├── keyboard: KeyStates │ │ └── mouse: MouseState │ └── InputPreprocessorMessageContext `editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs#L9` │ └── viewport: &'a ViewportMessageHandler ├── KeyMapping │ ├── KeyMappingMessage `editor/src/messages/input_mapper/key_mapping/key_mapping_message.rs#L5` │ │ ├── Lookup │ │ │ ├── InputMapperMessage `editor/src/messages/input_mapper/input_mapper_message.rs#L7` │ │ │ │ ├── KeyDown │ │ │ │ │ └── Key │ │ │ │ ├── KeyUp │ │ │ │ │ └── Key │ │ │ │ ├── KeyDownNoRepeat │ │ │ │ │ └── Key │ │ │ │ ├── KeyUpNoRepeat │ │ │ │ │ └── Key │ │ │ │ ├── DoubleClick │ │ │ │ │ └── MouseButton │ │ │ │ ├── PointerMove │ │ │ │ ├── PointerShake │ │ │ │ └── WheelScroll │ │ │ ├── InputMapperMessageHandler `editor/src/messages/input_mapper/input_mapper_message_handler.rs#L15` │ │ │ │ └── mapping: Mapping │ │ │ └── InputMapperMessageContext `editor/src/messages/input_mapper/input_mapper_message_handler.rs#L9` │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ └── actions: ActionList │ │ └── ModifyMapping │ │ └── mapping: MappingVariant │ ├── KeyMappingMessageHandler `editor/src/messages/input_mapper/key_mapping/key_mapping_message_handler.rs#L12` │ │ └── mapping_handler: InputMapperMessageHandler │ └── KeyMappingMessageContext `editor/src/messages/input_mapper/key_mapping/key_mapping_message_handler.rs#L6` │ ├── input: &'a InputPreprocessorMessageHandler │ └── actions: ActionList ├── Layout │ ├── LayoutMessage `editor/src/messages/layout/layout_message.rs#L6` │ │ ├── ResendActiveWidget │ │ │ ├── layout_target: LayoutTarget │ │ │ └── widget_id: WidgetId │ │ ├── SendLayout │ │ │ ├── layout: Layout │ │ │ └── layout_target: LayoutTarget │ │ ├── DestroyLayout │ │ │ └── layout_target: LayoutTarget │ │ ├── WidgetValueCommit │ │ │ ├── layout_target: LayoutTarget │ │ │ ├── widget_id: WidgetId │ │ │ └── value: serde_json::Value │ │ └── WidgetValueUpdate │ │ ├── layout_target: LayoutTarget │ │ ├── widget_id: WidgetId │ │ └── value: serde_json::Value │ ├── LayoutMessageHandler `editor/src/messages/layout/layout_message_handler.rs#L14` │ │ └── layouts: [Layout; LayoutTarget::_LayoutTargetLength as usize] │ └── LayoutMessageContext `editor/src/messages/layout/layout_message_handler.rs#L9` │ └── action_input_mapping: &'a dyn Fn(&MessageDiscriminant) -> Option ├── MenuBar │ ├── MenuBarMessage `editor/src/messages/menu_bar/menu_bar_message.rs#L5` │ │ └── SendLayout │ └── MenuBarMessageHandler `editor/src/messages/menu_bar/menu_bar_message_handler.rs#L9` │ ├── has_active_document: bool │ ├── canvas_tilted: bool │ ├── canvas_flipped: bool │ ├── rulers_visible: bool │ ├── node_graph_open: bool │ ├── has_selected_nodes: bool │ ├── has_selected_layers: bool │ ├── has_selection_history: (bool, bool) │ ├── message_logging_verbosity: MessageLoggingVerbosity │ ├── reset_node_definitions_on_open: bool │ ├── make_path_editable_is_allowed: bool │ ├── data_panel_open: bool │ ├── layers_panel_open: bool │ ├── properties_panel_open: bool │ └── focus_document: bool ├── Portfolio │ ├── PortfolioMessage `editor/src/messages/portfolio/portfolio_message.rs#L14` │ │ ├── Document │ │ │ ├── DocumentMessage `editor/src/messages/portfolio/document/document_message.rs#L25` │ │ │ │ ├── Noop │ │ │ │ ├── GraphOperation │ │ │ │ │ ├── GraphOperationMessage `editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs#L20` │ │ │ │ │ │ ├── FillSet │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── fill: Fill │ │ │ │ │ │ ├── BlendingFillSet │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── fill: f64 │ │ │ │ │ │ ├── OpacitySet │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── opacity: f64 │ │ │ │ │ │ ├── BlendModeSet │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── blend_mode: BlendMode │ │ │ │ │ │ ├── ClipModeToggle │ │ │ │ │ │ │ └── layer: LayerNodeIdentifier │ │ │ │ │ │ ├── StrokeSet │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── stroke: Stroke │ │ │ │ │ │ ├── TransformChange │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ ├── transform: DAffine2 │ │ │ │ │ │ │ ├── transform_in: TransformIn │ │ │ │ │ │ │ └── skip_rerender: bool │ │ │ │ │ │ ├── TransformSet │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ ├── transform: DAffine2 │ │ │ │ │ │ │ ├── transform_in: TransformIn │ │ │ │ │ │ │ └── skip_rerender: bool │ │ │ │ │ │ ├── Vector │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── modification_type: VectorModificationType │ │ │ │ │ │ ├── Brush │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ └── strokes: Vec │ │ │ │ │ │ ├── SetUpstreamToChain │ │ │ │ │ │ │ └── layer: LayerNodeIdentifier │ │ │ │ │ │ ├── NewArtboard │ │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ │ └── artboard: Artboard │ │ │ │ │ │ ├── NewBitmapLayer │ │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ │ ├── image_frame: Table> │ │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ │ ├── NewBooleanOperationLayer │ │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ │ ├── operation: graphene_std::vector::misc::BooleanOperation │ │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ │ ├── NewCustomLayer │ │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ │ ├── nodes: Vec<(NodeId, NodeTemplate)> │ │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ │ ├── NewVectorLayer │ │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ │ ├── subpaths: Vec> │ │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ │ ├── NewTextLayer │ │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ │ ├── text: String │ │ │ │ │ │ │ ├── font: Font │ │ │ │ │ │ │ ├── typesetting: TypesettingConfig │ │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ │ ├── ResizeArtboard │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ ├── location: IVec2 │ │ │ │ │ │ │ └── dimensions: IVec2 │ │ │ │ │ │ ├── RemoveArtboards │ │ │ │ │ │ └── NewSvg │ │ │ │ │ │ ├── id: NodeId │ │ │ │ │ │ ├── svg: String │ │ │ │ │ │ ├── transform: DAffine2 │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ ├── GraphOperationMessageHandler `editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs#L27` │ │ │ │ │ └── GraphOperationMessageContext `editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs#L20` │ │ │ │ │ ├── network_interface: &'a mut NodeNetworkInterface │ │ │ │ │ ├── collapsed: &'a mut CollapsedLayers │ │ │ │ │ └── node_graph: &'a mut NodeGraphMessageHandler │ │ │ │ ├── Navigation │ │ │ │ │ ├── NavigationMessage `editor/src/messages/portfolio/document/navigation/navigation_message.rs#L7` │ │ │ │ │ │ ├── BeginCanvasPan │ │ │ │ │ │ ├── BeginCanvasTilt │ │ │ │ │ │ │ └── was_dispatched_from_menu: bool │ │ │ │ │ │ ├── BeginCanvasZoom │ │ │ │ │ │ ├── CanvasPan │ │ │ │ │ │ │ └── delta: DVec2 │ │ │ │ │ │ ├── CanvasPanAbortPrepare │ │ │ │ │ │ │ └── x_not_y_axis: bool │ │ │ │ │ │ ├── CanvasPanAbort │ │ │ │ │ │ │ └── x_not_y_axis: bool │ │ │ │ │ │ ├── CanvasPanByViewportFraction │ │ │ │ │ │ │ └── delta: DVec2 │ │ │ │ │ │ ├── CanvasPanMouseWheel │ │ │ │ │ │ │ └── use_y_as_x: bool │ │ │ │ │ │ ├── CanvasTiltResetAndZoomTo100Percent │ │ │ │ │ │ ├── CanvasTiltSet │ │ │ │ │ │ │ └── angle_radians: f64 │ │ │ │ │ │ ├── CanvasZoomDecrease │ │ │ │ │ │ │ └── center_on_mouse: bool │ │ │ │ │ │ ├── CanvasZoomIncrease │ │ │ │ │ │ │ └── center_on_mouse: bool │ │ │ │ │ │ ├── CanvasZoomMouseWheel │ │ │ │ │ │ ├── CanvasZoomSet │ │ │ │ │ │ │ └── zoom_factor: f64 │ │ │ │ │ │ ├── CanvasFlip │ │ │ │ │ │ ├── EndCanvasPTZ │ │ │ │ │ │ │ └── abort_transform: bool │ │ │ │ │ │ ├── EndCanvasPTZWithClick │ │ │ │ │ │ │ └── commit_key: Key │ │ │ │ │ │ ├── FitViewportToBounds │ │ │ │ │ │ │ ├── bounds: [DVec2; 2] │ │ │ │ │ │ │ └── prevent_zoom_past_100: bool │ │ │ │ │ │ ├── FitViewportToSelection │ │ │ │ │ │ └── PointerMove │ │ │ │ │ │ └── snap: Key │ │ │ │ │ ├── NavigationMessageHandler `editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs#L29` │ │ │ │ │ │ ├── navigation_operation: NavigationOperation │ │ │ │ │ │ ├── mouse_position: ViewportPosition │ │ │ │ │ │ ├── finish_operation_with_click: bool │ │ │ │ │ │ └── abortable_pan_start: Option │ │ │ │ │ └── NavigationMessageContext `editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs#L18` │ │ │ │ │ ├── network_interface: &'a mut NodeNetworkInterface │ │ │ │ │ ├── breadcrumb_network_path: &'a [NodeId] │ │ │ │ │ ├── ipp: &'a InputPreprocessorMessageHandler │ │ │ │ │ ├── document_ptz: &'a mut PTZ │ │ │ │ │ ├── graph_view_overlay_open: bool │ │ │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ │ │ └── viewport: &'a ViewportMessageHandler │ │ │ │ ├── NodeGraph │ │ │ │ │ ├── NodeGraphMessage `editor/src/messages/portfolio/document/node_graph/node_graph_message.rs#L15` │ │ │ │ │ │ ├── AddNodes │ │ │ │ │ │ │ ├── nodes: Vec<(NodeId, NodeTemplate)> │ │ │ │ │ │ │ └── new_ids: HashMap │ │ │ │ │ │ ├── AddPathNode │ │ │ │ │ │ ├── AddImport │ │ │ │ │ │ ├── AddPrimaryImport │ │ │ │ │ │ ├── AddSecondaryImport │ │ │ │ │ │ ├── AddExport │ │ │ │ │ │ ├── AddPrimaryExport │ │ │ │ │ │ ├── AddSecondaryExport │ │ │ │ │ │ ├── Init │ │ │ │ │ │ ├── SelectedNodesUpdated │ │ │ │ │ │ ├── Copy │ │ │ │ │ │ ├── CreateNodeInLayerNoTransaction │ │ │ │ │ │ │ ├── node_type: DefinitionIdentifier │ │ │ │ │ │ │ └── layer: LayerNodeIdentifier │ │ │ │ │ │ ├── CreateNodeInLayerWithTransaction │ │ │ │ │ │ │ ├── node_type: DefinitionIdentifier │ │ │ │ │ │ │ └── layer: LayerNodeIdentifier │ │ │ │ │ │ ├── CreateNodeFromContextMenu │ │ │ │ │ │ │ ├── node_id: Option │ │ │ │ │ │ │ ├── node_type: DefinitionIdentifier │ │ │ │ │ │ │ ├── xy: Option<(i32, i32)> │ │ │ │ │ │ │ └── add_transaction: bool │ │ │ │ │ │ ├── CreateWire │ │ │ │ │ │ │ ├── output_connector: OutputConnector │ │ │ │ │ │ │ └── input_connector: InputConnector │ │ │ │ │ │ ├── ConnectUpstreamOutputToInput │ │ │ │ │ │ │ ├── downstream_input: InputConnector │ │ │ │ │ │ │ └── input_connector: InputConnector │ │ │ │ │ │ ├── Cut │ │ │ │ │ │ ├── DeleteNodes │ │ │ │ │ │ │ ├── node_ids: Vec │ │ │ │ │ │ │ └── delete_children: bool │ │ │ │ │ │ ├── DeleteSelectedNodes │ │ │ │ │ │ │ └── delete_children: bool │ │ │ │ │ │ ├── DisconnectInput │ │ │ │ │ │ │ └── input_connector: InputConnector │ │ │ │ │ │ ├── DisconnectRootNode │ │ │ │ │ │ ├── EnterNestedNetwork │ │ │ │ │ │ ├── DuplicateSelectedNodes │ │ │ │ │ │ ├── ExposeInput │ │ │ │ │ │ │ ├── input_connector: InputConnector │ │ │ │ │ │ │ ├── set_to_exposed: bool │ │ │ │ │ │ │ └── start_transaction: bool │ │ │ │ │ │ ├── ExposeEncapsulatingPrimaryInput │ │ │ │ │ │ │ └── exposed: bool │ │ │ │ │ │ ├── ExposePrimaryExport │ │ │ │ │ │ │ └── exposed: bool │ │ │ │ │ │ ├── InsertNode │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── node_template: Box │ │ │ │ │ │ ├── InsertNodeBetween │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ ├── input_connector: InputConnector │ │ │ │ │ │ │ └── insert_node_input_index: usize │ │ │ │ │ │ ├── MergeSelectedNodes │ │ │ │ │ │ ├── MoveLayerToStack │ │ │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ │ │ └── insert_index: usize │ │ │ │ │ │ ├── MoveNodeToChainStart │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── parent: LayerNodeIdentifier │ │ │ │ │ │ ├── SetChainPosition │ │ │ │ │ │ │ └── node_id: NodeId │ │ │ │ │ │ ├── PasteNodes │ │ │ │ │ │ │ └── serialized_nodes: String │ │ │ │ │ │ ├── PointerDown │ │ │ │ │ │ │ ├── shift_click: bool │ │ │ │ │ │ │ ├── control_click: bool │ │ │ │ │ │ │ ├── alt_click: bool │ │ │ │ │ │ │ └── right_click: bool │ │ │ │ │ │ ├── PointerMove │ │ │ │ │ │ │ └── shift: Key │ │ │ │ │ │ ├── PointerUp │ │ │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ │ │ └── shift: Key │ │ │ │ │ │ ├── ShakeNode │ │ │ │ │ │ ├── UpdateNodeGraphWidth │ │ │ │ │ │ ├── RemoveImport │ │ │ │ │ │ │ └── import_index: usize │ │ │ │ │ │ ├── RemoveExport │ │ │ │ │ │ │ └── export_index: usize │ │ │ │ │ │ ├── ReorderImport │ │ │ │ │ │ │ ├── start_index: usize │ │ │ │ │ │ │ └── end_index: usize │ │ │ │ │ │ ├── ReorderExport │ │ │ │ │ │ │ ├── start_index: usize │ │ │ │ │ │ │ └── end_index: usize │ │ │ │ │ │ ├── RunDocumentGraph │ │ │ │ │ │ ├── ForceRunDocumentGraph │ │ │ │ │ │ ├── SelectedNodesAdd │ │ │ │ │ │ │ └── nodes: Vec │ │ │ │ │ │ ├── SelectedNodesRemove │ │ │ │ │ │ │ └── nodes: Vec │ │ │ │ │ │ ├── SelectedNodesSet │ │ │ │ │ │ │ └── nodes: Vec │ │ │ │ │ │ ├── SendClickTargets │ │ │ │ │ │ ├── EndSendClickTargets │ │ │ │ │ │ ├── UnloadWires │ │ │ │ │ │ ├── SendWires │ │ │ │ │ │ ├── UpdateVisibleNodes │ │ │ │ │ │ ├── SendGraph │ │ │ │ │ │ ├── SetInputValue │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ ├── input_index: usize │ │ │ │ │ │ │ └── value: TaggedValue │ │ │ │ │ │ ├── SetInput │ │ │ │ │ │ │ ├── input_connector: InputConnector │ │ │ │ │ │ │ └── input: NodeInput │ │ │ │ │ │ ├── SetDisplayName │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ ├── alias: String │ │ │ │ │ │ │ └── skip_adding_history_step: bool │ │ │ │ │ │ ├── SetDisplayNameImpl │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── alias: String │ │ │ │ │ │ ├── SetToNodeOrLayer │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── is_layer: bool │ │ │ │ │ │ ├── ShiftNodePosition │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ ├── x: i32 │ │ │ │ │ │ │ └── y: i32 │ │ │ │ │ │ ├── ShiftSelectedNodes │ │ │ │ │ │ │ ├── direction: Direction │ │ │ │ │ │ │ └── rubber_band: bool │ │ │ │ │ │ ├── ShiftSelectedNodesByAmount │ │ │ │ │ │ │ ├── graph_delta: IVec2 │ │ │ │ │ │ │ └── rubber_band: bool │ │ │ │ │ │ ├── TogglePreview │ │ │ │ │ │ │ └── node_id: NodeId │ │ │ │ │ │ ├── TogglePreviewImpl │ │ │ │ │ │ │ └── node_id: NodeId │ │ │ │ │ │ ├── SetImportExportName │ │ │ │ │ │ │ ├── name: String │ │ │ │ │ │ │ └── index: ImportOrExport │ │ │ │ │ │ ├── SetImportExportNameImpl │ │ │ │ │ │ │ ├── name: String │ │ │ │ │ │ │ └── index: ImportOrExport │ │ │ │ │ │ ├── ToggleSelectedAsLayersOrNodes │ │ │ │ │ │ ├── ToggleSelectedLocked │ │ │ │ │ │ ├── ToggleLocked │ │ │ │ │ │ │ └── node_id: NodeId │ │ │ │ │ │ ├── SetLocked │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── locked: bool │ │ │ │ │ │ ├── ToggleSelectedIsPinned │ │ │ │ │ │ ├── ToggleSelectedVisibility │ │ │ │ │ │ ├── ToggleVisibility │ │ │ │ │ │ │ └── node_id: NodeId │ │ │ │ │ │ ├── SetPinned │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── pinned: bool │ │ │ │ │ │ ├── SetVisibility │ │ │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ │ │ └── visible: bool │ │ │ │ │ │ ├── SetLockedOrVisibilitySideEffects │ │ │ │ │ │ │ └── node_ids: Vec │ │ │ │ │ │ ├── UpdateEdges │ │ │ │ │ │ ├── UpdateBoxSelection │ │ │ │ │ │ ├── UpdateImportsExports │ │ │ │ │ │ ├── UpdateLayerPanel │ │ │ │ │ │ ├── UpdateNewNodeGraph │ │ │ │ │ │ ├── UpdateTypes │ │ │ │ │ │ │ ├── resolved_types: ResolvedDocumentNodeTypesDelta │ │ │ │ │ │ │ └── node_graph_errors: GraphErrors │ │ │ │ │ │ ├── UpdateActionButtons │ │ │ │ │ │ ├── UpdateGraphBarRight │ │ │ │ │ │ ├── UpdateInSelectedNetwork │ │ │ │ │ │ ├── UpdateHints │ │ │ │ │ │ └── SendSelectedNodes │ │ │ │ │ ├── NodeGraphMessageHandler `editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs#L54` │ │ │ │ │ │ ├── network: Vec │ │ │ │ │ │ ├── has_selection: bool │ │ │ │ │ │ ├── widgets: [LayoutGroup; 2] │ │ │ │ │ │ ├── begin_dragging: bool │ │ │ │ │ │ ├── node_has_moved_in_drag: bool │ │ │ │ │ │ ├── drag_start: Option<(DragStart, bool)> │ │ │ │ │ │ ├── drag_start_chain_nodes: Vec │ │ │ │ │ │ ├── box_selection_start: Option<(DVec2, bool)> │ │ │ │ │ │ ├── selection_before_pointer_down: Vec │ │ │ │ │ │ ├── shift_without_push: bool │ │ │ │ │ │ ├── disconnecting: Option │ │ │ │ │ │ ├── initial_disconnecting: bool │ │ │ │ │ │ ├── select_if_not_dragged: Option │ │ │ │ │ │ ├── wire_in_progress_from_connector: Option │ │ │ │ │ │ ├── wire_in_progress_to_connector: Option │ │ │ │ │ │ ├── wire_in_progress_type: FrontendGraphDataType │ │ │ │ │ │ ├── context_menu: Option │ │ │ │ │ │ ├── deselect_on_pointer_up: Option │ │ │ │ │ │ ├── auto_panning: AutoPanning │ │ │ │ │ │ ├── preview_on_mouse_up: Option │ │ │ │ │ │ ├── reordering_import: Option │ │ │ │ │ │ ├── reordering_export: Option │ │ │ │ │ │ ├── end_index: Option │ │ │ │ │ │ ├── frontend_nodes: Vec │ │ │ │ │ │ └── frontend_wires: HashSet<(NodeId, usize)> │ │ │ │ │ └── NodeGraphMessageContext `editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs#L38` │ │ │ │ │ ├── network_interface: &'a mut NodeNetworkInterface │ │ │ │ │ ├── selection_network_path: &'a [NodeId] │ │ │ │ │ ├── breadcrumb_network_path: &'a [NodeId] │ │ │ │ │ ├── document_id: DocumentId │ │ │ │ │ ├── collapsed: &'a mut CollapsedLayers │ │ │ │ │ ├── ipp: &'a InputPreprocessorMessageHandler │ │ │ │ │ ├── graph_view_overlay_open: bool │ │ │ │ │ ├── graph_fade_artwork_percentage: f64 │ │ │ │ │ ├── navigation_handler: &'a NavigationMessageHandler │ │ │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ │ │ ├── layers_panel_open: bool │ │ │ │ │ └── viewport: &'a ViewportMessageHandler │ │ │ │ ├── Overlays │ │ │ │ │ ├── OverlaysMessage `editor/src/messages/portfolio/document/overlays/overlays_message.rs#L7` │ │ │ │ │ │ ├── Draw │ │ │ │ │ │ ├── AddProvider │ │ │ │ │ │ │ └── provider: OverlayProvider │ │ │ │ │ │ └── RemoveProvider │ │ │ │ │ │ └── provider: OverlayProvider │ │ │ │ │ ├── OverlaysMessageHandler `editor/src/messages/portfolio/document/overlays/overlays_message_handler.rs#L11` │ │ │ │ │ │ └── overlay_providers: HashSet │ │ │ │ │ └── OverlaysMessageContext `editor/src/messages/portfolio/document/overlays/overlays_message_handler.rs#L5` │ │ │ │ │ ├── visibility_settings: OverlaysVisibilitySettings │ │ │ │ │ └── viewport: &'a ViewportMessageHandler │ │ │ │ ├── PropertiesPanel │ │ │ │ │ ├── PropertiesPanelMessage `editor/src/messages/portfolio/document/properties_panel/properties_panel_message.rs#L5` │ │ │ │ │ │ ├── Clear │ │ │ │ │ │ └── Refresh │ │ │ │ │ ├── PropertiesPanelMessageHandler `editor/src/messages/portfolio/document/properties_panel/properties_panel_message_handler.rs#L21` │ │ │ │ │ └── PropertiesPanelMessageContext `editor/src/messages/portfolio/document/properties_panel/properties_panel_message_handler.rs#L11` │ │ │ │ │ ├── network_interface: &'a mut NodeNetworkInterface │ │ │ │ │ ├── selection_network_path: &'a [NodeId] │ │ │ │ │ ├── document_name: &'a str │ │ │ │ │ ├── executor: &'a mut NodeGraphExecutor │ │ │ │ │ ├── persistent_data: &'a PersistentData │ │ │ │ │ └── properties_panel_open: bool │ │ │ │ ├── DataPanel │ │ │ │ │ ├── DataPanelMessage `editor/src/messages/portfolio/document/data_panel/data_panel_message.rs#L7` │ │ │ │ │ │ ├── UpdateLayout │ │ │ │ │ │ │ └── inspect_result: InspectResult │ │ │ │ │ │ ├── ClearLayout │ │ │ │ │ │ ├── PushToElementPath │ │ │ │ │ │ │ └── index: usize │ │ │ │ │ │ ├── TruncateElementPath │ │ │ │ │ │ │ └── len: usize │ │ │ │ │ │ └── ViewVectorTableTab │ │ │ │ │ │ └── tab: VectorTableTab │ │ │ │ │ ├── DataPanelMessageHandler `editor/src/messages/portfolio/document/data_panel/data_panel_message_handler.rs#L29` │ │ │ │ │ │ ├── introspected_node: Option │ │ │ │ │ │ ├── introspected_data: Option> │ │ │ │ │ │ ├── element_path: Vec │ │ │ │ │ │ └── active_vector_table_tab: VectorTableTab │ │ │ │ │ └── DataPanelMessageContext `editor/src/messages/portfolio/document/data_panel/data_panel_message_handler.rs#L22` │ │ │ │ │ ├── network_interface: &'a mut NodeNetworkInterface │ │ │ │ │ └── data_panel_open: bool │ │ │ │ ├── AlignSelectedLayers │ │ │ │ │ ├── axis: AlignAxis │ │ │ │ │ └── aggregate: AlignAggregate │ │ │ │ ├── RemoveArtboards │ │ │ │ ├── ClearLayersPanel │ │ │ │ ├── CreateEmptyFolder │ │ │ │ ├── DeleteNode │ │ │ │ │ └── node_id: NodeId │ │ │ │ ├── DeleteSelectedLayers │ │ │ │ ├── DeselectAllLayers │ │ │ │ ├── DocumentHistoryBackward │ │ │ │ ├── DocumentHistoryForward │ │ │ │ ├── DocumentStructureChanged │ │ │ │ ├── DrawArtboardOverlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── DuplicateSelectedLayers │ │ │ │ ├── EnterNestedNetwork │ │ │ │ │ └── node_id: NodeId │ │ │ │ ├── Escape │ │ │ │ ├── ExitNestedNetwork │ │ │ │ │ └── steps_back: usize │ │ │ │ ├── FlipSelectedLayers │ │ │ │ │ └── flip_axis: FlipAxis │ │ │ │ ├── RotateSelectedLayers │ │ │ │ │ └── degrees: f64 │ │ │ │ ├── GraphViewOverlay │ │ │ │ │ └── open: bool │ │ │ │ ├── GraphViewOverlayToggle │ │ │ │ ├── GridOptions │ │ │ │ │ └── options: GridSnapping │ │ │ │ ├── GridOverlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── GridVisibility │ │ │ │ │ └── visible: bool │ │ │ │ ├── GroupSelectedLayers │ │ │ │ │ └── group_folder_type: GroupFolderType │ │ │ │ ├── MoveSelectedLayersTo │ │ │ │ │ ├── parent: LayerNodeIdentifier │ │ │ │ │ └── insert_index: usize │ │ │ │ ├── MoveSelectedLayersToGroup │ │ │ │ │ └── parent: LayerNodeIdentifier │ │ │ │ ├── NudgeSelectedLayers │ │ │ │ │ ├── delta_x: f64 │ │ │ │ │ ├── delta_y: f64 │ │ │ │ │ ├── resize: Key │ │ │ │ │ └── resize_opposite_corner: Key │ │ │ │ ├── PasteImage │ │ │ │ │ ├── name: Option │ │ │ │ │ ├── image: Image │ │ │ │ │ ├── mouse: Option<(f64, f64)> │ │ │ │ │ └── parent_and_insert_index: Option<(LayerNodeIdentifier, usize)> │ │ │ │ ├── PasteSvg │ │ │ │ │ ├── name: Option │ │ │ │ │ ├── svg: String │ │ │ │ │ ├── mouse: Option<(f64, f64)> │ │ │ │ │ └── parent_and_insert_index: Option<(LayerNodeIdentifier, usize)> │ │ │ │ ├── Redo │ │ │ │ ├── RenameDocument │ │ │ │ │ └── new_name: String │ │ │ │ ├── RenderRulers │ │ │ │ ├── RenderScrollbars │ │ │ │ ├── SaveDocument │ │ │ │ ├── SaveDocumentAs │ │ │ │ ├── SavedDocument │ │ │ │ │ └── path: Option │ │ │ │ ├── MarkAsSaved │ │ │ │ ├── SelectParentLayer │ │ │ │ ├── SelectAllLayers │ │ │ │ ├── SelectedLayersLower │ │ │ │ ├── SelectedLayersLowerToBack │ │ │ │ ├── SelectedLayersRaise │ │ │ │ ├── SelectedLayersRaiseToFront │ │ │ │ ├── SelectedLayersReverse │ │ │ │ ├── SelectedLayersReorder │ │ │ │ │ └── relative_index_offset: isize │ │ │ │ ├── ClipLayer │ │ │ │ │ └── id: NodeId │ │ │ │ ├── SelectLayer │ │ │ │ │ ├── id: NodeId │ │ │ │ │ ├── ctrl: bool │ │ │ │ │ └── shift: bool │ │ │ │ ├── SetActivePanel │ │ │ │ │ └── active_panel: PanelType │ │ │ │ ├── SetBlendModeForSelectedLayers │ │ │ │ │ └── blend_mode: BlendMode │ │ │ │ ├── SetGraphFadeArtwork │ │ │ │ │ └── percentage: f64 │ │ │ │ ├── SetNodePinned │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ └── pinned: bool │ │ │ │ ├── SetOpacityForSelectedLayers │ │ │ │ │ └── opacity: f64 │ │ │ │ ├── SetFillForSelectedLayers │ │ │ │ │ └── fill: f64 │ │ │ │ ├── SetOverlaysVisibility │ │ │ │ │ ├── visible: bool │ │ │ │ │ └── overlays_type: Option │ │ │ │ ├── SetRangeSelectionLayer │ │ │ │ │ └── new_layer: Option │ │ │ │ ├── SetSnapping │ │ │ │ │ ├── closure: Optionfn(&'a mut SnappingState) -> &'a mut bool> │ │ │ │ │ └── snapping_state: bool │ │ │ │ ├── SetToNodeOrLayer │ │ │ │ │ ├── node_id: NodeId │ │ │ │ │ └── is_layer: bool │ │ │ │ ├── SetRenderMode │ │ │ │ │ └── render_mode: RenderMode │ │ │ │ ├── AddTransaction │ │ │ │ ├── StartTransaction │ │ │ │ ├── EndTransaction │ │ │ │ ├── CommitTransaction │ │ │ │ ├── CancelTransaction │ │ │ │ ├── AbortTransaction │ │ │ │ ├── RepeatedAbortTransaction │ │ │ │ │ └── undo_count: usize │ │ │ │ ├── ToggleLayerExpansion │ │ │ │ │ ├── id: NodeId │ │ │ │ │ └── recursive: bool │ │ │ │ ├── ToggleSelectedVisibility │ │ │ │ ├── ToggleSelectedLocked │ │ │ │ ├── ToggleGridVisibility │ │ │ │ ├── ToggleOverlaysVisibility │ │ │ │ ├── ToggleSnapping │ │ │ │ ├── UpdateUpstreamTransforms │ │ │ │ │ ├── upstream_footprints: HashMap │ │ │ │ │ ├── local_transforms: HashMap │ │ │ │ │ └── first_element_source_id: HashMap> │ │ │ │ ├── UpdateClickTargets │ │ │ │ │ └── click_targets: HashMap>> │ │ │ │ ├── UpdateClipTargets │ │ │ │ │ └── clip_targets: HashSet │ │ │ │ ├── UpdateVectorData │ │ │ │ │ └── vector_data: HashMap> │ │ │ │ ├── Undo │ │ │ │ ├── UngroupSelectedLayers │ │ │ │ ├── UngroupLayer │ │ │ │ │ └── layer: LayerNodeIdentifier │ │ │ │ ├── PTZUpdate │ │ │ │ ├── SelectionStepBack │ │ │ │ ├── SelectionStepForward │ │ │ │ ├── WrapContentInArtboard │ │ │ │ │ └── place_artboard_at_origin: bool │ │ │ │ ├── ZoomCanvasTo100Percent │ │ │ │ ├── ZoomCanvasTo200Percent │ │ │ │ └── ZoomCanvasToFitAll │ │ │ ├── DocumentMessageHandler `editor/src/messages/portfolio/document/document_message_handler.rs#L63` │ │ │ │ ├── navigation_handler: NavigationMessageHandler │ │ │ │ ├── node_graph_handler: NodeGraphMessageHandler │ │ │ │ ├── overlays_message_handler: OverlaysMessageHandler │ │ │ │ ├── properties_panel_message_handler: PropertiesPanelMessageHandler │ │ │ │ ├── data_panel_message_handler: DataPanelMessageHandler │ │ │ │ ├── network_interface: NodeNetworkInterface │ │ │ │ ├── collapsed: CollapsedLayers │ │ │ │ ├── commit_hash: String │ │ │ │ ├── document_ptz: PTZ │ │ │ │ ├── render_mode: RenderMode │ │ │ │ ├── overlays_visibility_settings: OverlaysVisibilitySettings │ │ │ │ ├── rulers_visible: bool │ │ │ │ ├── snapping_state: SnappingState │ │ │ │ ├── graph_view_overlay_open: bool │ │ │ │ ├── graph_fade_artwork_percentage: f64 │ │ │ │ ├── name: String │ │ │ │ ├── path: Option │ │ │ │ ├── breadcrumb_network_path: Vec │ │ │ │ ├── selection_network_path: Vec │ │ │ │ ├── document_undo_history: VecDeque │ │ │ │ ├── document_redo_history: VecDeque │ │ │ │ ├── saved_hash: Option │ │ │ │ ├── auto_saved_hash: Option │ │ │ │ ├── layer_range_selection_reference: Option │ │ │ │ └── is_loaded: bool │ │ │ └── DocumentMessageContext `editor/src/messages/portfolio/document/document_message_handler.rs#L48` │ │ │ ├── document_id: DocumentId │ │ │ ├── ipp: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── executor: &'a mut NodeGraphExecutor │ │ │ ├── current_tool: &'a ToolType │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ ├── data_panel_open: bool │ │ │ ├── layers_panel_open: bool │ │ │ ├── properties_panel_open: bool │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Init │ │ ├── DocumentPassMessage │ │ │ ├── document_id: DocumentId │ │ │ └── message: DocumentMessage │ │ ├── AutoSaveActiveDocument │ │ ├── AutoSaveAllDocuments │ │ ├── AutoSaveDocument │ │ │ └── document_id: DocumentId │ │ ├── CloseActiveDocumentWithConfirmation │ │ ├── CloseAllDocuments │ │ ├── CloseAllDocumentsWithConfirmation │ │ ├── CloseDocument │ │ │ └── document_id: DocumentId │ │ ├── CloseDocumentWithConfirmation │ │ │ └── document_id: DocumentId │ │ ├── Copy │ │ │ └── clipboard: Clipboard │ │ ├── Cut │ │ │ └── clipboard: Clipboard │ │ ├── DeleteDocument │ │ │ └── document_id: DocumentId │ │ ├── DestroyAllDocuments │ │ ├── EditorPreferences │ │ ├── FontCatalogLoaded │ │ │ └── catalog: FontCatalog │ │ ├── LoadFontData │ │ │ └── font: Font │ │ ├── FontLoaded │ │ │ ├── font_family: String │ │ │ ├── font_style: String │ │ │ └── data: Vec │ │ ├── LoadDocumentResources │ │ │ └── document_id: DocumentId │ │ ├── NewDocumentWithName │ │ │ └── name: String │ │ ├── NextDocument │ │ ├── Open │ │ ├── Import │ │ ├── OpenFile │ │ │ ├── path: PathBuf │ │ │ └── content: Vec │ │ ├── ImportFile │ │ │ ├── path: PathBuf │ │ │ └── content: Vec │ │ ├── OpenDocumentFile │ │ │ ├── document_name: Option │ │ │ ├── document_path: Option │ │ │ └── document_serialized_content: String │ │ ├── OpenDocumentFileWithId │ │ │ ├── document_id: DocumentId │ │ │ ├── document_name: Option │ │ │ ├── document_path: Option │ │ │ ├── document_is_auto_saved: bool │ │ │ ├── document_is_saved: bool │ │ │ ├── document_serialized_content: String │ │ │ ├── to_front: bool │ │ │ └── select_after_open: bool │ │ ├── OpenImage │ │ │ ├── name: Option │ │ │ └── image: Image │ │ ├── OpenSvg │ │ │ ├── name: Option │ │ │ └── svg: String │ │ ├── PasteSerializedData │ │ │ └── data: String │ │ ├── PasteSerializedVector │ │ │ └── data: String │ │ ├── PasteImage │ │ │ ├── name: Option │ │ │ ├── image: Image │ │ │ ├── mouse: Option<(f64, f64)> │ │ │ └── parent_and_insert_index: Option<(LayerNodeIdentifier, usize)> │ │ ├── PasteSvg │ │ │ ├── name: Option │ │ │ ├── svg: String │ │ │ ├── mouse: Option<(f64, f64)> │ │ │ └── parent_and_insert_index: Option<(LayerNodeIdentifier, usize)> │ │ ├── PasteIntoFolder │ │ │ ├── clipboard: Clipboard │ │ │ ├── parent: LayerNodeIdentifier │ │ │ └── insert_index: usize │ │ ├── CenterPastedLayers │ │ │ └── layers: Vec │ │ ├── PrevDocument │ │ ├── RequestWelcomeScreenButtonsLayout │ │ ├── RequestStatusBarInfoLayout │ │ ├── SetActivePanel │ │ │ └── panel: PanelType │ │ ├── SelectDocument │ │ │ └── document_id: DocumentId │ │ ├── SubmitDocumentExport │ │ │ ├── name: String │ │ │ ├── file_type: FileType │ │ │ ├── scale_factor: f64 │ │ │ ├── bounds: ExportBounds │ │ │ ├── transparent_background: bool │ │ │ ├── artboard_name: Option │ │ │ └── artboard_count: usize │ │ ├── SubmitActiveGraphRender │ │ ├── SubmitGraphRender │ │ │ ├── document_id: DocumentId │ │ │ └── ignore_hash: bool │ │ ├── SubmitEyedropperPreviewRender │ │ ├── ToggleResetNodesToDefinitionsOnOpen │ │ ├── ToggleFocusDocument │ │ ├── ToggleDataPanelOpen │ │ ├── TogglePropertiesPanelOpen │ │ ├── ToggleLayersPanelOpen │ │ ├── ToggleRulers │ │ ├── UpdateDocumentWidgets │ │ └── UpdateOpenDocumentsList │ ├── PortfolioMessageHandler `editor/src/messages/portfolio/portfolio_message_handler.rs#L53` │ │ ├── documents: HashMap │ │ ├── document_ids: VecDeque │ │ ├── active_panel: PanelType │ │ ├── active_document_id: Option │ │ ├── copy_buffer: [Vec; INTERNAL_CLIPBOARD_COUNT as usize] │ │ ├── persistent_data: PersistentData │ │ ├── executor: NodeGraphExecutor │ │ ├── selection_mode: SelectionMode │ │ ├── reset_node_definitions_on_open: bool │ │ ├── focus_document: bool │ │ ├── properties_panel_open: bool │ │ ├── layers_panel_open: bool │ │ └── data_panel_open: bool │ └── PortfolioMessageContext `editor/src/messages/portfolio/portfolio_message_handler.rs#L41` │ ├── ipp: &'a InputPreprocessorMessageHandler │ ├── preferences: &'a PreferencesMessageHandler │ ├── animation: &'a AnimationMessageHandler │ ├── current_tool: &'a ToolType │ ├── reset_node_definitions_on_open: bool │ ├── timing_information: TimingInformation │ └── viewport: &'a ViewportMessageHandler ├── Preferences │ ├── PreferencesMessage `editor/src/messages/preferences/preferences_message.rs#L7` │ │ ├── Load │ │ │ └── preferences: PreferencesMessageHandler │ │ ├── ResetToDefaults │ │ ├── SelectionMode │ │ │ └── selection_mode: SelectionMode │ │ ├── BrushTool │ │ │ └── enabled: bool │ │ ├── ModifyLayout │ │ │ └── zoom_with_scroll: bool │ │ ├── GraphWireStyle │ │ │ └── style: GraphWireStyle │ │ ├── ViewportZoomWheelRate │ │ │ └── rate: f64 │ │ ├── UIScale │ │ │ └── scale: f64 │ │ ├── MaxRenderRegionSize │ │ │ └── size: u32 │ │ └── DisableUIAcceleration │ │ └── disable_ui_acceleration: bool │ ├── PreferencesMessageHandler `editor/src/messages/preferences/preferences_message_handler.rs#L17` │ │ ├── selection_mode: SelectionMode │ │ ├── zoom_with_scroll: bool │ │ ├── brush_tool: bool │ │ ├── graph_wire_style: GraphWireStyle │ │ ├── viewport_zoom_wheel_rate: f64 │ │ ├── ui_scale: f64 │ │ ├── max_render_region_size: u32 │ │ └── disable_ui_acceleration: bool │ └── PreferencesMessageContext `editor/src/messages/preferences/preferences_message_handler.rs#L10` │ └── tool_message_handler: &'a ToolMessageHandler ├── Tool │ ├── ToolMessage `editor/src/messages/tool/tool_message.rs#L8` │ │ ├── TransformLayer │ │ │ ├── TransformLayerMessage `editor/src/messages/tool/transform_layer/transform_layer_message.rs#L10` │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── ApplyTransformOperation │ │ │ │ │ └── final_transform: bool │ │ │ │ ├── BeginTransformOperation │ │ │ │ │ └── operation: TransformType │ │ │ │ ├── BeginGrab │ │ │ │ ├── BeginRotate │ │ │ │ ├── BeginScale │ │ │ │ ├── BeginGRS │ │ │ │ │ └── operation: TransformType │ │ │ │ ├── BeginGrabPen │ │ │ │ │ ├── last_point: DVec2 │ │ │ │ │ └── handle: DVec2 │ │ │ │ ├── BeginRotatePen │ │ │ │ │ ├── last_point: DVec2 │ │ │ │ │ └── handle: DVec2 │ │ │ │ ├── BeginScalePen │ │ │ │ │ ├── last_point: DVec2 │ │ │ │ │ └── handle: DVec2 │ │ │ │ ├── CancelTransformOperation │ │ │ │ ├── ConstrainX │ │ │ │ ├── ConstrainY │ │ │ │ ├── PointerMove │ │ │ │ │ ├── slow_key: Key │ │ │ │ │ └── increments_key: Key │ │ │ │ ├── SelectionChanged │ │ │ │ ├── TypeBackspace │ │ │ │ ├── TypeDecimalPoint │ │ │ │ ├── TypeDigit │ │ │ │ │ └── digit: u8 │ │ │ │ ├── TypeNegate │ │ │ │ └── SetPivotGizmo │ │ │ │ └── pivot_gizmo: PivotGizmo │ │ │ ├── TransformLayerMessageHandler `editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs#L71` │ │ │ │ ├── transform_operation: TransformOperation │ │ │ │ ├── state: TransformationState │ │ │ │ ├── slow: bool │ │ │ │ ├── layer_bounding_box: Quad │ │ │ │ ├── typing: Typing │ │ │ │ ├── mouse_position: ViewportPosition │ │ │ │ ├── start_mouse: ViewportPosition │ │ │ │ ├── original_transforms: OriginalTransforms │ │ │ │ ├── pivot_gizmo: PivotGizmo │ │ │ │ ├── pivot: ViewportPosition │ │ │ │ ├── path_bounds: Option<[DVec2; 2]> │ │ │ │ ├── local_mouse_start: DocumentPosition │ │ │ │ ├── grab_target: DocumentPosition │ │ │ │ ├── ptz: PTZ │ │ │ │ ├── initial_transform: DAffine2 │ │ │ │ ├── operation_count: usize │ │ │ │ ├── was_grabbing: bool │ │ │ │ ├── handle: DVec2 │ │ │ │ ├── last_point: DVec2 │ │ │ │ ├── grs_pen_handle: bool │ │ │ │ └── ghost_outline: Vec<(Vec, DAffine2)> │ │ │ └── TransformLayerMessageContext `editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs#L28` │ │ │ ├── document: &'a DocumentMessageHandler │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── tool_data: &'a ToolData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Select │ │ │ ├── SelectToolMessage `editor/src/messages/tool/tool_messages/select_tool.rs#L83` │ │ │ │ ├── Abort │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── DragStart │ │ │ │ │ ├── extend_selection: Key │ │ │ │ │ ├── remove_from_selection: Key │ │ │ │ │ ├── select_deepest: Key │ │ │ │ │ ├── lasso_select: Key │ │ │ │ │ └── skew: Key │ │ │ │ ├── DragStop │ │ │ │ │ └── remove_from_selection: Key │ │ │ │ ├── EditLayer │ │ │ │ ├── EditLayerExec │ │ │ │ ├── Enter │ │ │ │ ├── PointerMove │ │ │ │ │ └── modifier_keys: SelectToolPointerKeys │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ └── modifier_keys: SelectToolPointerKeys │ │ │ │ ├── SelectOptions │ │ │ │ │ └── options: SelectOptionsUpdate │ │ │ │ ├── SetPivot │ │ │ │ │ └── position: ReferencePoint │ │ │ │ ├── SyncHistory │ │ │ │ ├── ShiftSelectedNodes │ │ │ │ │ └── offset: DVec2 │ │ │ │ └── PivotShift │ │ │ │ ├── offset: Option │ │ │ │ └── flush: bool │ │ │ ├── SelectTool `editor/src/messages/tool/tool_messages/select_tool.rs#L34` │ │ │ │ ├── fsm_state: SelectToolFsmState │ │ │ │ └── tool_data: SelectToolData │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Artboard │ │ │ ├── ArtboardToolMessage `editor/src/messages/tool/tool_messages/artboard_tool.rs#L27` │ │ │ │ ├── Abort │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── UpdateSelectedArtboard │ │ │ │ ├── DeleteSelected │ │ │ │ ├── NudgeSelected │ │ │ │ │ ├── delta_x: f64 │ │ │ │ │ ├── delta_y: f64 │ │ │ │ │ ├── resize: Key │ │ │ │ │ └── resize_opposite_corner: Key │ │ │ │ ├── PointerDown │ │ │ │ ├── PointerMove │ │ │ │ │ ├── constrain_axis_or_aspect: Key │ │ │ │ │ └── center: Key │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ ├── constrain_axis_or_aspect: Key │ │ │ │ │ └── center: Key │ │ │ │ └── PointerUp │ │ │ ├── ArtboardTool `editor/src/messages/tool/tool_messages/artboard_tool.rs#L19` │ │ │ │ ├── fsm_state: ArtboardToolFsmState │ │ │ │ └── data: ArtboardToolData │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Navigate │ │ │ ├── NavigateToolMessage `editor/src/messages/tool/tool_messages/navigate_tool.rs#L12` │ │ │ │ ├── Abort │ │ │ │ ├── PointerUp │ │ │ │ │ └── zoom_in: bool │ │ │ │ ├── PointerMove │ │ │ │ │ └── snap: Key │ │ │ │ ├── TiltCanvasBegin │ │ │ │ ├── ZoomCanvasBegin │ │ │ │ └── End │ │ │ ├── NavigateTool `editor/src/messages/tool/tool_messages/navigate_tool.rs#L4` │ │ │ │ ├── fsm_state: NavigateToolFsmState │ │ │ │ └── tool_data: NavigateToolData │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Eyedropper │ │ │ ├── EyedropperToolMessage `editor/src/messages/tool/tool_messages/eyedropper_tool.rs#L15` │ │ │ │ ├── Abort │ │ │ │ ├── SamplePrimaryColorBegin │ │ │ │ ├── SamplePrimaryColorEnd │ │ │ │ ├── PointerMove │ │ │ │ ├── SampleSecondaryColorBegin │ │ │ │ ├── SampleSecondaryColorEnd │ │ │ │ └── PreviewImage │ │ │ │ ├── data: Vec │ │ │ │ ├── width: u32 │ │ │ │ └── height: u32 │ │ │ ├── EyedropperTool `editor/src/messages/tool/tool_messages/eyedropper_tool.rs#L7` │ │ │ │ ├── fsm_state: EyedropperToolFsmState │ │ │ │ └── data: EyedropperToolData │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Fill │ │ │ ├── FillToolMessage `editor/src/messages/tool/tool_messages/fill_tool.rs#L14` │ │ │ │ ├── Abort │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── PointerMove │ │ │ │ ├── PointerUp │ │ │ │ ├── FillPrimaryColor │ │ │ │ └── FillSecondaryColor │ │ │ ├── FillTool `editor/src/messages/tool/tool_messages/fill_tool.rs#L7` │ │ │ │ └── fsm_state: FillToolFsmState │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Gradient │ │ │ ├── GradientToolMessage `editor/src/messages/tool/tool_messages/gradient_tool.rs#L29` │ │ │ │ ├── Abort │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── SelectionChanged │ │ │ │ ├── DeleteStop │ │ │ │ ├── DoubleClick │ │ │ │ ├── InsertStop │ │ │ │ ├── PointerDown │ │ │ │ ├── PointerMove │ │ │ │ │ ├── constrain_axis: Key │ │ │ │ │ └── lock_angle: Key │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ ├── constrain_axis: Key │ │ │ │ │ └── lock_angle: Key │ │ │ │ ├── PointerUp │ │ │ │ ├── StartTransactionForColorStop │ │ │ │ ├── CommitTransactionForColorStop │ │ │ │ ├── CloseStopColorPicker │ │ │ │ ├── UpdateStopColor │ │ │ │ │ └── color: Color │ │ │ │ └── UpdateOptions │ │ │ │ └── options: GradientOptionsUpdate │ │ │ ├── GradientTool `editor/src/messages/tool/tool_messages/gradient_tool.rs#L15` │ │ │ │ ├── fsm_state: GradientToolFsmState │ │ │ │ ├── data: GradientToolData │ │ │ │ └── options: GradientOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Path │ │ │ ├── PathToolMessage `editor/src/messages/tool/tool_messages/path_tool.rs#L55` │ │ │ │ ├── Abort │ │ │ │ ├── SelectionChanged │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── BreakPath │ │ │ │ ├── DeselectAllSelected │ │ │ │ ├── Delete │ │ │ │ ├── DeleteAndBreakPath │ │ │ │ ├── DragStop │ │ │ │ │ ├── extend_selection: Key │ │ │ │ │ └── shrink_selection: Key │ │ │ │ ├── Enter │ │ │ │ │ ├── extend_selection: Key │ │ │ │ │ └── shrink_selection: Key │ │ │ │ ├── Escape │ │ │ │ ├── ClosePath │ │ │ │ ├── ConnectPointsByPosition │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ ├── start_position: DVec2 │ │ │ │ │ └── end_position: DVec2 │ │ │ │ ├── DoubleClick │ │ │ │ │ ├── extend_selection: Key │ │ │ │ │ └── shrink_selection: Key │ │ │ │ ├── GRS │ │ │ │ │ └── key: Key │ │ │ │ ├── ManipulatorMakeHandlesFree │ │ │ │ ├── ManipulatorMakeHandlesColinear │ │ │ │ ├── MouseDown │ │ │ │ │ ├── extend_selection: Key │ │ │ │ │ ├── lasso_select: Key │ │ │ │ │ ├── handle_drag_from_anchor: Key │ │ │ │ │ ├── drag_restore_handle: Key │ │ │ │ │ └── segment_editing_modifier: Key │ │ │ │ ├── NudgeSelectedPoints │ │ │ │ │ ├── delta_x: f64 │ │ │ │ │ └── delta_y: f64 │ │ │ │ ├── PointerMove │ │ │ │ │ ├── equidistant: Key │ │ │ │ │ ├── toggle_colinear: Key │ │ │ │ │ ├── move_anchor_with_handles: Key │ │ │ │ │ ├── snap_angle: Key │ │ │ │ │ ├── lock_angle: Key │ │ │ │ │ ├── delete_segment: Key │ │ │ │ │ ├── break_colinear_molding: Key │ │ │ │ │ └── segment_editing_modifier: Key │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ ├── equidistant: Key │ │ │ │ │ ├── toggle_colinear: Key │ │ │ │ │ ├── move_anchor_with_handles: Key │ │ │ │ │ ├── snap_angle: Key │ │ │ │ │ ├── lock_angle: Key │ │ │ │ │ ├── delete_segment: Key │ │ │ │ │ ├── break_colinear_molding: Key │ │ │ │ │ └── segment_editing_modifier: Key │ │ │ │ ├── RightClick │ │ │ │ ├── SelectAll │ │ │ │ ├── SelectedPointUpdated │ │ │ │ ├── SelectedPointXChanged │ │ │ │ │ └── new_x: f64 │ │ │ │ ├── SelectedPointYChanged │ │ │ │ │ └── new_y: f64 │ │ │ │ ├── SetPivot │ │ │ │ │ └── position: ReferencePoint │ │ │ │ ├── SwapSelectedHandles │ │ │ │ ├── UpdateOptions │ │ │ │ │ └── options: PathOptionsUpdate │ │ │ │ ├── UpdateSelectedPointsStatus │ │ │ │ │ └── overlay_context: OverlayContext │ │ │ │ ├── StartSlidingPoint │ │ │ │ ├── Copy │ │ │ │ │ └── clipboard: Clipboard │ │ │ │ ├── Cut │ │ │ │ │ └── clipboard: Clipboard │ │ │ │ ├── Paste │ │ │ │ │ └── data: String │ │ │ │ ├── DeleteSelected │ │ │ │ ├── Duplicate │ │ │ │ ├── TogglePointEditing │ │ │ │ └── ToggleSegmentEditing │ │ │ ├── PathTool `editor/src/messages/tool/tool_messages/path_tool.rs#L40` │ │ │ │ ├── fsm_state: PathToolFsmState │ │ │ │ ├── tool_data: PathToolData │ │ │ │ └── options: PathToolOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Pen │ │ │ ├── PenToolMessage `editor/src/messages/tool/tool_messages/pen_tool.rs#L50` │ │ │ │ ├── Abort │ │ │ │ ├── SelectionChanged │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── AddPointLayerPosition │ │ │ │ │ ├── layer: LayerNodeIdentifier │ │ │ │ │ └── viewport: DVec2 │ │ │ │ ├── Confirm │ │ │ │ ├── DragStart │ │ │ │ │ └── append_to_selected: Key │ │ │ │ ├── DragStop │ │ │ │ ├── PointerMove │ │ │ │ │ ├── snap_angle: Key │ │ │ │ │ ├── break_handle: Key │ │ │ │ │ ├── lock_angle: Key │ │ │ │ │ ├── colinear: Key │ │ │ │ │ └── move_anchor_with_handles: Key │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ ├── snap_angle: Key │ │ │ │ │ ├── break_handle: Key │ │ │ │ │ ├── lock_angle: Key │ │ │ │ │ ├── colinear: Key │ │ │ │ │ └── move_anchor_with_handles: Key │ │ │ │ ├── Redo │ │ │ │ ├── Undo │ │ │ │ ├── UpdateOptions │ │ │ │ │ └── options: PenOptionsUpdate │ │ │ │ ├── RecalculateLatestPointsPosition │ │ │ │ ├── RemovePreviousHandle │ │ │ │ ├── GRS │ │ │ │ │ ├── grab: Key │ │ │ │ │ ├── rotate: Key │ │ │ │ │ └── scale: Key │ │ │ │ ├── FinalPosition │ │ │ │ │ └── final_position: DVec2 │ │ │ │ └── SwapHandles │ │ │ ├── PenTool `editor/src/messages/tool/tool_messages/pen_tool.rs#L23` │ │ │ │ ├── fsm_state: PenToolFsmState │ │ │ │ ├── tool_data: PenToolData │ │ │ │ └── options: PenOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Freehand │ │ │ ├── FreehandToolMessage `editor/src/messages/tool/tool_messages/freehand_tool.rs#L43` │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── Abort │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── DragStart │ │ │ │ │ └── append_to_selected: Key │ │ │ │ ├── DragStop │ │ │ │ ├── PointerMove │ │ │ │ └── UpdateOptions │ │ │ │ └── options: FreehandOptionsUpdate │ │ │ ├── FreehandTool `editor/src/messages/tool/tool_messages/freehand_tool.rs#L18` │ │ │ │ ├── fsm_state: FreehandToolFsmState │ │ │ │ ├── data: FreehandToolData │ │ │ │ └── options: FreehandOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Spline │ │ │ ├── SplineToolMessage `editor/src/messages/tool/tool_messages/spline_tool.rs#L44` │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── CanvasTransformed │ │ │ │ ├── Abort │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── Confirm │ │ │ │ ├── DragStart │ │ │ │ │ └── append_to_selected: Key │ │ │ │ ├── DragStop │ │ │ │ ├── MergeEndpoints │ │ │ │ ├── PointerMove │ │ │ │ ├── PointerOutsideViewport │ │ │ │ ├── Undo │ │ │ │ └── UpdateOptions │ │ │ │ └── options: SplineOptionsUpdate │ │ │ ├── SplineTool `editor/src/messages/tool/tool_messages/spline_tool.rs#L19` │ │ │ │ ├── fsm_state: SplineToolFsmState │ │ │ │ ├── tool_data: SplineToolData │ │ │ │ └── options: SplineOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Shape │ │ │ ├── ShapeToolMessage `editor/src/messages/tool/tool_messages/shape_tool.rs#L94` │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── Abort │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── DragStart │ │ │ │ ├── DragStop │ │ │ │ ├── HideShapeTypeWidget │ │ │ │ │ └── hide: bool │ │ │ │ ├── PointerMove │ │ │ │ │ └── modifier: ShapeToolModifierKey │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ └── modifier: ShapeToolModifierKey │ │ │ │ ├── UpdateOptions │ │ │ │ │ └── options: ShapeOptionsUpdate │ │ │ │ ├── SetShape │ │ │ │ │ └── shape: ShapeType │ │ │ │ ├── SyncShapeWithOptions │ │ │ │ ├── IncreaseSides │ │ │ │ ├── DecreaseSides │ │ │ │ └── NudgeSelectedLayers │ │ │ │ ├── delta_x: f64 │ │ │ │ ├── delta_y: f64 │ │ │ │ ├── resize: Key │ │ │ │ └── resize_opposite_corner: Key │ │ │ ├── ShapeTool `editor/src/messages/tool/tool_messages/shape_tool.rs#L31` │ │ │ │ ├── fsm_state: ShapeToolFsmState │ │ │ │ ├── tool_data: ShapeToolData │ │ │ │ └── options: ShapeToolOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Text │ │ │ ├── TextToolMessage `editor/src/messages/tool/tool_messages/text_tool.rs#L60` │ │ │ │ ├── Abort │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── Overlays │ │ │ │ │ └── context: OverlayContext │ │ │ │ ├── DragStart │ │ │ │ ├── DragStop │ │ │ │ ├── EditSelected │ │ │ │ ├── Interact │ │ │ │ ├── PointerMove │ │ │ │ │ ├── center: Key │ │ │ │ │ └── lock_ratio: Key │ │ │ │ ├── PointerOutsideViewport │ │ │ │ │ ├── center: Key │ │ │ │ │ └── lock_ratio: Key │ │ │ │ ├── TextChange │ │ │ │ │ ├── new_text: String │ │ │ │ │ └── is_left_or_right_click: bool │ │ │ │ ├── UpdateBounds │ │ │ │ │ └── new_text: String │ │ │ │ ├── UpdateOptions │ │ │ │ │ └── options: TextOptionsUpdate │ │ │ │ └── RefreshEditingFontData │ │ │ ├── TextTool `editor/src/messages/tool/tool_messages/text_tool.rs#L27` │ │ │ │ ├── fsm_state: TextToolFsmState │ │ │ │ ├── tool_data: TextToolData │ │ │ │ └── options: TextOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── Brush │ │ │ ├── BrushToolMessage `editor/src/messages/tool/tool_messages/brush_tool.rs#L58` │ │ │ │ ├── Abort │ │ │ │ ├── WorkingColorChanged │ │ │ │ ├── DragStart │ │ │ │ ├── DragStop │ │ │ │ ├── PointerMove │ │ │ │ └── UpdateOptions │ │ │ │ └── options: BrushToolMessageOptionsUpdate │ │ │ ├── BrushTool `editor/src/messages/tool/tool_messages/brush_tool.rs#L25` │ │ │ │ ├── fsm_state: BrushToolFsmState │ │ │ │ ├── data: BrushToolData │ │ │ │ └── options: BrushOptions │ │ │ └── &mut ToolActionMessageContext<'a> `editor/src/messages/tool/utility_types.rs#L22` │ │ │ ├── document: &'a mut DocumentMessageHandler │ │ │ ├── document_id: DocumentId │ │ │ ├── global_tool_data: &'a DocumentToolData │ │ │ ├── input: &'a InputPreprocessorMessageHandler │ │ │ ├── persistent_data: &'a PersistentData │ │ │ ├── shape_editor: &'a mut ShapeState │ │ │ ├── node_graph: &'a NodeGraphExecutor │ │ │ ├── preferences: &'a PreferencesMessageHandler │ │ │ └── viewport: &'a ViewportMessageHandler │ │ ├── ActivateToolSelect │ │ ├── ActivateToolArtboard │ │ ├── ActivateToolNavigate │ │ ├── ActivateToolEyedropper │ │ ├── ActivateToolFill │ │ ├── ActivateToolGradient │ │ ├── ActivateToolPath │ │ ├── ActivateToolPen │ │ ├── ActivateToolFreehand │ │ ├── ActivateToolSpline │ │ ├── ActivateToolShapeLine │ │ ├── ActivateToolShapeRectangle │ │ ├── ActivateToolShapeEllipse │ │ ├── ActivateToolShape │ │ ├── ActivateToolText │ │ ├── ActivateToolBrush │ │ ├── ActivateTool │ │ │ └── tool_type: ToolType │ │ ├── DeactivateTools │ │ ├── InitTools │ │ ├── PreUndo │ │ ├── Redo │ │ ├── RefreshToolOptions │ │ ├── RefreshToolShelf │ │ ├── ResetColors │ │ ├── SelectWorkingColor │ │ │ ├── color: Color │ │ │ └── primary: bool │ │ ├── SelectRandomWorkingColor │ │ │ └── primary: bool │ │ ├── ToggleSelectVsPath │ │ ├── SwapColors │ │ ├── Undo │ │ ├── UpdateCursor │ │ ├── UpdateHints │ │ └── UpdateSelectionMode │ │ └── selection_mode: SelectionMode │ ├── ToolMessageHandler `editor/src/messages/tool/tool_message_handler.rs#L28` │ │ ├── tool_state: ToolFsmState │ │ ├── transform_layer_handler: TransformLayerMessageHandler │ │ ├── shape_editor: ShapeState │ │ └── tool_is_active: bool │ └── ToolMessageContext `editor/src/messages/tool/tool_message_handler.rs#L17` │ ├── document_id: DocumentId │ ├── document: &'a mut DocumentMessageHandler │ ├── input: &'a InputPreprocessorMessageHandler │ ├── persistent_data: &'a PersistentData │ ├── node_graph: &'a NodeGraphExecutor │ ├── preferences: &'a PreferencesMessageHandler │ └── viewport: &'a ViewportMessageHandler ├── Viewport │ ├── ViewportMessage `editor/src/messages/viewport/viewport_message.rs#L5` │ │ ├── Update │ │ │ ├── x: f64 │ │ │ ├── y: f64 │ │ │ ├── width: f64 │ │ │ ├── height: f64 │ │ │ └── scale: f64 │ │ └── RepropagateUpdate │ └── ViewportMessageHandler `editor/src/messages/viewport/viewport_message_handler.rs#L8` │ ├── bounds: Bounds │ └── scale: f64 ├── Batched │ └── messages: Box<[Message]> └── NoOp