mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-27 19:58:12 +08:00
Restructure the entire editor codebase to consistently match the message hierarchy
Closes #744
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
mod workspace_message;
|
||||
mod workspace_message_handler;
|
||||
|
||||
#[doc(inline)]
|
||||
pub use workspace_message::{WorkspaceMessage, WorkspaceMessageDiscriminant};
|
||||
#[doc(inline)]
|
||||
pub use workspace_message_handler::WorkspaceMessageHandler;
|
||||
@@ -0,0 +1,11 @@
|
||||
use crate::messages::prelude::*;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[remain::sorted]
|
||||
#[impl_message(Message, Workspace)]
|
||||
#[derive(PartialEq, Eq, Clone, Debug, Serialize, Deserialize)]
|
||||
pub enum WorkspaceMessage {
|
||||
// Messages
|
||||
NodeGraphToggleVisibility,
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
use crate::messages::prelude::*;
|
||||
|
||||
#[derive(Debug, Clone, Default)]
|
||||
pub struct WorkspaceMessageHandler {
|
||||
node_graph_visible: bool,
|
||||
}
|
||||
|
||||
impl MessageHandler<WorkspaceMessage, &InputPreprocessorMessageHandler> for WorkspaceMessageHandler {
|
||||
#[remain::check]
|
||||
fn process_message(&mut self, message: WorkspaceMessage, _ipp: &InputPreprocessorMessageHandler, responses: &mut VecDeque<Message>) {
|
||||
use WorkspaceMessage::*;
|
||||
|
||||
#[remain::sorted]
|
||||
match message {
|
||||
// Messages
|
||||
NodeGraphToggleVisibility => {
|
||||
self.node_graph_visible = !self.node_graph_visible;
|
||||
responses.push_back(FrontendMessage::UpdateNodeGraphVisibility { visible: self.node_graph_visible }.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn actions(&self) -> ActionList {
|
||||
actions!(WorkspaceMessageDiscriminant;
|
||||
NodeGraphToggleVisibility,
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user