Impl operate for Component widget
This commit is contained in:
parent
8550550027
commit
a4d5b82768
1 changed files with 42 additions and 0 deletions
|
|
@ -4,6 +4,7 @@ use iced_native::layout::{self, Layout};
|
||||||
use iced_native::mouse;
|
use iced_native::mouse;
|
||||||
use iced_native::overlay;
|
use iced_native::overlay;
|
||||||
use iced_native::renderer;
|
use iced_native::renderer;
|
||||||
|
use iced_native::widget;
|
||||||
use iced_native::widget::tree::{self, Tree};
|
use iced_native::widget::tree::{self, Tree};
|
||||||
use iced_native::{
|
use iced_native::{
|
||||||
Clipboard, Element, Length, Point, Rectangle, Shell, Size, Widget,
|
Clipboard, Element, Length, Point, Rectangle, Shell, Size, Widget,
|
||||||
|
|
@ -229,6 +230,47 @@ where
|
||||||
event_status
|
event_status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn operate(
|
||||||
|
&self,
|
||||||
|
tree: &mut Tree,
|
||||||
|
layout: Layout<'_>,
|
||||||
|
operation: &mut dyn widget::Operation<Message>,
|
||||||
|
) {
|
||||||
|
struct MapOperation<'a, B> {
|
||||||
|
operation: &'a mut dyn widget::Operation<B>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a, T, B> widget::Operation<T> for MapOperation<'a, B> {
|
||||||
|
fn container(
|
||||||
|
&mut self,
|
||||||
|
id: Option<&widget::Id>,
|
||||||
|
operate_on_children: &mut dyn FnMut(
|
||||||
|
&mut dyn widget::Operation<T>,
|
||||||
|
),
|
||||||
|
) {
|
||||||
|
self.operation.container(id, &mut |operation| {
|
||||||
|
operate_on_children(&mut MapOperation { operation });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn focusable(
|
||||||
|
&mut self,
|
||||||
|
state: &mut dyn widget::operation::Focusable,
|
||||||
|
id: Option<&widget::Id>,
|
||||||
|
) {
|
||||||
|
self.operation.focusable(state, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.with_element(|element| {
|
||||||
|
element.as_widget().operate(
|
||||||
|
&mut tree.children[0],
|
||||||
|
layout,
|
||||||
|
&mut MapOperation { operation },
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
fn draw(
|
fn draw(
|
||||||
&self,
|
&self,
|
||||||
tree: &Tree,
|
tree: &Tree,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue