summaryrefslogtreecommitdiffstats
path: root/native/src/renderer.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-05 03:56:18 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-05 03:56:18 +0200
commita7d11944039a1b5ea5b72256e8d15367d99e6010 (patch)
tree0b90246e3bec0bb28a9a67b9c62af4bf7602cbc6 /native/src/renderer.rs
parent5204cc8c8bc8361a11815d7c711b7da10a6ca8e5 (diff)
downloadiced-a7d11944039a1b5ea5b72256e8d15367d99e6010.tar.gz
iced-a7d11944039a1b5ea5b72256e8d15367d99e6010.tar.bz2
iced-a7d11944039a1b5ea5b72256e8d15367d99e6010.zip
Add `Renderer` and `Primitive` concepts
Diffstat (limited to 'native/src/renderer.rs')
-rw-r--r--native/src/renderer.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/native/src/renderer.rs b/native/src/renderer.rs
index 2244f00b..d16a0289 100644
--- a/native/src/renderer.rs
+++ b/native/src/renderer.rs
@@ -17,12 +17,16 @@
//! [`text::Renderer`]: ../widget/text/trait.Renderer.html
//! [`Checkbox`]: ../widget/checkbox/struct.Checkbox.html
//! [`checkbox::Renderer`]: ../widget/checkbox/trait.Renderer.html
-use crate::{Color, Layout};
+use crate::{Color, Layout, Point, Widget};
+
+pub trait Renderer {
+ type Primitive;
+}
/// A renderer able to graphically explain a [`Layout`].
///
/// [`Layout`]: ../struct.Layout.html
-pub trait Debugger {
+pub trait Debugger: Renderer {
/// Explains the [`Layout`] of an [`Element`] for debugging purposes.
///
/// This will be called when [`Element::explain`] has been used. It should
@@ -34,5 +38,11 @@ pub trait Debugger {
/// [`Layout`]: struct.Layout.html
/// [`Element`]: struct.Element.html
/// [`Element::explain`]: struct.Element.html#method.explain
- fn explain(&mut self, layout: &Layout<'_>, color: Color);
+ fn explain<Message>(
+ &mut self,
+ widget: &dyn Widget<Message, Self>,
+ layout: Layout<'_>,
+ cursor_position: Point,
+ color: Color,
+ ) -> Self::Primitive;
}