Files
Graphite/editor/src/communication/broadcast_message.rs
mfish33 a6c91204d6 Event broadcasting system (#692)
* broadcast system implemented but not everywhere

* unused types

* code review with keavon

* - optional signal mappings
- tool.rs simplification

* Cleanup

* reduced code duplication in `tool.rs`

* ran cargo fmt

* code review changes

* fix merge error

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2022-07-03 08:06:27 -06:00

27 lines
585 B
Rust

use crate::message_prelude::*;
use serde::{Deserialize, Serialize};
#[impl_message(Message, Broadcast)]
#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
pub enum BroadcastMessage {
SubscribeSignal {
on: BroadcastSignal,
send: Box<Message>,
},
UnsubscribeSignal {
on: BroadcastSignal,
message: Box<Message>,
},
#[child]
TriggerSignal(BroadcastSignal),
}
#[derive(PartialEq, Eq, Clone, Debug, Serialize, Deserialize, Hash)]
#[impl_message(Message, BroadcastMessage, TriggerSignal)]
pub enum BroadcastSignal {
DocumentIsDirty,
ToolAbort,
SelectionChanged,
}