summaryrefslogtreecommitdiffstats
path: root/native/src/renderer.rs
diff options
context:
space:
mode:
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;
}