diff options
author | 2021-10-18 15:49:28 +0700 | |
---|---|---|
committer | 2021-10-18 15:49:28 +0700 | |
commit | 95acc1deb89c4e75b513edb0f4d53b83c7f75b30 (patch) | |
tree | 88df284d5a005717c6e079d70ddc826f159551f3 /examples | |
parent | 945f69e567d1766c82f77d3299d2d619d56d3add (diff) | |
download | iced-95acc1deb89c4e75b513edb0f4d53b83c7f75b30.tar.gz iced-95acc1deb89c4e75b513edb0f4d53b83c7f75b30.tar.bz2 iced-95acc1deb89c4e75b513edb0f4d53b83c7f75b30.zip |
Implement `Widget::draw` for `custom_widget` example
Diffstat (limited to 'examples')
-rw-r--r-- | examples/custom_widget/Cargo.toml | 1 | ||||
-rw-r--r-- | examples/custom_widget/src/main.rs | 40 |
2 files changed, 19 insertions, 22 deletions
diff --git a/examples/custom_widget/Cargo.toml b/examples/custom_widget/Cargo.toml index 3942538d..86b0d2a9 100644 --- a/examples/custom_widget/Cargo.toml +++ b/examples/custom_widget/Cargo.toml @@ -8,4 +8,3 @@ publish = false [dependencies] iced = { path = "../.." } iced_native = { path = "../../native" } -iced_graphics = { path = "../../graphics" } diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index c8188f10..78a4339e 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -9,10 +9,11 @@ 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::renderer::{self, Renderer}; - use iced_graphics::Backend; + use iced_native::layout::{self, Layout}; + use iced_native::renderer; use iced_native::{ - layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, + Background, Color, Element, Hasher, Length, Point, Rectangle, Size, + Widget, }; pub struct Circle { @@ -25,9 +26,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 +40,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 +54,27 @@ mod circle { fn draw( &self, - _renderer: &mut Renderer<B>, + renderer: &mut Renderer, _style: &renderer::Style, - _layout: Layout<'_>, + layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, ) { - // ( - // Primitive::Quad { - // bounds: layout.bounds(), - // background: Background::Color(Color::BLACK), - // border_radius: self.radius, - // border_width: 0.0, - // border_color: Color::TRANSPARENT, - // }, - // mouse::Interaction::default(), - // ) + renderer.fill_rectangle(renderer::Quad { + bounds: layout.bounds(), + background: Background::Color(Color::BLACK), + border_radius: self.radius, + border_width: 0.0, + border_color: Color::TRANSPARENT, + }); } } - 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) } } |