summaryrefslogtreecommitdiffstats
path: root/examples/pane_grid
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-15 02:38:07 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-15 02:38:07 +0100
commitfeab96f323189ebae070a5d025531f86e436e21f (patch)
treebc15f73541151ef27e23ba1a908713b95c027d44 /examples/pane_grid
parente57668d6776d4354b6d3df049aee64be0dc8eda2 (diff)
downloadiced-feab96f323189ebae070a5d025531f86e436e21f.tar.gz
iced-feab96f323189ebae070a5d025531f86e436e21f.tar.bz2
iced-feab96f323189ebae070a5d025531f86e436e21f.zip
Add `push_maybe` to `Column` and `Row`
Diffstat (limited to 'examples/pane_grid')
-rw-r--r--examples/pane_grid/src/main.rs55
1 files changed, 28 insertions, 27 deletions
diff --git a/examples/pane_grid/src/main.rs b/examples/pane_grid/src/main.rs
index 742dc344..39719420 100644
--- a/examples/pane_grid/src/main.rs
+++ b/examples/pane_grid/src/main.rs
@@ -276,7 +276,7 @@ fn view_content<'a>(
.on_press(message)
};
- let mut controls = column![
+ let controls = column![
button(
"Split horizontally",
Message::Split(pane_grid::Axis::Horizontal, pane),
@@ -286,15 +286,16 @@ fn view_content<'a>(
Message::Split(pane_grid::Axis::Vertical, pane),
)
]
- .spacing(5)
- .max_width(160);
-
- if total_panes > 1 && !is_pinned {
- controls = controls.push(
+ .push_maybe(if total_panes > 1 && !is_pinned {
+ Some(
button("Close", Message::Close(pane))
.style(theme::Button::Destructive),
- );
- }
+ )
+ } else {
+ None
+ })
+ .spacing(5)
+ .max_width(160);
let content = column![
text(format!("{}x{}", size.width, size.height)).size(24),
@@ -317,31 +318,31 @@ fn view_controls<'a>(
is_pinned: bool,
is_maximized: bool,
) -> Element<'a, Message> {
- let mut row = row![].spacing(5);
+ let row = row![].spacing(5).push_maybe(if total_panes > 1 {
+ let (content, message) = if is_maximized {
+ ("Restore", Message::Restore)
+ } else {
+ ("Maximize", Message::Maximize(pane))
+ };
- if total_panes > 1 {
- let toggle = {
- let (content, message) = if is_maximized {
- ("Restore", Message::Restore)
- } else {
- ("Maximize", Message::Maximize(pane))
- };
+ Some(
button(text(content).size(14))
.style(theme::Button::Secondary)
.padding(3)
- .on_press(message)
- };
-
- row = row.push(toggle);
- }
+ .on_press(message),
+ )
+ } else {
+ None
+ });
- let mut close = button(text("Close").size(14))
+ let close = button(text("Close").size(14))
.style(theme::Button::Destructive)
- .padding(3);
-
- if total_panes > 1 && !is_pinned {
- close = close.on_press(Message::Close(pane));
- }
+ .padding(3)
+ .on_press_maybe(if total_panes > 1 && !is_pinned {
+ Some(Message::Close(pane))
+ } else {
+ None
+ });
row.push(close).into()
}