Refactor alignment types into an alignment module
This commit is contained in:
parent
5fae6e59ff
commit
a0ad399622
54 changed files with 402 additions and 377 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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!(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue