diff options
author | 2024-02-15 02:38:07 +0100 | |
---|---|---|
committer | 2024-02-15 02:38:07 +0100 | |
commit | feab96f323189ebae070a5d025531f86e436e21f (patch) | |
tree | bc15f73541151ef27e23ba1a908713b95c027d44 /examples/pane_grid | |
parent | e57668d6776d4354b6d3df049aee64be0dc8eda2 (diff) | |
download | iced-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.rs | 55 |
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() } |