diff options
Diffstat (limited to '')
| -rw-r--r-- | pure/src/element.rs | 14 | ||||
| -rw-r--r-- | pure/src/lib.rs | 4 | ||||
| -rw-r--r-- | pure/src/widget/button.rs | 8 | ||||
| -rw-r--r-- | pure/src/widget/column.rs | 4 | ||||
| -rw-r--r-- | pure/src/widget/pick_list.rs | 4 | ||||
| -rw-r--r-- | pure/src/widget/row.rs | 4 | ||||
| -rw-r--r-- | pure/src/widget/scrollable.rs | 4 | ||||
| -rw-r--r-- | pure/src/widget/text.rs | 4 | 
8 files changed, 30 insertions, 16 deletions
| diff --git a/pure/src/element.rs b/pure/src/element.rs index 3d5697fe..08096103 100644 --- a/pure/src/element.rs +++ b/pure/src/element.rs @@ -1,3 +1,4 @@ +use crate::overlay;  use crate::widget::tree::{self, Tree};  use crate::widget::Widget; @@ -160,4 +161,17 @@ where              renderer,          )      } + +    fn overlay<'b>( +        &'b self, +        tree: &'b mut Tree, +        layout: Layout<'_>, +        renderer: &Renderer, +    ) -> Option<overlay::Element<'b, B, Renderer>> { +        let mapper = &self.mapper; + +        self.widget +            .overlay(tree, layout, renderer) +            .map(move |overlay| overlay.map(mapper)) +    }  } diff --git a/pure/src/lib.rs b/pure/src/lib.rs index ec2f29f8..71d20a4d 100644 --- a/pure/src/lib.rs +++ b/pure/src/lib.rs @@ -23,8 +23,8 @@ pub struct Pure<'a, Message, Renderer> {  impl<'a, Message, Renderer> Pure<'a, Message, Renderer>  where -    Message: 'static, -    Renderer: iced_native::Renderer + 'static, +    Message: 'a, +    Renderer: iced_native::Renderer + 'a,  {      pub fn new(          state: &'a mut State, diff --git a/pure/src/widget/button.rs b/pure/src/widget/button.rs index f99d3018..e083ea73 100644 --- a/pure/src/widget/button.rs +++ b/pure/src/widget/button.rs @@ -75,8 +75,8 @@ impl<'a, Message, Renderer> Button<'a, Message, Renderer> {  impl<'a, Message, Renderer> Widget<Message, Renderer>      for Button<'a, Message, Renderer>  where -    Message: 'static + Clone, -    Renderer: 'static + iced_native::Renderer, +    Message: 'a + Clone, +    Renderer: 'a + iced_native::Renderer,  {      fn tag(&self) -> tree::Tag {          tree::Tag::of::<State>() @@ -216,8 +216,8 @@ where  impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>      for Button<'a, Message, Renderer>  where -    Message: Clone + 'static, -    Renderer: iced_native::Renderer + 'static, +    Message: Clone + 'a, +    Renderer: iced_native::Renderer + 'a,  {      fn into(self) -> Element<'a, Message, Renderer> {          Element::new(self) diff --git a/pure/src/widget/column.rs b/pure/src/widget/column.rs index 6b447270..a4c0987b 100644 --- a/pure/src/widget/column.rs +++ b/pure/src/widget/column.rs @@ -216,8 +216,8 @@ where  impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>      for Column<'a, Message, Renderer>  where -    Message: 'static, -    Renderer: iced_native::Renderer + 'static, +    Message: 'a, +    Renderer: iced_native::Renderer + 'a,  {      fn into(self) -> Element<'a, Message, Renderer> {          Element::new(self) diff --git a/pure/src/widget/pick_list.rs b/pure/src/widget/pick_list.rs index 9573f27a..45bb289e 100644 --- a/pure/src/widget/pick_list.rs +++ b/pure/src/widget/pick_list.rs @@ -109,7 +109,7 @@ impl<'a, T: 'a, Message, Renderer> Widget<Message, Renderer>  where      T: Clone + ToString + Eq + 'static,      [T]: ToOwned<Owned = Vec<T>>, -    Message: 'static, +    Message: 'a,      Renderer: text::Renderer + 'a,  {      fn tag(&self) -> tree::Tag { @@ -226,7 +226,7 @@ where      T: Clone + ToString + Eq + 'static,      [T]: ToOwned<Owned = Vec<T>>,      Renderer: text::Renderer + 'a, -    Message: 'static, +    Message: 'a,  {      fn into(self) -> Element<'a, Message, Renderer> {          Element::new(self) diff --git a/pure/src/widget/row.rs b/pure/src/widget/row.rs index d7f90540..92812d27 100644 --- a/pure/src/widget/row.rs +++ b/pure/src/widget/row.rs @@ -203,8 +203,8 @@ where  impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>      for Row<'a, Message, Renderer>  where -    Message: 'static, -    Renderer: iced_native::Renderer + 'static, +    Message: 'a, +    Renderer: iced_native::Renderer + 'a,  {      fn into(self) -> Element<'a, Message, Renderer> {          Element::new(self) diff --git a/pure/src/widget/scrollable.rs b/pure/src/widget/scrollable.rs index f9a51200..24263c95 100644 --- a/pure/src/widget/scrollable.rs +++ b/pure/src/widget/scrollable.rs @@ -19,7 +19,7 @@ pub struct Scrollable<'a, Message, Renderer> {      scrollbar_width: u16,      scrollbar_margin: u16,      scroller_width: u16, -    on_scroll: Option<Box<dyn Fn(f32) -> Message>>, +    on_scroll: Option<Box<dyn Fn(f32) -> Message + 'a>>,      style_sheet: Box<dyn StyleSheet + 'a>,      content: Element<'a, Message, Renderer>,  } @@ -71,7 +71,7 @@ impl<'a, Message, Renderer: iced_native::Renderer>      ///      /// The function takes the new relative offset of the [`Scrollable`]      /// (e.g. `0` means top, while `1` means bottom). -    pub fn on_scroll(mut self, f: impl Fn(f32) -> Message + 'static) -> Self { +    pub fn on_scroll(mut self, f: impl Fn(f32) -> Message + 'a) -> Self {          self.on_scroll = Some(Box::new(f));          self      } diff --git a/pure/src/widget/text.rs b/pure/src/widget/text.rs index b78d4117..58a939c1 100644 --- a/pure/src/widget/text.rs +++ b/pure/src/widget/text.rs @@ -53,7 +53,7 @@ where  impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>      for Text<Renderer>  where -    Renderer: text::Renderer + 'static, +    Renderer: text::Renderer + 'a,  {      fn into(self) -> Element<'a, Message, Renderer> {          Element::new(self) @@ -62,7 +62,7 @@ where  impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for &'a str  where -    Renderer: text::Renderer + 'static, +    Renderer: text::Renderer + 'a,  {      fn into(self) -> Element<'a, Message, Renderer> {          Text::new(self).into() | 
