From 2303111e09d806ef2a652bddc2b73be6dccf6ae2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sun, 10 Nov 2019 01:55:32 +0100 Subject: Draft new layout API --- native/src/style.rs | 156 ---------------------------------------------------- 1 file changed, 156 deletions(-) delete mode 100644 native/src/style.rs (limited to 'native/src/style.rs') diff --git a/native/src/style.rs b/native/src/style.rs deleted file mode 100644 index 70a7ff74..00000000 --- a/native/src/style.rs +++ /dev/null @@ -1,156 +0,0 @@ -use crate::{Align, Justify, Length}; - -use stretch::style; - -/// The appearance of a [`Node`]. -/// -/// [`Node`]: struct.Node.html -#[derive(Debug, Clone, Copy)] -pub struct Style(pub(crate) style::Style); - -impl Default for Style { - fn default() -> Style { - Style::new() - } -} - -impl Style { - /// Creates a new [`Style`]. - /// - /// [`Style`]: struct.Style.html - pub fn new() -> Self { - Style(style::Style { - align_items: style::AlignItems::FlexStart, - justify_content: style::JustifyContent::FlexStart, - ..style::Style::default() - }) - } - - /// Defines the width of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn width(mut self, width: Length) -> Self { - self.0.size.width = into_dimension(width); - self - } - - /// Defines the height of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn height(mut self, height: Length) -> Self { - self.0.size.height = into_dimension(height); - self - } - - /// Defines the minimum width of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn min_width(mut self, min_width: Length) -> Self { - self.0.min_size.width = into_dimension(min_width); - self - } - - /// Defines the maximum width of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn max_width(mut self, max_width: Length) -> Self { - self.0.max_size.width = into_dimension(max_width); - self - } - - /// Defines the minimum height of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn min_height(mut self, min_height: Length) -> Self { - self.0.min_size.height = into_dimension(min_height); - self - } - - /// Defines the maximum height of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn max_height(mut self, max_height: Length) -> Self { - self.0.max_size.height = into_dimension(max_height); - self - } - - pub fn align_items(mut self, align: Align) -> Self { - self.0.align_items = into_align_items(align); - self - } - - pub fn justify_content(mut self, justify: Justify) -> Self { - self.0.justify_content = into_justify_content(justify); - self - } - - /// Sets the alignment of a [`Node`]. - /// - /// If the [`Node`] is inside a... - /// - /// * [`Column`], this setting will affect its __horizontal__ alignment. - /// * [`Row`], this setting will affect its __vertical__ alignment. - /// - /// [`Node`]: struct.Node.html - /// [`Column`]: widget/struct.Column.html - /// [`Row`]: widget/struct.Row.html - pub fn align_self(mut self, align: Option) -> Self { - self.0.align_self = match align { - Some(align) => into_align_self(align), - None => stretch::style::AlignSelf::Auto, - }; - - self - } - - /// Sets the padding of a [`Node`]. - /// - /// [`Node`]: struct.Node.html - pub fn padding(mut self, units: u16) -> Self { - self.0.padding = stretch::geometry::Rect { - start: style::Dimension::Points(units as f32), - end: style::Dimension::Points(units as f32), - top: style::Dimension::Points(units as f32), - bottom: style::Dimension::Points(units as f32), - }; - - self - } -} - -fn into_dimension(length: Length) -> style::Dimension { - match length { - Length::Shrink => style::Dimension::Undefined, - Length::Fill => style::Dimension::Percent(1.0), - Length::Units(units) => style::Dimension::Points(units as f32), - } -} - -fn into_align_items(align: Align) -> style::AlignItems { - match align { - Align::Start => style::AlignItems::FlexStart, - Align::Center => style::AlignItems::Center, - Align::End => style::AlignItems::FlexEnd, - Align::Stretch => style::AlignItems::Stretch, - } -} - -fn into_align_self(align: Align) -> style::AlignSelf { - match align { - Align::Start => style::AlignSelf::FlexStart, - Align::Center => style::AlignSelf::Center, - Align::End => style::AlignSelf::FlexEnd, - Align::Stretch => style::AlignSelf::Stretch, - } -} - -fn into_justify_content(justify: Justify) -> style::JustifyContent { - match justify { - Justify::Start => style::JustifyContent::FlexStart, - Justify::Center => style::JustifyContent::Center, - Justify::End => style::JustifyContent::FlexEnd, - Justify::SpaceBetween => style::JustifyContent::SpaceBetween, - Justify::SpaceAround => style::JustifyContent::SpaceAround, - Justify::SpaceEvenly => style::JustifyContent::SpaceEvenly, - } -} -- cgit