summaryrefslogtreecommitdiffstats
path: root/examples/custom_widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-18 15:49:28 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-18 15:49:28 +0700
commit95acc1deb89c4e75b513edb0f4d53b83c7f75b30 (patch)
tree88df284d5a005717c6e079d70ddc826f159551f3 /examples/custom_widget
parent945f69e567d1766c82f77d3299d2d619d56d3add (diff)
downloadiced-95acc1deb89c4e75b513edb0f4d53b83c7f75b30.tar.gz
iced-95acc1deb89c4e75b513edb0f4d53b83c7f75b30.tar.bz2
iced-95acc1deb89c4e75b513edb0f4d53b83c7f75b30.zip
Implement `Widget::draw` for `custom_widget` example
Diffstat (limited to 'examples/custom_widget')
-rw-r--r--examples/custom_widget/Cargo.toml1
-rw-r--r--examples/custom_widget/src/main.rs40
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)
}
}