diff options
Diffstat (limited to 'core/src/align.rs')
| -rw-r--r-- | core/src/align.rs | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/core/src/align.rs b/core/src/align.rs new file mode 100644 index 00000000..5876e0f8 --- /dev/null +++ b/core/src/align.rs @@ -0,0 +1,47 @@ +/// Alignment on the cross axis of a container. +/// +///   * On a [`Column`], it describes __horizontal__ alignment. +///   * On a [`Row`], it describes __vertical__ alignment. +/// +/// [`Column`]: widget/struct.Column.html +/// [`Row`]: widget/struct.Row.html +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Align { +    /// Align at the start of the cross axis. +    Start, + +    /// Align at the center of the cross axis. +    Center, + +    /// Align at the end of the cross axis. +    End, + +    /// Stretch over the cross axis. +    Stretch, +} + +#[cfg(feature = "stretch")] +#[doc(hidden)] +impl From<Align> for stretch::style::AlignItems { +    fn from(align: Align) -> Self { +        match align { +            Align::Start => stretch::style::AlignItems::FlexStart, +            Align::Center => stretch::style::AlignItems::Center, +            Align::End => stretch::style::AlignItems::FlexEnd, +            Align::Stretch => stretch::style::AlignItems::Stretch, +        } +    } +} + +#[cfg(feature = "stretch")] +#[doc(hidden)] +impl From<Align> for stretch::style::AlignSelf { +    fn from(align: Align) -> Self { +        match align { +            Align::Start => stretch::style::AlignSelf::FlexStart, +            Align::Center => stretch::style::AlignSelf::Center, +            Align::End => stretch::style::AlignSelf::FlexEnd, +            Align::Stretch => stretch::style::AlignSelf::Stretch, +        } +    } +} | 
