veloren_voxygen/ui/ice/renderer/widget/
overlay.rs1use super::super::{super::widget::overlay, IcedRenderer, Primitive};
2use iced::{Element, Layout, Point, Rectangle, mouse::Interaction};
3
4impl overlay::Renderer for IcedRenderer {
5 fn draw<M>(
6 &mut self,
7 defaults: &Self::Defaults,
8 _bounds: Rectangle,
9 cursor_position: Point,
10 viewport: &Rectangle,
11 over: &Element<'_, M, Self>,
12 over_layout: Layout<'_>,
13 under: &Element<'_, M, Self>,
14 under_layout: Layout<'_>,
15 ) -> Self::Output {
16 let (under, under_mouse_interaction) =
17 under.draw(self, defaults, under_layout, cursor_position, viewport);
18
19 let (over, over_mouse_interaction) =
20 over.draw(self, defaults, over_layout, cursor_position, viewport);
21
22 let mouse_interaction = if over_mouse_interaction == Interaction::Idle {
24 under_mouse_interaction
25 } else {
26 over_mouse_interaction
27 };
28
29 let prim = Primitive::Group {
30 primitives: vec![under, over],
31 };
32
33 (prim, mouse_interaction)
34 }
35}