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>,
|
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.
|
/// Sends a panel a message.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct SendMessage {
|
pub struct SendMessage {
|
||||||
|
@ -41,6 +47,7 @@ pub struct SendMessage {
|
||||||
#[serde(tag = "kind")]
|
#[serde(tag = "kind")]
|
||||||
pub enum MagpieServerMsg {
|
pub enum MagpieServerMsg {
|
||||||
CreatePanel(CreatePanel),
|
CreatePanel(CreatePanel),
|
||||||
|
ClosePanel(ClosePanel),
|
||||||
SendMessage(SendMessage),
|
SendMessage(SendMessage),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -151,6 +151,12 @@ impl Client {
|
||||||
};
|
};
|
||||||
let _ = self.window_sender.send_event(msg);
|
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 }) => {
|
MagpieServerMsg::SendMessage(SendMessage { id, msg }) => {
|
||||||
if let Some(id) = self.id_to_window.get(&id).cloned() {
|
if let Some(id) = self.id_to_window.get(&id).cloned() {
|
||||||
let msg = WindowMessage::SendMessage { id, msg };
|
let msg = WindowMessage::SendMessage { id, msg };
|
||||||
|
|
Loading…
Reference in New Issue