Reintroduce Box for style_sheet in Container

This commit is contained in:
Héctor Ramón Jiménez 2021-10-31 17:02:59 +07:00
parent fcc282bd76
commit 40a5de5811
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
12 changed files with 51 additions and 30 deletions

View file

@ -28,7 +28,7 @@ pub struct Container<'a, Message, Renderer> {
max_height: u32,
horizontal_alignment: alignment::Horizontal,
vertical_alignment: alignment::Vertical,
style_sheet: &'a dyn StyleSheet,
style_sheet: Box<dyn StyleSheet + 'a>,
content: Element<'a, Message, Renderer>,
}
@ -109,8 +109,11 @@ where
}
/// Sets the style of the [`Container`].
pub fn style(mut self, style_sheet: &'a dyn StyleSheet) -> Self {
self.style_sheet = style_sheet;
pub fn style(
mut self,
style_sheet: impl Into<Box<dyn StyleSheet + 'a>>,
) -> Self {
self.style_sheet = style_sheet.into();
self
}
}

View file

@ -14,7 +14,7 @@ use crate::{Clipboard, Element, Hasher, Layout, Point, Rectangle, Size};
pub struct Content<'a, Message, Renderer> {
title_bar: Option<TitleBar<'a, Message, Renderer>>,
body: Element<'a, Message, Renderer>,
style_sheet: &'a dyn container::StyleSheet,
style_sheet: Box<dyn container::StyleSheet + 'a>,
}
impl<'a, Message, Renderer> Content<'a, Message, Renderer>
@ -40,8 +40,11 @@ where
}
/// Sets the style of the [`Content`].
pub fn style(mut self, style_sheet: &'a dyn container::StyleSheet) -> Self {
self.style_sheet = style_sheet;
pub fn style(
mut self,
style_sheet: impl Into<Box<dyn container::StyleSheet + 'a>>,
) -> Self {
self.style_sheet = style_sheet.into();
self
}
}

View file

@ -17,7 +17,7 @@ pub struct TitleBar<'a, Message, Renderer> {
controls: Option<Element<'a, Message, Renderer>>,
padding: Padding,
always_show_controls: bool,
style_sheet: &'a dyn container::StyleSheet,
style_sheet: Box<dyn container::StyleSheet + 'a>,
}
impl<'a, Message, Renderer> TitleBar<'a, Message, Renderer>
@ -54,8 +54,11 @@ where
}
/// Sets the style of the [`TitleBar`].
pub fn style(mut self, style: &'a dyn container::StyleSheet) -> Self {
self.style_sheet = style;
pub fn style(
mut self,
style: impl Into<Box<dyn container::StyleSheet + 'a>>,
) -> Self {
self.style_sheet = style.into();
self
}

View file

@ -20,7 +20,7 @@ pub struct Tooltip<'a, Message, Renderer: text::Renderer> {
content: Element<'a, Message, Renderer>,
tooltip: Text<Renderer>,
position: Position,
style_sheet: &'a dyn container::StyleSheet,
style_sheet: Box<dyn container::StyleSheet + 'a>,
gap: u16,
padding: u16,
}
@ -77,8 +77,11 @@ where
}
/// Sets the style of the [`Tooltip`].
pub fn style(mut self, style_sheet: &'a dyn container::StyleSheet) -> Self {
self.style_sheet = style_sheet;
pub fn style(
mut self,
style_sheet: impl Into<Box<dyn container::StyleSheet + 'a>>,
) -> Self {
self.style_sheet = style_sheet.into();
self
}
}