Ask for explicit Length in center_* methods
This commit is contained in:
parent
b30d34f728
commit
05f69f495e
13 changed files with 40 additions and 41 deletions
|
|
@ -277,7 +277,7 @@ fn action<'a, Message: Clone + 'a>(
|
||||||
label: &'a str,
|
label: &'a str,
|
||||||
on_press: Option<Message>,
|
on_press: Option<Message>,
|
||||||
) -> Element<'a, Message> {
|
) -> Element<'a, Message> {
|
||||||
let action = button(container(content).center_x().width(30));
|
let action = button(container(content).center_x(30));
|
||||||
|
|
||||||
if let Some(on_press) = on_press {
|
if let Some(on_press) = on_press {
|
||||||
tooltip(
|
tooltip(
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ mod rainbow {
|
||||||
}
|
}
|
||||||
|
|
||||||
use iced::widget::{column, container, scrollable};
|
use iced::widget::{column, container, scrollable};
|
||||||
use iced::Element;
|
use iced::{Element, Length};
|
||||||
use rainbow::rainbow;
|
use rainbow::rainbow;
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -176,7 +176,7 @@ fn view(_state: &()) -> Element<'_, ()> {
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.max_width(500);
|
.max_width(500);
|
||||||
|
|
||||||
let scrollable = scrollable(container(content).center_x());
|
let scrollable = scrollable(container(content).center_x(Length::Fill));
|
||||||
|
|
||||||
container(scrollable).center_y().into()
|
container(scrollable).center_y(Length::Fill).into()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -251,7 +251,7 @@ fn application<'a>() -> Element<'a, Message> {
|
||||||
.align_items(Alignment::Center),
|
.align_items(Alignment::Center),
|
||||||
)
|
)
|
||||||
.style(container::rounded_box)
|
.style(container::rounded_box)
|
||||||
.center_y();
|
.center_y(Length::Fill);
|
||||||
|
|
||||||
let content = container(
|
let content = container(
|
||||||
scrollable(
|
scrollable(
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,6 @@ impl Window {
|
||||||
.align_items(Alignment::Center),
|
.align_items(Alignment::Center),
|
||||||
);
|
);
|
||||||
|
|
||||||
container(content).center_x().width(200).into()
|
container(content).center_x(200).into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,10 @@ fn view_content<'a>(
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.align_items(Alignment::Center);
|
.align_items(Alignment::Center);
|
||||||
|
|
||||||
container(scrollable(content)).center_y().padding(5).into()
|
container(scrollable(content))
|
||||||
|
.center_y(Length::Fill)
|
||||||
|
.padding(5)
|
||||||
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn view_controls<'a>(
|
fn view_controls<'a>(
|
||||||
|
|
|
||||||
|
|
@ -123,10 +123,9 @@ impl Example {
|
||||||
};
|
};
|
||||||
|
|
||||||
let image = container(image)
|
let image = container(image)
|
||||||
.center_y()
|
.center_y(Length::FillPortion(2))
|
||||||
.padding(10)
|
.padding(10)
|
||||||
.style(container::rounded_box)
|
.style(container::rounded_box);
|
||||||
.width(Length::FillPortion(2));
|
|
||||||
|
|
||||||
let crop_origin_controls = row![
|
let crop_origin_controls = row![
|
||||||
text("X:")
|
text("X:")
|
||||||
|
|
@ -211,7 +210,7 @@ impl Example {
|
||||||
.spacing(40)
|
.spacing(40)
|
||||||
};
|
};
|
||||||
|
|
||||||
let side_content = container(controls).center_y();
|
let side_content = container(controls).center_y(Length::Fill);
|
||||||
|
|
||||||
let content = row![side_content, image]
|
let content = row![side_content, image]
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use iced::widget::{center, column, container, slider, text, vertical_slider};
|
use iced::widget::{center, column, container, slider, text, vertical_slider};
|
||||||
use iced::Element;
|
use iced::{Element, Length};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
iced::run("Slider - Iced", Slider::update, Slider::view)
|
iced::run("Slider - Iced", Slider::update, Slider::view)
|
||||||
|
|
@ -56,9 +56,9 @@ impl Slider {
|
||||||
|
|
||||||
center(
|
center(
|
||||||
column![
|
column![
|
||||||
container(v_slider).center_x(),
|
container(v_slider).center_x(Length::Fill),
|
||||||
container(h_slider).center_x(),
|
container(h_slider).center_x(Length::Fill),
|
||||||
container(text).center_x()
|
container(text).center_x(Length::Fill)
|
||||||
]
|
]
|
||||||
.spacing(25),
|
.spacing(25),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ impl Tiger {
|
||||||
.on_toggle(Message::ToggleColorFilter);
|
.on_toggle(Message::ToggleColorFilter);
|
||||||
|
|
||||||
center(
|
center(
|
||||||
column![svg, container(apply_color_filter).center_x()]
|
column![svg, container(apply_color_filter).center_x(Length::Fill)]
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.height(Length::Fill),
|
.height(Length::Fill),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use iced::widget::{button, column, container, text};
|
use iced::widget::{button, center, column, text};
|
||||||
use iced::{system, Command, Element};
|
use iced::{system, Command, Element};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -136,6 +136,6 @@ impl Example {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
container(content).center().into()
|
center(content).into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -238,7 +238,10 @@ impl Todos {
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.max_width(800);
|
.max_width(800);
|
||||||
|
|
||||||
scrollable(container(content).center_x().padding(40)).into()
|
scrollable(
|
||||||
|
container(content).center_x(Length::Fill).padding(40),
|
||||||
|
)
|
||||||
|
.into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,10 +76,10 @@ impl Tour {
|
||||||
} else {
|
} else {
|
||||||
content
|
content
|
||||||
})
|
})
|
||||||
.center_x(),
|
.center_x(Length::Fill),
|
||||||
);
|
);
|
||||||
|
|
||||||
container(scrollable).center_y().into()
|
container(scrollable).center_y(Length::Fill).into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -669,7 +669,7 @@ fn ferris<'a>(
|
||||||
.filter_method(filter_method)
|
.filter_method(filter_method)
|
||||||
.width(width),
|
.width(width),
|
||||||
)
|
)
|
||||||
.center_x()
|
.center_x(Length::Fill)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn padded_button<Message: Clone>(label: &str) -> Button<'_, Message> {
|
fn padded_button<Message: Clone>(label: &str) -> Button<'_, Message> {
|
||||||
|
|
|
||||||
|
|
@ -122,9 +122,6 @@ where
|
||||||
|
|
||||||
/// Sets the [`Container`] to fill all the available space.
|
/// Sets the [`Container`] to fill all the available space.
|
||||||
///
|
///
|
||||||
/// This can be useful to quickly position content when chained with
|
|
||||||
/// alignment functions—like [`center`].
|
|
||||||
///
|
|
||||||
/// Calling this method is equivalent to chaining [`fill_x`] and
|
/// Calling this method is equivalent to chaining [`fill_x`] and
|
||||||
/// [`fill_y`].
|
/// [`fill_y`].
|
||||||
///
|
///
|
||||||
|
|
@ -159,20 +156,14 @@ where
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the [`Container`] to fill the available space in the horizontal axis
|
/// Sets the width of the [`Container`] and centers its contents horizontally.
|
||||||
/// and centers its contents there.
|
pub fn center_x(self, width: impl Into<Length>) -> Self {
|
||||||
pub fn center_x(mut self) -> Self {
|
self.width(width).align_x(alignment::Horizontal::Center)
|
||||||
self.width = Length::Fill;
|
|
||||||
self.horizontal_alignment = alignment::Horizontal::Center;
|
|
||||||
self
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the [`Container`] to fill the available space in the vertical axis
|
/// Sets the height of the [`Container`] and centers its contents vertically.
|
||||||
/// and centers its contents there.
|
pub fn center_y(self, height: impl Into<Length>) -> Self {
|
||||||
pub fn center_y(mut self) -> Self {
|
self.height(height).align_y(alignment::Vertical::Center)
|
||||||
self.height = Length::Fill;
|
|
||||||
self.vertical_alignment = alignment::Vertical::Center;
|
|
||||||
self
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Centers the contents in both the horizontal and vertical axes of the
|
/// Centers the contents in both the horizontal and vertical axes of the
|
||||||
|
|
@ -182,8 +173,10 @@ where
|
||||||
///
|
///
|
||||||
/// [`center_x`]: Self::center_x
|
/// [`center_x`]: Self::center_x
|
||||||
/// [`center_y`]: Self::center_y
|
/// [`center_y`]: Self::center_y
|
||||||
pub fn center(self) -> Self {
|
pub fn center(self, length: impl Into<Length>) -> Self {
|
||||||
self.center_x().center_y()
|
let length = length.into();
|
||||||
|
|
||||||
|
self.center_x(length).center_y(length)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets whether the contents of the [`Container`] should be clipped on
|
/// Sets whether the contents of the [`Container`] should be clipped on
|
||||||
|
|
|
||||||
|
|
@ -83,9 +83,10 @@ where
|
||||||
///
|
///
|
||||||
/// This is equivalent to:
|
/// This is equivalent to:
|
||||||
/// ```rust,no_run
|
/// ```rust,no_run
|
||||||
|
/// # use iced_widget::core::Length;
|
||||||
/// # use iced_widget::Container;
|
/// # use iced_widget::Container;
|
||||||
/// # fn container<A>(x: A) -> Container<'static, ()> { unreachable!() }
|
/// # fn container<A>(x: A) -> Container<'static, ()> { unreachable!() }
|
||||||
/// let centered = container("Centered!").center();
|
/// let centered = container("Centered!").center(Length::Fill);
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// [`Container`]: crate::Container
|
/// [`Container`]: crate::Container
|
||||||
|
|
@ -96,7 +97,7 @@ where
|
||||||
Theme: container::Catalog + 'a,
|
Theme: container::Catalog + 'a,
|
||||||
Renderer: core::Renderer,
|
Renderer: core::Renderer,
|
||||||
{
|
{
|
||||||
container(content).fill().center()
|
container(content).center(Length::Fill)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new [`Column`] with the given children.
|
/// Creates a new [`Column`] with the given children.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue