diff options
author | 2021-11-07 15:15:33 +0700 | |
---|---|---|
committer | 2021-11-07 15:15:33 +0700 | |
commit | eafad00af2a9bae9f3ed8124e2a6f6e59ee5d253 (patch) | |
tree | 76413948c9c9723075189d51d4c2e02c0f8fdd23 /examples/custom_widget/src/main.rs | |
parent | 61c747b53589d98f477fea95f85d2ea5349666d3 (diff) | |
parent | 07b5097bc92ced376d09115d787ff1d2ebe00836 (diff) | |
download | iced-eafad00af2a9bae9f3ed8124e2a6f6e59ee5d253.tar.gz iced-eafad00af2a9bae9f3ed8124e2a6f6e59ee5d253.tar.bz2 iced-eafad00af2a9bae9f3ed8124e2a6f6e59ee5d253.zip |
Merge pull request #1110 from iced-rs/remove-renderer-traits
Reduce the surface of the `Renderer` APIs
Diffstat (limited to 'examples/custom_widget/src/main.rs')
-rw-r--r-- | examples/custom_widget/src/main.rs | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index c9ad1905..b32cb83d 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -9,10 +9,10 @@ mod circle { // Of course, you can choose to make the implementation renderer-agnostic, // if you wish to, by creating your own `Renderer` trait, which could be // implemented by `iced_wgpu` and other renderers. - use iced_graphics::{Backend, Defaults, Primitive, Renderer}; + use iced_native::layout::{self, Layout}; + use iced_native::renderer; use iced_native::{ - layout, mouse, Background, Color, Element, Hasher, Layout, Length, - Point, Rectangle, Size, Widget, + Color, Element, Hasher, Length, Point, Rectangle, Size, Widget, }; pub struct Circle { @@ -25,9 +25,9 @@ mod circle { } } - impl<Message, B> Widget<Message, Renderer<B>> for Circle + impl<Message, Renderer> Widget<Message, Renderer> for Circle where - B: Backend, + Renderer: renderer::Renderer, { fn width(&self) -> Length { Length::Shrink @@ -39,7 +39,7 @@ mod circle { fn layout( &self, - _renderer: &Renderer<B>, + _renderer: &Renderer, _limits: &layout::Limits, ) -> layout::Node { layout::Node::new(Size::new(self.radius * 2.0, self.radius * 2.0)) @@ -53,30 +53,29 @@ mod circle { fn draw( &self, - _renderer: &mut Renderer<B>, - _defaults: &Defaults, + renderer: &mut Renderer, + _style: &renderer::Style, layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, - ) -> (Primitive, mouse::Interaction) { - ( - Primitive::Quad { + ) { + renderer.fill_quad( + renderer::Quad { bounds: layout.bounds(), - background: Background::Color(Color::BLACK), border_radius: self.radius, border_width: 0.0, border_color: Color::TRANSPARENT, }, - mouse::Interaction::default(), - ) + Color::BLACK, + ); } } - impl<'a, Message, B> Into<Element<'a, Message, Renderer<B>>> for Circle + impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for Circle where - B: Backend, + Renderer: renderer::Renderer, { - fn into(self) -> Element<'a, Message, Renderer<B>> { + fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) } } |