summaryrefslogtreecommitdiffstats
path: root/native/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-28 22:21:54 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-28 22:21:54 +0700
commit0df5b5bb7b098f480af85273eb7734e0074b26bc (patch)
tree0216f3c865cbdb6c392fbddf2b6a599d1b54f753 /native/src
parente6156fb0c53d78ae75a1d85d4bfd81f6b7e8817e (diff)
downloadiced-0df5b5bb7b098f480af85273eb7734e0074b26bc.tar.gz
iced-0df5b5bb7b098f480af85273eb7734e0074b26bc.tar.bz2
iced-0df5b5bb7b098f480af85273eb7734e0074b26bc.zip
Implement `Widget::draw` for `element::Explain`
Diffstat (limited to 'native/src')
-rw-r--r--native/src/element.rs38
1 files changed, 33 insertions, 5 deletions
diff --git a/native/src/element.rs b/native/src/element.rs
index 44b6d1ec..d69b24fc 100644
--- a/native/src/element.rs
+++ b/native/src/element.rs
@@ -4,7 +4,8 @@ use crate::mouse;
use crate::overlay;
use crate::renderer;
use crate::{
- Clipboard, Color, Hasher, Layout, Length, Point, Rectangle, Widget,
+ Background, Clipboard, Color, Hasher, Layout, Length, Point, Rectangle,
+ Widget,
};
/// A generic [`Widget`].
@@ -439,12 +440,39 @@ where
fn draw(
&self,
- _renderer: &mut Renderer,
+ renderer: &mut Renderer,
style: &renderer::Style,
- _layout: Layout<'_>,
- _cursor_position: Point,
- _viewport: &Rectangle,
+ layout: Layout<'_>,
+ cursor_position: Point,
+ 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(