summaryrefslogtreecommitdiffstats
path: root/examples/multi_window
diff options
context:
space:
mode:
authorLibravatar Richard <richardsoncusto@gmail.com>2022-07-26 16:46:12 -0300
committerLibravatar bungoboingo <shankern@protonmail.com>2023-01-09 11:27:04 -0800
commit35331d0a41a53b8ff5c642b8274c7377ae6c6182 (patch)
tree522f9cded3072b64b1127fe9ad572c3f0224cecc /examples/multi_window
parent3d901d5f1f8e496651a6f9881fec92bc8998d910 (diff)
downloadiced-35331d0a41a53b8ff5c642b8274c7377ae6c6182.tar.gz
iced-35331d0a41a53b8ff5c642b8274c7377ae6c6182.tar.bz2
iced-35331d0a41a53b8ff5c642b8274c7377ae6c6182.zip
Allow closing the window from user code
Diffstat (limited to 'examples/multi_window')
-rw-r--r--examples/multi_window/src/main.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/examples/multi_window/src/main.rs b/examples/multi_window/src/main.rs
index 4ad92adb..ca137d48 100644
--- a/examples/multi_window/src/main.rs
+++ b/examples/multi_window/src/main.rs
@@ -50,6 +50,7 @@ enum WindowMessage {
Close(pane_grid::Pane),
CloseFocused,
SelectedWindow(pane_grid::Pane, SelectableWindow),
+ CloseWindow,
}
impl Application for Example {
@@ -128,6 +129,9 @@ impl Application for Example {
let window = self.windows.get_mut(&id).unwrap();
window.focus = Some(pane);
}
+ WindowMessage::CloseWindow => {
+ let _ = self.windows.remove(&id);
+ }
WindowMessage::Resized(pane_grid::ResizeEvent { split, ratio }) => {
let window = self.windows.get_mut(&id).unwrap();
window.panes.resize(&split, ratio);
@@ -145,8 +149,6 @@ impl Application for Example {
if let Some((pane, _)) = result {
window.focus = Some(pane);
}
-
- self.panes_created += 1;
}
}
WindowMessage::ToggleMoving(pane) => {
@@ -260,6 +262,9 @@ impl Application for Example {
WindowMessage::TitleChanged,
),
button(text("Apply")).style(theme::Button::Primary),
+ button(text("Close"))
+ .on_press(WindowMessage::CloseWindow)
+ .style(theme::Button::Destructive),
]
.spacing(5)
.align_items(Alignment::Center);