diff options
Diffstat (limited to '')
-rw-r--r-- | web/src/widget/column.rs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/web/src/widget/column.rs b/web/src/widget/column.rs new file mode 100644 index 00000000..84068ce6 --- /dev/null +++ b/web/src/widget/column.rs @@ -0,0 +1,48 @@ +use crate::{Align, Element, Widget}; + +pub struct Column<'a, Message> { + children: Vec<Element<'a, Message>>, +} + +impl<'a, Message> Column<'a, Message> { + pub fn new() -> Self { + Self { + children: Vec::new(), + } + } + + pub fn spacing(self, _spacing: u16) -> Self { + self + } + + pub fn padding(self, _padding: u16) -> Self { + self + } + + pub fn max_width(self, _max_width: u16) -> Self { + self + } + + pub fn align_items(self, _align: Align) -> Self { + self + } + + pub fn push<E>(mut self, element: E) -> Self + where + E: Into<Element<'a, Message>>, + { + self.children.push(element.into()); + self + } +} + +impl<'a, Message> Widget<Message> for Column<'a, Message> {} + +impl<'a, Message> From<Column<'a, Message>> for Element<'a, Message> +where + Message: 'static, +{ + fn from(column: Column<'a, Message>) -> Element<'a, Message> { + Element::new(column) + } +} |