From 01c5004959c9b11f2580840f4553ad7d706f4564 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 11 Feb 2022 22:07:21 +0700 Subject: Allow pure widgets to borrow from `Application` data :tada: --- pure/src/widget/column.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'pure/src/widget/column.rs') diff --git a/pure/src/widget/column.rs b/pure/src/widget/column.rs index 2f70282a..716fd714 100644 --- a/pure/src/widget/column.rs +++ b/pure/src/widget/column.rs @@ -11,21 +11,23 @@ use iced_native::{ use std::any::{self, Any}; -pub struct Column { +pub struct Column<'a, Message, Renderer> { spacing: u16, padding: Padding, width: Length, height: Length, align_items: Alignment, - children: Vec>, + children: Vec>, } -impl<'a, Message, Renderer> Column { +impl<'a, Message, Renderer> Column<'a, Message, Renderer> { pub fn new() -> Self { Self::with_children(Vec::new()) } - pub fn with_children(children: Vec>) -> Self { + pub fn with_children( + children: Vec>, + ) -> Self { Column { spacing: 0, padding: Padding::ZERO, @@ -63,14 +65,15 @@ impl<'a, Message, Renderer> Column { pub fn push( mut self, - child: impl Into>, + child: impl Into>, ) -> Self { self.children.push(child.into()); self } } -impl Widget for Column +impl<'a, Message, Renderer> Widget + for Column<'a, Message, Renderer> where Renderer: iced_native::Renderer, { @@ -115,7 +118,7 @@ where fn on_event( &mut self, - tree: &mut Tree, + tree: &mut Tree, event: Event, layout: Layout<'_>, cursor_position: Point, @@ -143,7 +146,7 @@ where fn mouse_interaction( &self, - tree: &Tree, + tree: &Tree, layout: Layout<'_>, cursor_position: Point, viewport: &Rectangle, @@ -168,7 +171,7 @@ where fn draw( &self, - tree: &Tree, + tree: &Tree, renderer: &mut Renderer, style: &renderer::Style, layout: Layout<'_>, @@ -208,13 +211,13 @@ where } } -impl Into> - for Column +impl<'a, Message, Renderer> Into> + for Column<'a, Message, Renderer> where Message: 'static, Renderer: iced_native::Renderer + 'static, { - fn into(self) -> Element { + fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) } } -- cgit