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/src | |
| 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 '')
| -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()  } | 
