Add Magpie ClosePanel message
This commit is contained in:
parent
e944caa358
commit
9660ebb4dd
|
@ -29,6 +29,12 @@ pub struct CreatePanel {
|
|||
pub init_msg: Vec<u8>,
|
||||
}
|
||||
|
||||
/// Closes a Magpie panel with a given ID.
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct ClosePanel {
|
||||
pub id: PanelId,
|
||||
}
|
||||
|
||||
/// Sends a panel a message.
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct SendMessage {
|
||||
|
@ -41,6 +47,7 @@ pub struct SendMessage {
|
|||
#[serde(tag = "kind")]
|
||||
pub enum MagpieServerMsg {
|
||||
CreatePanel(CreatePanel),
|
||||
ClosePanel(ClosePanel),
|
||||
SendMessage(SendMessage),
|
||||
}
|
||||
|
||||
|
|
|
@ -151,6 +151,12 @@ impl Client {
|
|||
};
|
||||
let _ = self.window_sender.send_event(msg);
|
||||
}
|
||||
MagpieServerMsg::ClosePanel(ClosePanel { id }) => {
|
||||
if let Some(id) = self.id_to_window.get(&id).copied() {
|
||||
let msg = WindowMessage::CloseWindow { id };
|
||||
let _ = self.window_sender.send_event(msg);
|
||||
}
|
||||
}
|
||||
MagpieServerMsg::SendMessage(SendMessage { id, msg }) => {
|
||||
if let Some(id) = self.id_to_window.get(&id).cloned() {
|
||||
let msg = WindowMessage::SendMessage { id, msg };
|
||||
|
|
Loading…
Reference in New Issue