Build the node graph frontend with placeholder graph info (#581)

* Build the node graph frontend

* Graph pan and zoom

* Graph's dot grid now pans/zooms also

* Interactive horisontal to vertical curves

* Data types and zooming on wires

* Icon definitions code beautification

* Add a visibility toggle

Co-authored-by: 0hypercube <0hypercube@gmail.com>
This commit is contained in:
Keavon Chambers
2022-05-10 22:34:25 -07:00
co-authored by 0hypercube
parent be6351573f
commit 07d5bef125
32 changed files with 826 additions and 145 deletions
+8 -1
View File
@@ -4,6 +4,7 @@ use crate::input::{InputMapperMessageHandler, InputPreprocessorMessageHandler};
use crate::layout::layout_message_handler::LayoutMessageHandler;
use crate::message_prelude::*;
use crate::viewport_tools::tool_message_handler::ToolMessageHandler;
use crate::workspace::WorkspaceMessageHandler;
use std::collections::VecDeque;
@@ -27,6 +28,7 @@ struct DispatcherMessageHandlers {
layout_message_handler: LayoutMessageHandler,
portfolio_message_handler: PortfolioMessageHandler,
tool_message_handler: ToolMessageHandler,
workspace_message_handler: WorkspaceMessageHandler,
}
/// For optimization, these are messages guaranteed to be redundant when repeated.
@@ -40,7 +42,7 @@ const SIDE_EFFECT_FREE_MESSAGES: &[MessageDiscriminant] = &[
))),
MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::FolderChanged)),
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateDocumentLayer),
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::DisplayDocumentLayerTreeStructure),
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateDocumentLayerTreeStructure),
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateOpenDocumentsList),
MessageDiscriminant::Tool(ToolMessageDiscriminant::DocumentIsDirty),
];
@@ -113,6 +115,11 @@ impl Dispatcher {
&mut self.message_queue,
);
}
Workspace(message) => {
self.message_handlers
.workspace_message_handler
.process_action(message, &self.message_handlers.input_preprocessor_message_handler, &mut self.message_queue);
}
#[remain::unsorted]
PopulateBuildMetadata { new } => self.build_metadata = new,
+2
View File
@@ -39,6 +39,8 @@ pub enum Message {
Portfolio(PortfolioMessage),
#[child]
Tool(ToolMessage),
#[child]
Workspace(WorkspaceMessage),
#[remain::unsorted]
PopulateBuildMetadata { new: BuildMetadata },