- Added new `renderer::Windowed` trait. This shoud allow users to easily try different renderers by simply changing one line. - Renamed `UserInterface` traits to `Application`, as the `run` method takes total control of the current thread. - Moved `MouseCursor` back to `iced_native`. The new `renderer::Windowed` trait returns one on `draw`. - Split `iced_native` renderer in multiple modules, for consistency.
25 lines
868 B
Rust
25 lines
868 B
Rust
use crate::{Color, Layout, Point, Widget};
|
|
|
|
/// A renderer able to graphically explain a [`Layout`].
|
|
///
|
|
/// [`Layout`]: ../struct.Layout.html
|
|
pub trait Debugger: super::Renderer {
|
|
/// Explains the [`Layout`] of an [`Element`] for debugging purposes.
|
|
///
|
|
/// This will be called when [`Element::explain`] has been used. It should
|
|
/// _explain_ the given [`Layout`] graphically.
|
|
///
|
|
/// A common approach consists in recursively rendering the bounds of the
|
|
/// [`Layout`] and its children.
|
|
///
|
|
/// [`Layout`]: struct.Layout.html
|
|
/// [`Element`]: struct.Element.html
|
|
/// [`Element::explain`]: struct.Element.html#method.explain
|
|
fn explain<Message>(
|
|
&mut self,
|
|
widget: &dyn Widget<Message, Self>,
|
|
layout: Layout<'_>,
|
|
cursor_position: Point,
|
|
color: Color,
|
|
) -> Self::Primitive;
|
|
}
|