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/alignment.rs | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'core/src/alignment.rs') diff --git a/core/src/alignment.rs b/core/src/alignment.rs index 51b7fca9..cacf7ce3 100644 --- a/core/src/alignment.rs +++ b/core/src/alignment.rs @@ -1,5 +1,30 @@ //! Align and position widgets. +/// Returns a value representing center alignment. +pub const fn center() -> Alignment { + Alignment::Center +} + +/// Returns a value representing left alignment. +pub const fn left() -> Horizontal { + Horizontal::Left +} + +/// Returns a value representing right alignment. +pub const fn right() -> Horizontal { + Horizontal::Right +} + +/// Returns a value representing top alignment. +pub const fn top() -> Vertical { + Vertical::Top +} + +/// Returns a value representing bottom alignment. +pub const fn bottom() -> Vertical { + Vertical::Bottom +} + /// Alignment on the axis of a container. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum Alignment { @@ -46,6 +71,16 @@ pub enum Horizontal { Right, } +impl From for Horizontal { + fn from(alignment: Alignment) -> Self { + match alignment { + Alignment::Start => Self::Left, + Alignment::Center => Self::Center, + Alignment::End => Self::Right, + } + } +} + /// The vertical [`Alignment`] of some resource. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum Vertical { @@ -58,3 +93,13 @@ pub enum Vertical { /// Align bottom Bottom, } + +impl From for Vertical { + fn from(alignment: Alignment) -> Self { + match alignment { + Alignment::Start => Self::Top, + Alignment::Center => Self::Center, + Alignment::End => Self::Bottom, + } + } +} -- cgit