diff options
Diffstat (limited to 'native/src/widget/column.rs')
-rw-r--r-- | native/src/widget/column.rs | 52 |
1 files changed, 12 insertions, 40 deletions
diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs index 086d05ef..d0446ec9 100644 --- a/native/src/widget/column.rs +++ b/native/src/widget/column.rs @@ -1,6 +1,6 @@ use std::hash::Hash; -use crate::{Element, Event, Hasher, Layout, Node, Point, Style, Widget}; +use crate::{layout, Element, Event, Hasher, Layout, Point, Rectangle, Widget}; /// A container that distributes its contents vertically. pub type Column<'a, Message, Renderer> = @@ -11,48 +11,20 @@ impl<'a, Message, Renderer> Widget<Message, Renderer> where Renderer: self::Renderer, { - fn node(&self, renderer: &Renderer) -> Node { - let mut children: Vec<Node> = self - .children - .iter() - .map(|child| { - let mut node = child.widget.node(renderer); - - let mut style = node.0.style(); - style.margin.bottom = - stretch::style::Dimension::Points(f32::from(self.spacing)); - - node.0.set_style(style); - node - }) - .collect(); - - if let Some(node) = children.last_mut() { - let mut style = node.0.style(); - style.margin.bottom = stretch::style::Dimension::Undefined; - - node.0.set_style(style); - } - - let mut style = Style::default() - .width(self.width) - .height(self.height) - .max_width(self.max_width) - .max_height(self.max_height) - .padding(self.padding) - .align_self(self.align_self) - .align_items(self.align_items) - .justify_content(self.justify_content); - - style.0.flex_direction = stretch::style::FlexDirection::Column; - - Node::with_children(style, children) + fn layout(&self, renderer: &Renderer, limits: &layout::Limits) -> Layout { + // TODO + Layout::new(Rectangle { + x: 0.0, + y: 0.0, + width: 0.0, + height: 0.0, + }) } fn on_event( &mut self, event: Event, - layout: Layout<'_>, + layout: &Layout, cursor_position: Point, messages: &mut Vec<Message>, renderer: &Renderer, @@ -73,7 +45,7 @@ where fn draw( &self, renderer: &mut Renderer, - layout: Layout<'_>, + layout: &Layout, cursor_position: Point, ) -> Renderer::Output { renderer.draw(&self, layout, cursor_position) @@ -100,7 +72,7 @@ pub trait Renderer: crate::Renderer + Sized { fn draw<Message>( &mut self, row: &Column<'_, Message, Self>, - layout: Layout<'_>, + layout: &Layout, cursor_position: Point, ) -> Self::Output; } |