summaryrefslogtreecommitdiffstats
path: root/examples/pane_grid/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/pane_grid/src')
-rw-r--r--examples/pane_grid/src/main.rs50
1 files changed, 28 insertions, 22 deletions
diff --git a/examples/pane_grid/src/main.rs b/examples/pane_grid/src/main.rs
index db9f7a05..67f4d27f 100644
--- a/examples/pane_grid/src/main.rs
+++ b/examples/pane_grid/src/main.rs
@@ -1,10 +1,9 @@
-use iced::alignment::{self, Alignment};
use iced::keyboard;
use iced::widget::pane_grid::{self, PaneGrid};
use iced::widget::{
button, column, container, responsive, row, scrollable, text,
};
-use iced::{Color, Element, Length, Size, Subscription};
+use iced::{Center, Color, Element, Fill, Size, Subscription};
pub fn main() -> iced::Result {
iced::application("Pane Grid - Iced", Example::update, Example::view)
@@ -155,11 +154,23 @@ impl Example {
.spacing(5);
let title_bar = pane_grid::TitleBar::new(title)
- .controls(view_controls(
- id,
- total_panes,
- pane.is_pinned,
- is_maximized,
+ .controls(pane_grid::Controls::dynamic(
+ view_controls(
+ id,
+ total_panes,
+ pane.is_pinned,
+ is_maximized,
+ ),
+ button(text("X").size(14))
+ .style(button::danger)
+ .padding(3)
+ .on_press_maybe(
+ if total_panes > 1 && !pane.is_pinned {
+ Some(Message::Close(id))
+ } else {
+ None
+ },
+ ),
))
.padding(10)
.style(if is_focused {
@@ -178,16 +189,16 @@ impl Example {
style::pane_active
})
})
- .width(Length::Fill)
- .height(Length::Fill)
+ .width(Fill)
+ .height(Fill)
.spacing(10)
.on_click(Message::Clicked)
.on_drag(Message::Dragged)
.on_resize(10, Message::Resized);
container(pane_grid)
- .width(Length::Fill)
- .height(Length::Fill)
+ .width(Fill)
+ .height(Fill)
.padding(10)
.into()
}
@@ -255,15 +266,10 @@ fn view_content<'a>(
size: Size,
) -> Element<'a, Message> {
let button = |label, message| {
- button(
- text(label)
- .width(Length::Fill)
- .horizontal_alignment(alignment::Horizontal::Center)
- .size(16),
- )
- .width(Length::Fill)
- .padding(8)
- .on_press(message)
+ button(text(label).width(Fill).align_x(Center).size(16))
+ .width(Fill)
+ .padding(8)
+ .on_press(message)
};
let controls = column![
@@ -287,10 +293,10 @@ fn view_content<'a>(
let content =
column![text!("{}x{}", size.width, size.height).size(24), controls,]
.spacing(10)
- .align_items(Alignment::Center);
+ .align_x(Center);
container(scrollable(content))
- .center_y(Length::Fill)
+ .center_y(Fill)
.padding(5)
.into()
}