summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-05-13 17:56:02 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-05-13 17:56:02 +0200
commit05f69f495e9b52e9a7d7bada420558d4c4f6730c (patch)
tree8e1610757754831268ad0bbf5df9c8a4ea78144e /widget
parentb30d34f728fdae65d4d2cb0afe2dcade9b4bb0dc (diff)
downloadiced-05f69f495e9b52e9a7d7bada420558d4c4f6730c.tar.gz
iced-05f69f495e9b52e9a7d7bada420558d4c4f6730c.tar.bz2
iced-05f69f495e9b52e9a7d7bada420558d4c4f6730c.zip
Ask for explicit `Length` in `center_*` methods
Diffstat (limited to 'widget')
-rw-r--r--widget/src/container.rs27
-rw-r--r--widget/src/helpers.rs5
2 files changed, 13 insertions, 19 deletions
diff --git a/widget/src/container.rs b/widget/src/container.rs
index 8b6638d4..51967707 100644
--- a/widget/src/container.rs
+++ b/widget/src/container.rs
@@ -122,9 +122,6 @@ where
/// 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
/// [`fill_y`].
///
@@ -159,20 +156,14 @@ where
self
}
- /// Sets the [`Container`] to fill the available space in the horizontal axis
- /// and centers its contents there.
- pub fn center_x(mut self) -> Self {
- self.width = Length::Fill;
- self.horizontal_alignment = alignment::Horizontal::Center;
- self
+ /// Sets the width of the [`Container`] and centers its contents horizontally.
+ pub fn center_x(self, width: impl Into<Length>) -> Self {
+ self.width(width).align_x(alignment::Horizontal::Center)
}
- /// Sets the [`Container`] to fill the available space in the vertical axis
- /// and centers its contents there.
- pub fn center_y(mut self) -> Self {
- self.height = Length::Fill;
- self.vertical_alignment = alignment::Vertical::Center;
- self
+ /// Sets the height of the [`Container`] and centers its contents vertically.
+ pub fn center_y(self, height: impl Into<Length>) -> Self {
+ self.height(height).align_y(alignment::Vertical::Center)
}
/// Centers the contents in both the horizontal and vertical axes of the
@@ -182,8 +173,10 @@ where
///
/// [`center_x`]: Self::center_x
/// [`center_y`]: Self::center_y
- pub fn center(self) -> Self {
- self.center_x().center_y()
+ pub fn center(self, length: impl Into<Length>) -> Self {
+ let length = length.into();
+
+ self.center_x(length).center_y(length)
}
/// Sets whether the contents of the [`Container`] should be clipped on
diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs
index fd8614f5..a1ecd9d1 100644
--- a/widget/src/helpers.rs
+++ b/widget/src/helpers.rs
@@ -83,9 +83,10 @@ where
///
/// This is equivalent to:
/// ```rust,no_run
+/// # use iced_widget::core::Length;
/// # use iced_widget::Container;
/// # fn container<A>(x: A) -> Container<'static, ()> { unreachable!() }
-/// let centered = container("Centered!").center();
+/// let centered = container("Centered!").center(Length::Fill);
/// ```
///
/// [`Container`]: crate::Container
@@ -96,7 +97,7 @@ where
Theme: container::Catalog + 'a,
Renderer: core::Renderer,
{
- container(content).fill().center()
+ container(content).center(Length::Fill)
}
/// Creates a new [`Column`] with the given children.