summaryrefslogtreecommitdiffstats
path: root/examples/pane_grid
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-11-10 01:48:11 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-11-10 01:48:11 +0100
commit8008ea52862735aae326c8833355b3ecacb8fed1 (patch)
treea438b33deeeca3f0f92881ac44a47226e6397b0d /examples/pane_grid
parent5681c83d3c30cfb6940de734b60e61da9571ed0b (diff)
downloadiced-8008ea52862735aae326c8833355b3ecacb8fed1.tar.gz
iced-8008ea52862735aae326c8833355b3ecacb8fed1.tar.bz2
iced-8008ea52862735aae326c8833355b3ecacb8fed1.zip
Introduce `on_click` handler in `PaneGrid`
Diffstat (limited to 'examples/pane_grid')
-rw-r--r--examples/pane_grid/Cargo.toml2
-rw-r--r--examples/pane_grid/src/main.rs17
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);