diff options
Diffstat (limited to 'glow/src/renderer/widget/row.rs')
-rw-r--r-- | glow/src/renderer/widget/row.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/glow/src/renderer/widget/row.rs b/glow/src/renderer/widget/row.rs new file mode 100644 index 00000000..d0b7ef09 --- /dev/null +++ b/glow/src/renderer/widget/row.rs @@ -0,0 +1,34 @@ +use crate::{Primitive, Renderer}; +use iced_native::{mouse, row, Element, Layout, Point}; + +impl row::Renderer for Renderer { + fn draw<Message>( + &mut self, + defaults: &Self::Defaults, + children: &[Element<'_, Message, Self>], + layout: Layout<'_>, + cursor_position: Point, + ) -> Self::Output { + let mut mouse_interaction = mouse::Interaction::default(); + + ( + Primitive::Group { + primitives: children + .iter() + .zip(layout.children()) + .map(|(child, layout)| { + let (primitive, new_mouse_interaction) = + child.draw(self, defaults, layout, cursor_position); + + if new_mouse_interaction > mouse_interaction { + mouse_interaction = new_mouse_interaction; + } + + primitive + }) + .collect(), + }, + mouse_interaction, + ) + } +} |