diff options
Diffstat (limited to '')
-rw-r--r-- | native/src/element.rs (renamed from src/element.rs) | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/src/element.rs b/native/src/element.rs index 70d06f42..dd5ce621 100644 --- a/src/element.rs +++ b/native/src/element.rs @@ -1,7 +1,7 @@ use stretch::{geometry, result}; use crate::{ - renderer, Event, Hasher, Layout, MouseCursor, Node, Point, Widget, + renderer, Color, Event, Hasher, Layout, MouseCursor, Node, Point, Widget, }; /// A generic [`Widget`]. @@ -87,7 +87,7 @@ impl<'a, Message, Renderer> Element<'a, Message, Renderer> { /// /// ``` /// # mod counter { - /// # use iced::{button, Button}; + /// # use iced_native::{button, Button}; /// # /// # #[derive(Debug, Clone, Copy)] /// # pub enum Message {} @@ -101,19 +101,21 @@ impl<'a, Message, Renderer> Element<'a, Message, Renderer> { /// # } /// # /// # mod iced_wgpu { - /// # use iced::{ - /// # button, MouseCursor, Node, Point, Rectangle, Style, + /// # use iced_native::{ + /// # button, Button, MouseCursor, Node, Point, Rectangle, Style, Layout /// # }; /// # pub struct Renderer; /// # /// # impl button::Renderer for Renderer { - /// # fn draw( + /// # fn node<Message>(&self, _button: &Button<'_, Message>) -> Node { + /// # Node::new(Style::default()) + /// # } + /// # + /// # fn draw<Message>( /// # &mut self, + /// # _button: &Button<'_, Message>, + /// # _layout: Layout<'_>, /// # _cursor_position: Point, - /// # _bounds: Rectangle, - /// # _state: &button::State, - /// # _label: &str, - /// # _class: button::Class, /// # ) -> MouseCursor { /// # MouseCursor::OutOfBounds /// # } @@ -130,7 +132,7 @@ impl<'a, Message, Renderer> Element<'a, Message, Renderer> { /// # pub enum Message { /// # Counter(usize, counter::Message) /// # } - /// use iced::{Element, Row}; + /// use iced_native::{Element, Row}; /// use iced_wgpu::Renderer; /// /// impl ManyCounters { @@ -210,20 +212,23 @@ impl<'a, Message, Renderer> Element<'a, Message, Renderer> { /// /// [`Element`]: struct.Element.html /// [`Renderer`]: trait.Renderer.html - pub fn explain( + pub fn explain<C: Into<Color>>( self, - color: Renderer::Color, + color: C, ) -> Element<'a, Message, Renderer> where Message: 'static, Renderer: 'a + renderer::Debugger, { Element { - widget: Box::new(Explain::new(self, color)), + widget: Box::new(Explain::new(self, color.into())), } } - pub(crate) fn compute_layout(&self, renderer: &Renderer) -> result::Layout { + pub(crate) fn compute_layout( + &self, + renderer: &mut Renderer, + ) -> result::Layout { let node = self.widget.node(renderer); node.0.compute_layout(geometry::Size::undefined()).unwrap() @@ -264,7 +269,7 @@ impl<'a, A, B, Renderer> Widget<B, Renderer> for Map<'a, A, B, Renderer> where A: Copy, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { self.widget.node(renderer) } @@ -306,7 +311,7 @@ where struct Explain<'a, Message, Renderer: renderer::Debugger> { element: Element<'a, Message, Renderer>, - color: Renderer::Color, + color: Color, } impl<'a, Message, Renderer> std::fmt::Debug for Explain<'a, Message, Renderer> @@ -324,10 +329,7 @@ impl<'a, Message, Renderer> Explain<'a, Message, Renderer> where Renderer: renderer::Debugger, { - fn new( - element: Element<'a, Message, Renderer>, - color: Renderer::Color, - ) -> Self { + fn new(element: Element<'a, Message, Renderer>, color: Color) -> Self { Explain { element, color } } } @@ -337,7 +339,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer> where Renderer: renderer::Debugger, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { self.element.widget.node(renderer) } |