Implement Widget::draw for element::Explain
This commit is contained in:
parent
e6156fb0c5
commit
0df5b5bb7b
1 changed files with 33 additions and 5 deletions
|
|
@ -4,7 +4,8 @@ use crate::mouse;
|
||||||
use crate::overlay;
|
use crate::overlay;
|
||||||
use crate::renderer;
|
use crate::renderer;
|
||||||
use crate::{
|
use crate::{
|
||||||
Clipboard, Color, Hasher, Layout, Length, Point, Rectangle, Widget,
|
Background, Clipboard, Color, Hasher, Layout, Length, Point, Rectangle,
|
||||||
|
Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A generic [`Widget`].
|
/// A generic [`Widget`].
|
||||||
|
|
@ -439,12 +440,39 @@ where
|
||||||
|
|
||||||
fn draw(
|
fn draw(
|
||||||
&self,
|
&self,
|
||||||
_renderer: &mut Renderer,
|
renderer: &mut Renderer,
|
||||||
style: &renderer::Style,
|
style: &renderer::Style,
|
||||||
_layout: Layout<'_>,
|
layout: Layout<'_>,
|
||||||
_cursor_position: Point,
|
cursor_position: Point,
|
||||||
_viewport: &Rectangle,
|
viewport: &Rectangle,
|
||||||
) {
|
) {
|
||||||
|
fn explain_layout<Renderer: crate::Renderer>(
|
||||||
|
renderer: &mut Renderer,
|
||||||
|
color: Color,
|
||||||
|
layout: Layout<'_>,
|
||||||
|
) {
|
||||||
|
renderer.fill_rectangle(renderer::Quad {
|
||||||
|
bounds: layout.bounds(),
|
||||||
|
border_color: color,
|
||||||
|
border_width: 1.0,
|
||||||
|
border_radius: 0.0,
|
||||||
|
background: Background::Color(Color::TRANSPARENT),
|
||||||
|
});
|
||||||
|
|
||||||
|
for child in layout.children() {
|
||||||
|
explain_layout(renderer, color, child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.element.widget.draw(
|
||||||
|
renderer,
|
||||||
|
style,
|
||||||
|
layout,
|
||||||
|
cursor_position,
|
||||||
|
viewport,
|
||||||
|
);
|
||||||
|
|
||||||
|
explain_layout(renderer, self.color, layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn mouse_interaction(
|
fn mouse_interaction(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue