summaryrefslogtreecommitdiffstats
path: root/native/src/widget/column.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-10 01:55:32 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-10 01:55:32 +0100
commit2303111e09d806ef2a652bddc2b73be6dccf6ae2 (patch)
treeba57c5a2fe67d8a58d4f9b32c2b32fee32932f06 /native/src/widget/column.rs
parent839e039dbf2fb89dcb8c141503740777d2af2eb3 (diff)
downloadiced-2303111e09d806ef2a652bddc2b73be6dccf6ae2.tar.gz
iced-2303111e09d806ef2a652bddc2b73be6dccf6ae2.tar.bz2
iced-2303111e09d806ef2a652bddc2b73be6dccf6ae2.zip
Draft new layout API
Diffstat (limited to '')
-rw-r--r--native/src/widget/column.rs52
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;
}