diff options
author | 2021-09-20 15:09:55 +0700 | |
---|---|---|
committer | 2021-09-20 15:14:08 +0700 | |
commit | a0ad3996225601aaa1ebe051cba115374b55c80e (patch) | |
tree | 8420a91cd319a63b1ed257a6334453a1a673bdfb /core/src/alignment.rs | |
parent | 5fae6e59ffbc5913761df638dc7f0c35b7f43bc9 (diff) | |
download | iced-a0ad3996225601aaa1ebe051cba115374b55c80e.tar.gz iced-a0ad3996225601aaa1ebe051cba115374b55c80e.tar.bz2 iced-a0ad3996225601aaa1ebe051cba115374b55c80e.zip |
Refactor alignment types into an `alignment` module
Diffstat (limited to 'core/src/alignment.rs')
-rw-r--r-- | core/src/alignment.rs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/core/src/alignment.rs b/core/src/alignment.rs new file mode 100644 index 00000000..8c561d9d --- /dev/null +++ b/core/src/alignment.rs @@ -0,0 +1,63 @@ +//! Align and position widgets. + +/// Alignment on the axis of a container. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Alignment { + /// Align at the start of the axis. + Start, + + /// Align at the center of the axis. + Center, + + /// Align at the end of the axis. + End, + + /// Fill the entire axis. + Fill, +} + +impl From<Horizontal> for Alignment { + fn from(horizontal: Horizontal) -> Self { + match horizontal { + Horizontal::Left => Self::Start, + Horizontal::Center => Self::Center, + Horizontal::Right => Self::End, + } + } +} + +impl From<Vertical> for Alignment { + fn from(vertical: Vertical) -> Self { + match vertical { + Vertical::Top => Self::Start, + Vertical::Center => Self::Center, + Vertical::Bottom => Self::End, + } + } +} + +/// The horizontal [`Alignment`] of some resource. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Horizontal { + /// Align left + Left, + + /// Horizontally centered + Center, + + /// Align right + Right, +} + +/// The vertical [`Alignment`] of some resource. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Vertical { + /// Align top + Top, + + /// Vertically centered + Center, + + /// Align bottom + Bottom, +} |