summaryrefslogtreecommitdiffstats
path: root/native/src/widget/container.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-18 15:36:32 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-18 15:36:32 +0700
commitd61cb58d92b6fcd520f665deb093f3747ffd5e5c (patch)
treed65fbd23f2ccbb46b18d2e3bbf214d321f6e980c /native/src/widget/container.rs
parentedea093350e1b576e2b7db50c525e7fa5c3bea9f (diff)
downloadiced-d61cb58d92b6fcd520f665deb093f3747ffd5e5c.tar.gz
iced-d61cb58d92b6fcd520f665deb093f3747ffd5e5c.tar.bz2
iced-d61cb58d92b6fcd520f665deb093f3747ffd5e5c.zip
Wire up `container` styling to `iced_native`
Diffstat (limited to 'native/src/widget/container.rs')
-rw-r--r--native/src/widget/container.rs29
1 files changed, 10 insertions, 19 deletions
diff --git a/native/src/widget/container.rs b/native/src/widget/container.rs
index 92869873..99bc3d49 100644
--- a/native/src/widget/container.rs
+++ b/native/src/widget/container.rs
@@ -13,11 +13,13 @@ use crate::{
use std::u32;
+pub use iced_style::container::{Style, StyleSheet};
+
/// An element decorating some content.
///
/// It is normally used for alignment purposes.
#[allow(missing_debug_implementations)]
-pub struct Container<'a, Message, Renderer: self::Renderer> {
+pub struct Container<'a, Message, Renderer> {
padding: Padding,
width: Length,
height: Length,
@@ -25,13 +27,13 @@ pub struct Container<'a, Message, Renderer: self::Renderer> {
max_height: u32,
horizontal_alignment: alignment::Horizontal,
vertical_alignment: alignment::Vertical,
- style: Renderer::Style,
+ style: &'a dyn StyleSheet,
content: Element<'a, Message, Renderer>,
}
impl<'a, Message, Renderer> Container<'a, Message, Renderer>
where
- Renderer: self::Renderer,
+ Renderer: crate::Renderer,
{
/// Creates an empty [`Container`].
pub fn new<T>(content: T) -> Self
@@ -46,7 +48,7 @@ where
max_height: u32::MAX,
horizontal_alignment: alignment::Horizontal::Left,
vertical_alignment: alignment::Vertical::Top,
- style: Renderer::Style::default(),
+ style: Default::default(),
content: content.into(),
}
}
@@ -106,8 +108,8 @@ where
}
/// Sets the style of the [`Container`].
- pub fn style(mut self, style: impl Into<Renderer::Style>) -> Self {
- self.style = style.into();
+ pub fn style(mut self, style: &'a dyn StyleSheet) -> Self {
+ self.style = style;
self
}
}
@@ -115,7 +117,7 @@ where
impl<'a, Message, Renderer> Widget<Message, Renderer>
for Container<'a, Message, Renderer>
where
- Renderer: self::Renderer,
+ Renderer: crate::Renderer,
{
fn width(&self) -> Length {
self.width
@@ -211,21 +213,10 @@ where
}
}
-/// The renderer of a [`Container`].
-///
-/// Your [renderer] will need to implement this trait before being
-/// able to use a [`Container`] in your user interface.
-///
-/// [renderer]: crate::renderer
-pub trait Renderer: crate::Renderer {
- /// The style supported by this renderer.
- type Style: Default;
-}
-
impl<'a, Message, Renderer> From<Container<'a, Message, Renderer>>
for Element<'a, Message, Renderer>
where
- Renderer: 'a + self::Renderer,
+ Renderer: 'a + crate::Renderer,
Message: 'a,
{
fn from(