2022-03-16 17:37:19 +07:00
|
|
|
use crate::widget::Tree;
|
2022-02-16 17:07:25 +07:00
|
|
|
|
|
|
|
|
use iced_native::Layout;
|
|
|
|
|
|
|
|
|
|
pub use iced_native::overlay::*;
|
|
|
|
|
|
|
|
|
|
pub fn from_children<'a, Message, Renderer>(
|
2022-02-17 19:08:54 +07:00
|
|
|
children: &'a [crate::Element<'_, Message, Renderer>],
|
2022-02-16 17:07:25 +07:00
|
|
|
tree: &'a mut Tree,
|
|
|
|
|
layout: Layout<'_>,
|
|
|
|
|
renderer: &Renderer,
|
|
|
|
|
) -> Option<Element<'a, Message, Renderer>> {
|
|
|
|
|
children
|
2022-02-17 19:08:54 +07:00
|
|
|
.iter()
|
2022-02-16 17:07:25 +07:00
|
|
|
.zip(&mut tree.children)
|
|
|
|
|
.zip(layout.children())
|
|
|
|
|
.filter_map(|((child, state), layout)| {
|
2022-02-17 19:08:54 +07:00
|
|
|
child.as_widget().overlay(state, layout, renderer)
|
2022-02-16 17:07:25 +07:00
|
|
|
})
|
|
|
|
|
.next()
|
|
|
|
|
}
|