From f9dd5cbb099bbe44a57b6369be54a442363b7a8d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 12 Jul 2024 15:11:30 +0200 Subject: Introduce helper methods for alignment for all widgets --- core/src/widget/text.rs | 47 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) (limited to 'core/src/widget') diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index 081407e5..6ae95c8b 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -86,21 +86,56 @@ where self } + /// Centers the [`Text`], both horizontally and vertically. + pub fn center(self) -> Self { + self.center_x().center_y() + } + + /// Centers the [`Text`] horizontally. + pub fn center_x(self) -> Self { + self.align_x(alignment::center()) + } + + /// Aligns the [`Text`] to the left, the default. + pub fn align_left(self) -> Self { + self.align_x(alignment::left()) + } + + /// Aligns the [`Text`] to the right. + pub fn align_right(self) -> Self { + self.align_x(alignment::right()) + } + + /// Centers the [`Text`] vertically. + pub fn center_y(self) -> Self { + self.align_y(alignment::center()) + } + + /// Aligns the [`Text`] to the top, the default. + pub fn align_top(self) -> Self { + self.align_y(alignment::top()) + } + + /// Aligns the [`Text`] to the bottom. + pub fn align_bottom(self) -> Self { + self.align_y(alignment::bottom()) + } + /// Sets the [`alignment::Horizontal`] of the [`Text`]. - pub fn horizontal_alignment( + pub fn align_x( mut self, - alignment: alignment::Horizontal, + alignment: impl Into, ) -> Self { - self.horizontal_alignment = alignment; + self.horizontal_alignment = alignment.into(); self } /// Sets the [`alignment::Vertical`] of the [`Text`]. - pub fn vertical_alignment( + pub fn align_y( mut self, - alignment: alignment::Vertical, + alignment: impl Into, ) -> Self { - self.vertical_alignment = alignment; + self.vertical_alignment = alignment.into(); self } -- cgit From 76737351ea9e116291112b7d576d9ed4f6bb5c2a Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 12 Jul 2024 18:12:34 +0200 Subject: Re-export variants of `Length` and `alignment` types --- core/src/widget/text.rs | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) (limited to 'core/src/widget') diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index 6ae95c8b..990c5567 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -88,37 +88,8 @@ where /// Centers the [`Text`], both horizontally and vertically. pub fn center(self) -> Self { - self.center_x().center_y() - } - - /// Centers the [`Text`] horizontally. - pub fn center_x(self) -> Self { - self.align_x(alignment::center()) - } - - /// Aligns the [`Text`] to the left, the default. - pub fn align_left(self) -> Self { - self.align_x(alignment::left()) - } - - /// Aligns the [`Text`] to the right. - pub fn align_right(self) -> Self { - self.align_x(alignment::right()) - } - - /// Centers the [`Text`] vertically. - pub fn center_y(self) -> Self { - self.align_y(alignment::center()) - } - - /// Aligns the [`Text`] to the top, the default. - pub fn align_top(self) -> Self { - self.align_y(alignment::top()) - } - - /// Aligns the [`Text`] to the bottom. - pub fn align_bottom(self) -> Self { - self.align_y(alignment::bottom()) + self.align_x(alignment::Horizontal::Center) + .align_y(alignment::Vertical::Center) } /// Sets the [`alignment::Horizontal`] of the [`Text`]. -- cgit