Refactor alignment types into an alignment module

This commit is contained in:
Héctor Ramón Jiménez 2021-09-20 15:09:55 +07:00
parent 5fae6e59ff
commit a0ad399622
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
54 changed files with 402 additions and 377 deletions

View file

@ -1,4 +1,5 @@
use crate::{css, Align, Bus, Css, Element, Length, Padding, Widget};
use crate::css;
use crate::{Alignment, Bus, Css, Element, Length, Padding, Widget};
use dodrio::bumpalo;
use std::u32;
@ -14,7 +15,7 @@ pub struct Column<'a, Message> {
height: Length,
max_width: u32,
max_height: u32,
align_items: Align,
align_items: Alignment,
children: Vec<Element<'a, Message>>,
}
@ -33,7 +34,7 @@ impl<'a, Message> Column<'a, Message> {
height: Length::Shrink,
max_width: u32::MAX,
max_height: u32::MAX,
align_items: Align::Start,
align_items: Alignment::Start,
children,
}
}
@ -79,7 +80,7 @@ impl<'a, Message> Column<'a, Message> {
}
/// Sets the horizontal alignment of the contents of the [`Column`] .
pub fn align_items(mut self, align: Align) -> Self {
pub fn align_items(mut self, align: Alignment) -> Self {
self.align_items = align;
self
}
@ -129,7 +130,7 @@ impl<'a, Message> Widget<Message> for Column<'a, Message> {
css::max_length(self.max_width),
css::max_length(self.max_height),
css::padding(self.padding),
css::align(self.align_items)
css::alignment(self.align_items)
).into_bump_str()
)
.children(children)

View file

@ -1,5 +1,8 @@
//! Decorate content and apply alignment.
use crate::{bumpalo, css, Align, Bus, Css, Element, Length, Padding, Widget};
use crate::alignment::{self, Alignment};
use crate::bumpalo;
use crate::css;
use crate::{Bus, Css, Element, Length, Padding, Widget};
pub use iced_style::container::{Style, StyleSheet};
@ -14,8 +17,8 @@ pub struct Container<'a, Message> {
max_width: u32,
#[allow(dead_code)]
max_height: u32,
horizontal_alignment: Align,
vertical_alignment: Align,
horizontal_alignment: alignment::Horizontal,
vertical_alignment: alignment::Vertical,
style_sheet: Box<dyn StyleSheet>,
content: Element<'a, Message>,
}
@ -34,8 +37,8 @@ impl<'a, Message> Container<'a, Message> {
height: Length::Shrink,
max_width: u32::MAX,
max_height: u32::MAX,
horizontal_alignment: Align::Start,
vertical_alignment: Align::Start,
horizontal_alignment: alignment::Horizontal::Left,
vertical_alignment: alignment::Vertical::Top,
style_sheet: Default::default(),
content: content.into(),
}
@ -73,14 +76,14 @@ impl<'a, Message> Container<'a, Message> {
/// Centers the contents in the horizontal axis of the [`Container`].
pub fn center_x(mut self) -> Self {
self.horizontal_alignment = Align::Center;
self.horizontal_alignment = alignment::Horizontal::Center;
self
}
/// Centers the contents in the vertical axis of the [`Container`].
pub fn center_y(mut self) -> Self {
self.vertical_alignment = Align::Center;
self.vertical_alignment = alignment::Vertical::Center;
self
}
@ -122,8 +125,8 @@ where
css::length(self.height),
css::max_length(self.max_width),
css::padding(self.padding),
css::align(self.horizontal_alignment),
css::align(self.vertical_alignment),
css::alignment(Alignment::from(self.horizontal_alignment)),
css::alignment(Alignment::from(self.vertical_alignment)),
style.background.map(css::background).unwrap_or(String::from("initial")),
style.text_color.map(css::color).unwrap_or(String::from("inherit")),
style.border_width,

View file

@ -1,4 +1,5 @@
use crate::{css, Align, Bus, Css, Element, Length, Padding, Widget};
use crate::css;
use crate::{Alignment, Bus, Css, Element, Length, Padding, Widget};
use dodrio::bumpalo;
use std::u32;
@ -14,7 +15,7 @@ pub struct Row<'a, Message> {
height: Length,
max_width: u32,
max_height: u32,
align_items: Align,
align_items: Alignment,
children: Vec<Element<'a, Message>>,
}
@ -33,7 +34,7 @@ impl<'a, Message> Row<'a, Message> {
height: Length::Shrink,
max_width: u32::MAX,
max_height: u32::MAX,
align_items: Align::Start,
align_items: Alignment::Start,
children,
}
}
@ -79,7 +80,7 @@ impl<'a, Message> Row<'a, Message> {
}
/// Sets the vertical alignment of the contents of the [`Row`] .
pub fn align_items(mut self, align: Align) -> Self {
pub fn align_items(mut self, align: Alignment) -> Self {
self.align_items = align;
self
}
@ -129,7 +130,7 @@ impl<'a, Message> Widget<Message> for Row<'a, Message> {
css::max_length(self.max_width),
css::max_length(self.max_height),
css::padding(self.padding),
css::align(self.align_items)
css::alignment(self.align_items)
).into_bump_str()
)
.children(children)

View file

@ -1,7 +1,7 @@
//! Navigate an endless amount of content with a scrollbar.
use crate::{
bumpalo, css, Align, Bus, Column, Css, Element, Length, Padding, Widget,
};
use crate::bumpalo;
use crate::css;
use crate::{Alignment, Bus, Column, Css, Element, Length, Padding, Widget};
pub use iced_style::scrollable::{Scrollbar, Scroller, StyleSheet};
@ -72,7 +72,7 @@ impl<'a, Message> Scrollable<'a, Message> {
}
/// Sets the horizontal alignment of the contents of the [`Scrollable`] .
pub fn align_items(mut self, align_items: Align) -> Self {
pub fn align_items(mut self, align_items: Alignment) -> Self {
self.content = self.content.align_items(align_items);
self
}

View file

@ -1,7 +1,6 @@
use crate::{
css, Bus, Color, Css, Element, Font, HorizontalAlignment, Length,
VerticalAlignment, Widget,
};
use crate::alignment;
use crate::css;
use crate::{Bus, Color, Css, Element, Font, Length, Widget};
use dodrio::bumpalo;
/// A paragraph of text.
@ -22,8 +21,8 @@ pub struct Text {
font: Font,
width: Length,
height: Length,
horizontal_alignment: HorizontalAlignment,
vertical_alignment: VerticalAlignment,
horizontal_alignment: alignment::Horizontal,
vertical_alignment: alignment::Vertical,
}
impl Text {
@ -36,8 +35,8 @@ impl Text {
font: Font::Default,
width: Length::Shrink,
height: Length::Shrink,
horizontal_alignment: HorizontalAlignment::Left,
vertical_alignment: VerticalAlignment::Top,
horizontal_alignment: alignment::Horizontal::Left,
vertical_alignment: alignment::Vertical::Top,
}
}
@ -74,14 +73,17 @@ impl Text {
/// Sets the [`HorizontalAlignment`] of the [`Text`].
pub fn horizontal_alignment(
mut self,
alignment: HorizontalAlignment,
alignment: alignment::Horizontal,
) -> Self {
self.horizontal_alignment = alignment;
self
}
/// Sets the [`VerticalAlignment`] of the [`Text`].
pub fn vertical_alignment(mut self, alignment: VerticalAlignment) -> Self {
pub fn vertical_alignment(
mut self,
alignment: alignment::Vertical,
) -> Self {
self.vertical_alignment = alignment;
self
}
@ -111,9 +113,9 @@ impl<'a, Message> Widget<Message> for Text {
let height = css::length(self.height);
let text_align = match self.horizontal_alignment {
HorizontalAlignment::Left => "left",
HorizontalAlignment::Center => "center",
HorizontalAlignment::Right => "right",
alignment::Horizontal::Left => "left",
alignment::Horizontal::Center => "center",
alignment::Horizontal::Right => "right",
};
let style = bumpalo::format!(