diff options
author | 2022-07-09 02:28:52 +0200 | |
---|---|---|
committer | 2022-07-09 02:28:52 +0200 | |
commit | e053e25d2ccb17f7a162685a106a8bbd915a873f (patch) | |
tree | 5304f3ea2712e8889c7278ec5e57418f484d8f6c /graphics/src/renderer.rs | |
parent | 66eb6263003c1bbedd1fd14d6b12f172d20a6211 (diff) | |
parent | 7105db97a53d90adf429091298f31c90974d8f08 (diff) | |
download | iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.tar.gz iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.tar.bz2 iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.zip |
Merge pull request #1362 from iced-rs/theming
Theming
Diffstat (limited to 'graphics/src/renderer.rs')
-rw-r--r-- | graphics/src/renderer.rs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs index cb31ea5f..3c19fbfb 100644 --- a/graphics/src/renderer.rs +++ b/graphics/src/renderer.rs @@ -10,19 +10,23 @@ use iced_native::{Background, Element, Font, Point, Rectangle, Size}; pub use iced_native::renderer::Style; +use std::marker::PhantomData; + /// A backend-agnostic renderer that supports all the built-in widgets. #[derive(Debug)] -pub struct Renderer<B: Backend> { +pub struct Renderer<B: Backend, Theme> { backend: B, primitives: Vec<Primitive>, + theme: PhantomData<Theme>, } -impl<B: Backend> Renderer<B> { +impl<B: Backend, T> Renderer<B, T> { /// Creates a new [`Renderer`] from the given [`Backend`]. pub fn new(backend: B) -> Self { Self { backend, primitives: Vec::new(), + theme: PhantomData, } } @@ -43,10 +47,12 @@ impl<B: Backend> Renderer<B> { } } -impl<B> iced_native::Renderer for Renderer<B> +impl<B, T> iced_native::Renderer for Renderer<B, T> where B: Backend, { + type Theme = T; + fn layout<'a, Message>( &mut self, element: &Element<'a, Message, Self>, @@ -114,7 +120,7 @@ where } } -impl<B> text::Renderer for Renderer<B> +impl<B, T> text::Renderer for Renderer<B, T> where B: Backend + backend::Text, { @@ -171,7 +177,7 @@ where } } -impl<B> image::Renderer for Renderer<B> +impl<B, T> image::Renderer for Renderer<B, T> where B: Backend + backend::Image, { @@ -186,7 +192,7 @@ where } } -impl<B> svg::Renderer for Renderer<B> +impl<B, T> svg::Renderer for Renderer<B, T> where B: Backend + backend::Svg, { |