From 65eb218d3d7ba52b2869a586a1480eeb3c8f84e4 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 21 Nov 2019 13:47:20 +0100 Subject: Move widgets from `core` to `native` and `web` Also made fields private and improved `Renderer` traits. --- native/src/element.rs | 57 +-------------------------------------------------- 1 file changed, 1 insertion(+), 56 deletions(-) (limited to 'native/src/element.rs') diff --git a/native/src/element.rs b/native/src/element.rs index 23f069f1..cb8aaf54 100644 --- a/native/src/element.rs +++ b/native/src/element.rs @@ -17,14 +17,6 @@ pub struct Element<'a, Message, Renderer> { pub(crate) widget: Box + 'a>, } -impl<'a, Message, Renderer> std::fmt::Debug for Element<'a, Message, Renderer> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Element") - .field("widget", &self.widget) - .finish() - } -} - impl<'a, Message, Renderer> Element<'a, Message, Renderer> where Renderer: crate::Renderer, @@ -127,37 +119,7 @@ where /// # } /// # /// # mod iced_wgpu { - /// # use iced_native::{ - /// # text, row, layout, Text, Size, Point, Rectangle, Layout, Row - /// # }; - /// # pub struct Renderer; - /// # - /// # impl iced_native::Renderer for Renderer { type Output = (); } - /// # - /// # impl iced_native::row::Renderer for Renderer { - /// # fn draw( - /// # &mut self, - /// # _column: &Row<'_, Message, Self>, - /// # _layout: Layout<'_>, - /// # _cursor_position: Point, - /// # ) {} - /// # } - /// # - /// # impl text::Renderer for Renderer { - /// # fn layout( - /// # &self, - /// # _text: &Text, - /// # _limits: &layout::Limits, - /// # ) -> layout::Node { - /// # layout::Node::new(Size::ZERO) - /// # } - /// # - /// # fn draw( - /// # &mut self, - /// # _text: &Text, - /// # _layout: Layout<'_>, - /// # ) {} - /// # } + /// # pub use iced_native::renderer::Null as Renderer; /// # } /// # /// # use counter::Counter; @@ -273,12 +235,6 @@ struct Map<'a, A, B, Renderer> { mapper: Box B>, } -impl<'a, A, B, Renderer> std::fmt::Debug for Map<'a, A, B, Renderer> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Map").field("widget", &self.widget).finish() - } -} - impl<'a, A, B, Renderer> Map<'a, A, B, Renderer> { pub fn new( widget: Box + 'a>, @@ -350,17 +306,6 @@ struct Explain<'a, Message, Renderer: crate::Renderer> { color: Color, } -impl<'a, Message, Renderer> std::fmt::Debug for Explain<'a, Message, Renderer> -where - Renderer: crate::Renderer, -{ - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Explain") - .field("element", &self.element) - .finish() - } -} - impl<'a, Message, Renderer> Explain<'a, Message, Renderer> where Renderer: crate::Renderer, -- cgit From a7dba612f03e58d7bd9527499d893987986b347c Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 22 Nov 2019 19:36:57 +0100 Subject: Write docs for `iced` and `iced_native` --- native/src/element.rs | 64 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 25 deletions(-) (limited to 'native/src/element.rs') diff --git a/native/src/element.rs b/native/src/element.rs index 3bf24317..5335fdc1 100644 --- a/native/src/element.rs +++ b/native/src/element.rs @@ -33,31 +33,6 @@ where } } - pub fn width(&self) -> Length { - self.widget.width() - } - - pub fn height(&self) -> Length { - self.widget.height() - } - - pub fn layout( - &self, - renderer: &Renderer, - limits: &layout::Limits, - ) -> layout::Node { - self.widget.layout(renderer, limits) - } - - pub fn draw( - &self, - renderer: &mut Renderer, - layout: Layout<'_>, - cursor_position: Point, - ) -> Renderer::Output { - self.widget.draw(renderer, layout, cursor_position) - } - /// Applies a transformation to the produced message of the [`Element`]. /// /// This method is useful when you want to decouple different parts of your @@ -225,6 +200,45 @@ where } } + /// Returns the width of the [`Element`]. + /// + /// [`Element`]: struct.Element.html + pub fn width(&self) -> Length { + self.widget.width() + } + + /// Returns the height of the [`Element`]. + /// + /// [`Element`]: struct.Element.html + pub fn height(&self) -> Length { + self.widget.height() + } + + /// Computes the layout of the [`Element`] in the given [`Limits`]. + /// + /// [`Element`]: struct.Element.html + /// [`Limits`]: layout/struct.Limits.html + pub fn layout( + &self, + renderer: &Renderer, + limits: &layout::Limits, + ) -> layout::Node { + self.widget.layout(renderer, limits) + } + + /// Draws the [`Element`] and its children using the given [`Layout`]. + /// + /// [`Element`]: struct.Element.html + /// [`Layout`]: layout/struct.Layout.html + pub fn draw( + &self, + renderer: &mut Renderer, + layout: Layout<'_>, + cursor_position: Point, + ) -> Renderer::Output { + self.widget.draw(renderer, layout, cursor_position) + } + pub(crate) fn hash_layout(&self, state: &mut Hasher) { self.widget.hash_layout(state); } -- cgit From d136b7ce648cde0dcdcc5388d8cb82b3e7e0fc58 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 22 Nov 2019 21:16:40 +0100 Subject: Uncomment missing debug implementations rule --- native/src/element.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'native/src/element.rs') diff --git a/native/src/element.rs b/native/src/element.rs index 5335fdc1..d4237fd0 100644 --- a/native/src/element.rs +++ b/native/src/element.rs @@ -13,6 +13,7 @@ use crate::{ /// [built-in widget]: widget/index.html#built-in-widgets /// [`Widget`]: widget/trait.Widget.html /// [`Element`]: struct.Element.html +#[allow(missing_debug_implementations)] pub struct Element<'a, Message, Renderer> { pub(crate) widget: Box + 'a>, } -- cgit