diff options
author | 2020-11-10 01:48:11 +0100 | |
---|---|---|
committer | 2020-11-10 01:48:11 +0100 | |
commit | 8008ea52862735aae326c8833355b3ecacb8fed1 (patch) | |
tree | a438b33deeeca3f0f92881ac44a47226e6397b0d /examples | |
parent | 5681c83d3c30cfb6940de734b60e61da9571ed0b (diff) | |
download | iced-8008ea52862735aae326c8833355b3ecacb8fed1.tar.gz iced-8008ea52862735aae326c8833355b3ecacb8fed1.tar.bz2 iced-8008ea52862735aae326c8833355b3ecacb8fed1.zip |
Introduce `on_click` handler in `PaneGrid`
Diffstat (limited to 'examples')
-rw-r--r-- | examples/pane_grid/Cargo.toml | 2 | ||||
-rw-r--r-- | examples/pane_grid/src/main.rs | 17 |
2 files changed, 16 insertions, 3 deletions
diff --git a/examples/pane_grid/Cargo.toml b/examples/pane_grid/Cargo.toml index 3ed912ac..3d1631f1 100644 --- a/examples/pane_grid/Cargo.toml +++ b/examples/pane_grid/Cargo.toml @@ -6,4 +6,4 @@ edition = "2018" publish = false [dependencies] -iced = { path = "../.." } +iced = { path = "../..", features = ["debug"] } diff --git a/examples/pane_grid/src/main.rs b/examples/pane_grid/src/main.rs index 42184114..36485e9a 100644 --- a/examples/pane_grid/src/main.rs +++ b/examples/pane_grid/src/main.rs @@ -19,6 +19,7 @@ enum Message { Split(pane_grid::Axis, pane_grid::Pane), SplitFocused(pane_grid::Axis), FocusAdjacent(pane_grid::Direction), + Clicked(pane_grid::Pane), Dragged(pane_grid::DragEvent), Resized(pane_grid::ResizeEvent), Close(pane_grid::Pane), @@ -45,22 +46,30 @@ impl Sandbox for Example { fn update(&mut self, message: Message) { match message { Message::Split(axis, pane) => { - let _ = self.panes.split( + let result = self.panes.split( axis, &pane, Content::new(self.panes_created), ); + if let Some((pane, _)) = result { + self.focus = Some(pane); + } + self.panes_created += 1; } Message::SplitFocused(axis) => { if let Some(pane) = self.focus { - let _ = self.panes.split( + let result = self.panes.split( axis, &pane, Content::new(self.panes_created), ); + if let Some((pane, _)) = result { + self.focus = Some(pane); + } + self.panes_created += 1; } } @@ -73,6 +82,9 @@ impl Sandbox for Example { } } } + Message::Clicked(pane) => { + self.focus = Some(pane); + } Message::Resized(pane_grid::ResizeEvent { split, ratio }) => { self.panes.resize(&split, ratio); } @@ -113,6 +125,7 @@ impl Sandbox for Example { .width(Length::Fill) .height(Length::Fill) .spacing(10) + .on_click(Message::Clicked) .on_drag(Message::Dragged) .on_resize(10, Message::Resized); |