summaryrefslogtreecommitdiffstats
path: root/native/src/element.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/element.rs
parent839e039dbf2fb89dcb8c141503740777d2af2eb3 (diff)
downloadiced-2303111e09d806ef2a652bddc2b73be6dccf6ae2.tar.gz
iced-2303111e09d806ef2a652bddc2b73be6dccf6ae2.tar.bz2
iced-2303111e09d806ef2a652bddc2b73be6dccf6ae2.zip
Draft new layout API
Diffstat (limited to 'native/src/element.rs')
-rw-r--r--native/src/element.rs36
1 files changed, 16 insertions, 20 deletions
diff --git a/native/src/element.rs b/native/src/element.rs
index be64a981..acae1135 100644
--- a/native/src/element.rs
+++ b/native/src/element.rs
@@ -1,6 +1,4 @@
-use stretch::{geometry, result};
-
-use crate::{renderer, Color, Event, Hasher, Layout, Node, Point, Widget};
+use crate::{layout, renderer, Color, Event, Hasher, Layout, Point, Widget};
/// A generic [`Widget`].
///
@@ -41,14 +39,18 @@ where
}
}
- pub fn node(&self, renderer: &Renderer) -> Node {
- self.widget.node(renderer)
+ pub fn layout(
+ &self,
+ renderer: &Renderer,
+ limits: &layout::Limits,
+ ) -> Layout {
+ self.widget.layout(renderer, limits)
}
pub fn draw(
&self,
renderer: &mut Renderer,
- layout: Layout<'_>,
+ layout: &Layout,
cursor_position: Point,
) -> Renderer::Output {
self.widget.draw(renderer, layout, cursor_position)
@@ -247,12 +249,6 @@ where
}
}
- pub(crate) fn compute_layout(&self, renderer: &Renderer) -> result::Layout {
- let node = self.widget.node(renderer);
-
- node.0.compute_layout(geometry::Size::undefined()).unwrap()
- }
-
pub(crate) fn hash_layout(&self, state: &mut Hasher) {
self.widget.hash_layout(state);
}
@@ -289,14 +285,14 @@ where
A: Clone,
Renderer: crate::Renderer,
{
- fn node(&self, renderer: &Renderer) -> Node {
- self.widget.node(renderer)
+ fn layout(&self, renderer: &Renderer, limits: &layout::Limits) -> Layout {
+ self.widget.layout(renderer, limits)
}
fn on_event(
&mut self,
event: Event,
- layout: Layout<'_>,
+ layout: &Layout,
cursor_position: Point,
messages: &mut Vec<B>,
renderer: &Renderer,
@@ -320,7 +316,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- layout: Layout<'_>,
+ layout: &Layout,
cursor_position: Point,
) -> Renderer::Output {
self.widget.draw(renderer, layout, cursor_position)
@@ -361,14 +357,14 @@ impl<'a, Message, Renderer> Widget<Message, Renderer>
where
Renderer: crate::Renderer + renderer::Debugger,
{
- fn node(&self, renderer: &Renderer) -> Node {
- self.element.widget.node(renderer)
+ fn layout(&self, renderer: &Renderer, limits: &layout::Limits) -> Layout {
+ self.element.widget.layout(renderer, limits)
}
fn on_event(
&mut self,
event: Event,
- layout: Layout<'_>,
+ layout: &Layout,
cursor_position: Point,
messages: &mut Vec<Message>,
renderer: &Renderer,
@@ -385,7 +381,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- layout: Layout<'_>,
+ layout: &Layout,
cursor_position: Point,
) -> Renderer::Output {
renderer.explain(