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 '')
| -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)          }      } | 
