Fix inconsistent naming of tree parameter in Widget trait (#2950)

* fix inconsistent naming of tree parameter in widget trait

* rename `Tree` parameter in various usages across iced
This commit is contained in:
edwloef 2025-11-25 23:58:07 +01:00 committed by GitHub
parent 6f0b408f90
commit 6bbe189809
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 127 additions and 128 deletions

View file

@ -435,19 +435,19 @@ where
fn operate( fn operate(
&mut self, &mut self,
state: &mut Tree, tree: &mut Tree,
layout: Layout<'_>, layout: Layout<'_>,
renderer: &Renderer, renderer: &Renderer,
operation: &mut dyn widget::Operation, operation: &mut dyn widget::Operation,
) { ) {
self.element self.element
.widget .widget
.operate(state, layout, renderer, operation); .operate(tree, layout, renderer, operation);
} }
fn update( fn update(
&mut self, &mut self,
state: &mut Tree, tree: &mut Tree,
event: &Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
@ -457,13 +457,13 @@ where
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
self.element.widget.update( self.element.widget.update(
state, event, layout, cursor, renderer, clipboard, shell, viewport, tree, event, layout, cursor, renderer, clipboard, shell, viewport,
); );
} }
fn draw( fn draw(
&self, &self,
state: &Tree, tree: &Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
theme: &Theme, theme: &Theme,
style: &renderer::Style, style: &renderer::Style,
@ -496,7 +496,7 @@ where
self.element self.element
.widget .widget
.draw(state, renderer, theme, style, layout, cursor, viewport); .draw(tree, renderer, theme, style, layout, cursor, viewport);
renderer.with_layer(Rectangle::INFINITE, |renderer| { renderer.with_layer(Rectangle::INFINITE, |renderer| {
explain_layout(renderer, self.color, layout); explain_layout(renderer, self.color, layout);
@ -505,7 +505,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
state: &Tree, tree: &Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
viewport: &Rectangle, viewport: &Rectangle,
@ -513,19 +513,19 @@ where
) -> mouse::Interaction { ) -> mouse::Interaction {
self.element self.element
.widget .widget
.mouse_interaction(state, layout, cursor, viewport, renderer) .mouse_interaction(tree, layout, cursor, viewport, renderer)
} }
fn overlay<'b>( fn overlay<'b>(
&'b mut self, &'b mut self,
state: &'b mut Tree, tree: &'b mut Tree,
layout: Layout<'b>, layout: Layout<'b>,
renderer: &Renderer, renderer: &Renderer,
viewport: &Rectangle, viewport: &Rectangle,
translation: Vector, translation: Vector,
) -> Option<overlay::Element<'b, Message, Theme, Renderer>> { ) -> Option<overlay::Element<'b, Message, Theme, Renderer>> {
self.element.widget.overlay( self.element.widget.overlay(
state, tree,
layout, layout,
renderer, renderer,
viewport, viewport,

View file

@ -99,7 +99,7 @@ where
/// Applies an [`Operation`] to the [`Widget`]. /// Applies an [`Operation`] to the [`Widget`].
fn operate( fn operate(
&mut self, &mut self,
_state: &mut Tree, _tree: &mut Tree,
_layout: Layout<'_>, _layout: Layout<'_>,
_renderer: &Renderer, _renderer: &Renderer,
_operation: &mut dyn Operation, _operation: &mut dyn Operation,
@ -111,7 +111,7 @@ where
/// By default, it does nothing. /// By default, it does nothing.
fn update( fn update(
&mut self, &mut self,
_state: &mut Tree, _tree: &mut Tree,
_event: &Event, _event: &Event,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
@ -127,7 +127,7 @@ where
/// By default, it returns [`mouse::Interaction::None`]. /// By default, it returns [`mouse::Interaction::None`].
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &Tree, _tree: &Tree,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,
@ -139,7 +139,7 @@ where
/// Returns the overlay of the [`Widget`], if there is any. /// Returns the overlay of the [`Widget`], if there is any.
fn overlay<'a>( fn overlay<'a>(
&'a mut self, &'a mut self,
_state: &'a mut Tree, _tree: &'a mut Tree,
_layout: Layout<'a>, _layout: Layout<'a>,
_renderer: &Renderer, _renderer: &Renderer,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -245,7 +245,7 @@ where
fn operate( fn operate(
&mut self, &mut self,
_state: &mut Tree, _tree: &mut Tree,
layout: Layout<'_>, layout: Layout<'_>,
_renderer: &Renderer, _renderer: &Renderer,
operation: &mut dyn super::Operation, operation: &mut dyn super::Operation,

View file

@ -185,7 +185,7 @@ mod quad {
fn draw( fn draw(
&self, &self,
_state: &widget::Tree, _tree: &widget::Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
_theme: &Theme, _theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -43,7 +43,7 @@ mod circle {
fn draw( fn draw(
&self, &self,
_state: &widget::Tree, _tree: &widget::Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
_theme: &Theme, _theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -146,7 +146,7 @@ mod loupe {
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &widget::Tree, _tree: &widget::Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -349,7 +349,7 @@ mod toast {
fn operate( fn operate(
&mut self, &mut self,
state: &mut Tree, tree: &mut Tree,
layout: Layout<'_>, layout: Layout<'_>,
renderer: &Renderer, renderer: &Renderer,
operation: &mut dyn Operation, operation: &mut dyn Operation,
@ -357,7 +357,7 @@ mod toast {
operation.container(None, layout.bounds()); operation.container(None, layout.bounds());
operation.traverse(&mut |operation| { operation.traverse(&mut |operation| {
self.content.as_widget_mut().operate( self.content.as_widget_mut().operate(
&mut state.children[0], &mut tree.children[0],
layout, layout,
renderer, renderer,
operation, operation,
@ -367,7 +367,7 @@ mod toast {
fn update( fn update(
&mut self, &mut self,
state: &mut Tree, tree: &mut Tree,
event: &Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
@ -377,7 +377,7 @@ mod toast {
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
self.content.as_widget_mut().update( self.content.as_widget_mut().update(
&mut state.children[0], &mut tree.children[0],
event, event,
layout, layout,
cursor, cursor,
@ -390,7 +390,7 @@ mod toast {
fn draw( fn draw(
&self, &self,
state: &Tree, tree: &Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
theme: &Theme, theme: &Theme,
style: &renderer::Style, style: &renderer::Style,
@ -399,7 +399,7 @@ mod toast {
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
self.content.as_widget().draw( self.content.as_widget().draw(
&state.children[0], &tree.children[0],
renderer, renderer,
theme, theme,
style, style,
@ -411,14 +411,14 @@ mod toast {
fn mouse_interaction( fn mouse_interaction(
&self, &self,
state: &Tree, tree: &Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
viewport: &Rectangle, viewport: &Rectangle,
renderer: &Renderer, renderer: &Renderer,
) -> mouse::Interaction { ) -> mouse::Interaction {
self.content.as_widget().mouse_interaction( self.content.as_widget().mouse_interaction(
&state.children[0], &tree.children[0],
layout, layout,
cursor, cursor,
viewport, viewport,
@ -428,15 +428,15 @@ mod toast {
fn overlay<'b>( fn overlay<'b>(
&'b mut self, &'b mut self,
state: &'b mut Tree, tree: &'b mut Tree,
layout: Layout<'b>, layout: Layout<'b>,
renderer: &Renderer, renderer: &Renderer,
viewport: &Rectangle, viewport: &Rectangle,
translation: Vector, translation: Vector,
) -> Option<overlay::Element<'b, Message, Theme, Renderer>> { ) -> Option<overlay::Element<'b, Message, Theme, Renderer>> {
let instants = state.state.downcast_mut::<Vec<Option<Instant>>>(); let instants = tree.state.downcast_mut::<Vec<Option<Instant>>>();
let (content_state, toasts_state) = state.children.split_at_mut(1); let (content_state, toasts_state) = tree.children.split_at_mut(1);
let content = self.content.as_widget_mut().overlay( let content = self.content.as_widget_mut().overlay(
&mut content_state[0], &mut content_state[0],
@ -451,7 +451,7 @@ mod toast {
position: layout.bounds().position() + translation, position: layout.bounds().position() + translation,
viewport: *viewport, viewport: *viewport,
toasts: &mut self.toasts, toasts: &mut self.toasts,
state: toasts_state, trees: toasts_state,
instants, instants,
on_close: &self.on_close, on_close: &self.on_close,
timeout_secs: self.timeout_secs, timeout_secs: self.timeout_secs,
@ -469,7 +469,7 @@ mod toast {
position: Point, position: Point,
viewport: Rectangle, viewport: Rectangle,
toasts: &'b mut [Element<'a, Message>], toasts: &'b mut [Element<'a, Message>],
state: &'b mut [Tree], trees: &'b mut [Tree],
instants: &'b mut [Option<Instant>], instants: &'b mut [Option<Instant>],
on_close: &'b dyn Fn(usize) -> Message, on_close: &'b dyn Fn(usize) -> Message,
timeout_secs: u64, timeout_secs: u64,
@ -495,7 +495,7 @@ mod toast {
10.0, 10.0,
Alignment::End, Alignment::End,
self.toasts, self.toasts,
self.state, self.trees,
) )
.translate(Vector::new(self.position.x, self.position.y)) .translate(Vector::new(self.position.x, self.position.y))
} }
@ -532,7 +532,7 @@ mod toast {
for (((child, state), layout), instant) in self for (((child, state), layout), instant) in self
.toasts .toasts
.iter_mut() .iter_mut()
.zip(self.state.iter_mut()) .zip(self.trees.iter_mut())
.zip(layout.children()) .zip(layout.children())
.zip(self.instants.iter_mut()) .zip(self.instants.iter_mut())
{ {
@ -568,14 +568,14 @@ mod toast {
) { ) {
let viewport = layout.bounds(); let viewport = layout.bounds();
for ((child, state), layout) in self for ((child, tree), layout) in self
.toasts .toasts
.iter() .iter()
.zip(self.state.iter()) .zip(self.trees.iter())
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget().draw( child.as_widget().draw(
state, renderer, theme, style, layout, cursor, &viewport, tree, renderer, theme, style, layout, cursor, &viewport,
); );
} }
} }
@ -590,7 +590,7 @@ mod toast {
operation.traverse(&mut |operation| { operation.traverse(&mut |operation| {
self.toasts self.toasts
.iter_mut() .iter_mut()
.zip(self.state.iter_mut()) .zip(self.trees.iter_mut())
.zip(layout.children()) .zip(layout.children())
.for_each(|((child, state), layout)| { .for_each(|((child, state), layout)| {
child child
@ -608,7 +608,7 @@ mod toast {
) -> mouse::Interaction { ) -> mouse::Interaction {
self.toasts self.toasts
.iter() .iter()
.zip(self.state.iter()) .zip(self.trees.iter())
.zip(layout.children()) .zip(layout.children())
.map(|((child, state), layout)| { .map(|((child, state), layout)| {
child child

View file

@ -117,7 +117,7 @@ impl<Message> canvas::Program<Message> for State {
fn draw( fn draw(
&self, &self,
_state: &Self::State, _tree: &Self::State,
renderer: &Renderer, renderer: &Renderer,
theme: &Theme, theme: &Theme,
bounds: Rectangle, bounds: Rectangle,

View file

@ -459,7 +459,7 @@ where
fn operate( fn operate(
&mut self, &mut self,
_state: &mut Tree, _tree: &mut Tree,
layout: Layout<'_>, layout: Layout<'_>,
_renderer: &Renderer, _renderer: &Renderer,
operation: &mut dyn widget::Operation, operation: &mut dyn widget::Operation,

View file

@ -269,14 +269,14 @@ where
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter_mut() .iter_mut()
.zip(&mut tree.children) .zip(&mut tree.children)
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );
} }
@ -294,10 +294,10 @@ where
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
.zip(layout.children()) .zip(layout.children())
.map(|((child, state), layout)| { .map(|((child, tree), layout)| {
child.as_widget().mouse_interaction( child
state, layout, cursor, viewport, renderer, .as_widget()
) .mouse_interaction(tree, layout, cursor, viewport, renderer)
}) })
.max() .max()
.unwrap_or_default() .unwrap_or_default()
@ -320,7 +320,7 @@ where
viewport viewport
}; };
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
@ -328,7 +328,7 @@ where
.filter(|(_, layout)| layout.bounds().intersects(viewport)) .filter(|(_, layout)| layout.bounds().intersects(viewport))
{ {
child.as_widget().draw( child.as_widget().draw(
state, renderer, theme, style, layout, cursor, viewport, tree, renderer, theme, style, layout, cursor, viewport,
); );
} }
} }

View file

@ -125,7 +125,7 @@ where
fn update( fn update(
&mut self, &mut self,
state: &mut widget::Tree, tree: &mut widget::Tree,
event: &Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
@ -139,7 +139,7 @@ where
} }
self.content.as_widget_mut().update( self.content.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, viewport, tree, event, layout, cursor, renderer, clipboard, shell, viewport,
); );
} }
@ -180,7 +180,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
state: &widget::Tree, tree: &widget::Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
viewport: &Rectangle, viewport: &Rectangle,
@ -192,19 +192,19 @@ where
self.content self.content
.as_widget() .as_widget()
.mouse_interaction(state, layout, cursor, viewport, renderer) .mouse_interaction(tree, layout, cursor, viewport, renderer)
} }
fn operate( fn operate(
&mut self, &mut self,
state: &mut widget::Tree, tree: &mut widget::Tree,
layout: Layout<'_>, layout: Layout<'_>,
renderer: &Renderer, renderer: &Renderer,
operation: &mut dyn widget::Operation, operation: &mut dyn widget::Operation,
) { ) {
self.content self.content
.as_widget_mut() .as_widget_mut()
.operate(state, layout, renderer, operation); .operate(tree, layout, renderer, operation);
} }
fn overlay<'a>( fn overlay<'a>(

View file

@ -281,14 +281,14 @@ where
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter_mut() .iter_mut()
.zip(&mut tree.children) .zip(&mut tree.children)
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );
} }
@ -306,10 +306,10 @@ where
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
.zip(layout.children()) .zip(layout.children())
.map(|((child, state), layout)| { .map(|((child, tree), layout)| {
child.as_widget().mouse_interaction( child
state, layout, cursor, viewport, renderer, .as_widget()
) .mouse_interaction(tree, layout, cursor, viewport, renderer)
}) })
.max() .max()
.unwrap_or_default() .unwrap_or_default()
@ -326,7 +326,7 @@ where
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
if let Some(viewport) = layout.bounds().intersection(viewport) { if let Some(viewport) = layout.bounds().intersection(viewport) {
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
@ -334,7 +334,7 @@ where
.filter(|(_, layout)| layout.bounds().intersects(&viewport)) .filter(|(_, layout)| layout.bounds().intersects(&viewport))
{ {
child.as_widget().draw( child.as_widget().draw(
state, renderer, theme, style, layout, cursor, &viewport, tree, renderer, theme, style, layout, cursor, &viewport,
); );
} }
} }

View file

@ -647,19 +647,19 @@ where
fn operate( fn operate(
&mut self, &mut self,
state: &mut Tree, tree: &mut Tree,
layout: Layout<'_>, layout: Layout<'_>,
renderer: &Renderer, renderer: &Renderer,
operation: &mut dyn operation::Operation, operation: &mut dyn operation::Operation,
) { ) {
self.content self.content
.as_widget_mut() .as_widget_mut()
.operate(state, layout, renderer, operation); .operate(tree, layout, renderer, operation);
} }
fn update( fn update(
&mut self, &mut self,
state: &mut Tree, tree: &mut Tree,
event: &Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
@ -674,7 +674,7 @@ where
); );
self.content.as_widget_mut().update( self.content.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );

View file

@ -383,7 +383,7 @@ where
fn draw( fn draw(
&self, &self,
_state: &Tree, _tree: &Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
_theme: &Theme, _theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -308,14 +308,14 @@ where
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter_mut() .iter_mut()
.zip(&mut tree.children) .zip(&mut tree.children)
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );
} }
@ -333,10 +333,10 @@ where
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
.zip(layout.children()) .zip(layout.children())
.map(|((child, state), layout)| { .map(|((child, tree), layout)| {
child.as_widget().mouse_interaction( child
state, layout, cursor, viewport, renderer, .as_widget()
) .mouse_interaction(tree, layout, cursor, viewport, renderer)
}) })
.max() .max()
.unwrap_or_default() .unwrap_or_default()

View file

@ -168,7 +168,7 @@ where
{ {
position: Point, position: Point,
viewport: Rectangle, viewport: Rectangle,
state: &'a mut Tree, tree: &'a mut Tree,
list: Scrollable<'a, Message, Theme, Renderer>, list: Scrollable<'a, Message, Theme, Renderer>,
width: f32, width: f32,
target_height: f32, target_height: f32,
@ -226,7 +226,7 @@ where
Self { Self {
position, position,
viewport, viewport,
state: &mut state.tree, tree: &mut state.tree,
list, list,
width, width,
target_height, target_height,
@ -259,7 +259,7 @@ where
) )
.width(self.width); .width(self.width);
let node = self.list.layout(self.state, renderer, &limits); let node = self.list.layout(self.tree, renderer, &limits);
let size = node.size(); let size = node.size();
node.move_to(if space_below > space_above { node.move_to(if space_below > space_above {
@ -281,7 +281,7 @@ where
let bounds = layout.bounds(); let bounds = layout.bounds();
self.list.update( self.list.update(
self.state, event, layout, cursor, renderer, clipboard, shell, self.tree, event, layout, cursor, renderer, clipboard, shell,
&bounds, &bounds,
); );
} }
@ -293,7 +293,7 @@ where
renderer: &Renderer, renderer: &Renderer,
) -> mouse::Interaction { ) -> mouse::Interaction {
self.list.mouse_interaction( self.list.mouse_interaction(
self.state, self.tree,
layout, layout,
cursor, cursor,
&self.viewport, &self.viewport,
@ -323,7 +323,7 @@ where
); );
self.list.draw( self.list.draw(
self.state, renderer, theme, defaults, layout, cursor, &bounds, self.tree, renderer, theme, defaults, layout, cursor, &bounds,
); );
} }
} }
@ -487,7 +487,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &Tree, _tree: &Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,
@ -504,7 +504,7 @@ where
fn draw( fn draw(
&self, &self,
_state: &Tree, _tree: &Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
theme: &Theme, theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -166,7 +166,7 @@ where
fn draw( fn draw(
&self, &self,
_state: &Tree, _tree: &Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
theme: &Theme, theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -326,7 +326,7 @@ where
fn update( fn update(
&mut self, &mut self,
_state: &mut Tree, _tree: &mut Tree,
event: &Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
@ -369,7 +369,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &Tree, _tree: &Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -258,14 +258,14 @@ where
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter_mut() .iter_mut()
.zip(&mut tree.children) .zip(&mut tree.children)
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );
} }
@ -283,10 +283,10 @@ where
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
.zip(layout.children()) .zip(layout.children())
.map(|((child, state), layout)| { .map(|((child, tree), layout)| {
child.as_widget().mouse_interaction( child
state, layout, cursor, viewport, renderer, .as_widget()
) .mouse_interaction(tree, layout, cursor, viewport, renderer)
}) })
.max() .max()
.unwrap_or_default() .unwrap_or_default()
@ -309,7 +309,7 @@ where
viewport viewport
}; };
for ((child, state), layout) in self for ((child, tree), layout) in self
.children .children
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
@ -317,7 +317,7 @@ where
.filter(|(_, layout)| layout.bounds().intersects(viewport)) .filter(|(_, layout)| layout.bounds().intersects(viewport))
{ {
child.as_widget().draw( child.as_widget().draw(
state, renderer, theme, style, layout, cursor, viewport, tree, renderer, theme, style, layout, cursor, viewport,
); );
} }
} }

View file

@ -133,7 +133,7 @@ where
fn draw( fn draw(
&self, &self,
_state: &Tree, _tree: &Tree,
renderer: &mut Renderer, renderer: &mut Renderer,
theme: &Theme, theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -81,7 +81,7 @@ where
fn draw( fn draw(
&self, &self,
_state: &Tree, _tree: &Tree,
_renderer: &mut Renderer, _renderer: &mut Renderer,
_theme: &Theme, _theme: &Theme,
_style: &renderer::Style, _style: &renderer::Style,

View file

@ -224,7 +224,7 @@ where
let is_over = cursor.is_over(layout.bounds()); let is_over = cursor.is_over(layout.bounds());
let end = self.children.len() - 1; let end = self.children.len() - 1;
for (i, ((child, state), layout)) in self for (i, ((child, tree), layout)) in self
.children .children
.iter_mut() .iter_mut()
.rev() .rev()
@ -233,7 +233,7 @@ where
.enumerate() .enumerate()
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );
@ -243,7 +243,7 @@ where
if i < end && is_over && !cursor.is_levitating() { if i < end && is_over && !cursor.is_levitating() {
let interaction = child.as_widget().mouse_interaction( let interaction = child.as_widget().mouse_interaction(
state, layout, cursor, viewport, renderer, tree, layout, cursor, viewport, renderer,
); );
if interaction != mouse::Interaction::None { if interaction != mouse::Interaction::None {
@ -266,10 +266,10 @@ where
.rev() .rev()
.zip(tree.children.iter().rev()) .zip(tree.children.iter().rev())
.zip(layout.children().rev()) .zip(layout.children().rev())
.map(|((child, state), layout)| { .map(|((child, tree), layout)| {
child.as_widget().mouse_interaction( child
state, layout, cursor, viewport, renderer, .as_widget()
) .mouse_interaction(tree, layout, cursor, viewport, renderer)
}) })
.find(|&interaction| interaction != mouse::Interaction::None) .find(|&interaction| interaction != mouse::Interaction::None)
.unwrap_or_default() .unwrap_or_default()
@ -298,9 +298,9 @@ where
.rev() .rev()
.zip(tree.children.iter().rev()) .zip(tree.children.iter().rev())
.zip(layout.children().rev()) .zip(layout.children().rev())
.position(|((layer, state), layout)| { .position(|((layer, tree), layout)| {
let interaction = layer.as_widget().mouse_interaction( let interaction = layer.as_widget().mouse_interaction(
state, layout, cursor, viewport, renderer, tree, layout, cursor, viewport, renderer,
); );
interaction != mouse::Interaction::None interaction != mouse::Interaction::None
@ -323,30 +323,30 @@ where
let mut draw_layer = let mut draw_layer =
|i, |i,
layer: &Element<'a, Message, Theme, Renderer>, layer: &Element<'a, Message, Theme, Renderer>,
state, tree,
layout, layout,
cursor| { cursor| {
if i > 0 { if i > 0 {
renderer.with_layer(*viewport, |renderer| { renderer.with_layer(*viewport, |renderer| {
layer.as_widget().draw( layer.as_widget().draw(
state, renderer, theme, style, layout, cursor, tree, renderer, theme, style, layout, cursor,
viewport, viewport,
); );
}); });
} else { } else {
layer.as_widget().draw( layer.as_widget().draw(
state, renderer, theme, style, layout, cursor, tree, renderer, theme, style, layout, cursor,
viewport, viewport,
); );
} }
}; };
for (i, ((layer, state), layout)) in layers.take(layers_below) { for (i, ((layer, tree), layout)) in layers.take(layers_below) {
draw_layer(i, layer, state, layout, mouse::Cursor::Unavailable); draw_layer(i, layer, tree, layout, mouse::Cursor::Unavailable);
} }
for (i, ((layer, state), layout)) in layers { for (i, ((layer, tree), layout)) in layers {
draw_layer(i, layer, state, layout, cursor); draw_layer(i, layer, tree, layout, cursor);
} }
} }
} }

View file

@ -226,8 +226,8 @@ where
.collect() .collect()
} }
fn diff(&self, state: &mut widget::Tree) { fn diff(&self, tree: &mut widget::Tree) {
state.diff_children(&self.cells); tree.diff_children(&self.cells);
} }
fn layout( fn layout(
@ -472,14 +472,14 @@ where
shell: &mut core::Shell<'_, Message>, shell: &mut core::Shell<'_, Message>,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for ((cell, state), layout) in self for ((cell, tree), layout) in self
.cells .cells
.iter_mut() .iter_mut()
.zip(&mut tree.children) .zip(&mut tree.children)
.zip(layout.children()) .zip(layout.children())
{ {
cell.as_widget_mut().update( cell.as_widget_mut().update(
state, event, layout, cursor, renderer, clipboard, shell, tree, event, layout, cursor, renderer, clipboard, shell,
viewport, viewport,
); );
} }
@ -570,10 +570,9 @@ where
.iter() .iter()
.zip(&tree.children) .zip(&tree.children)
.zip(layout.children()) .zip(layout.children())
.map(|((cell, state), layout)| { .map(|((cell, tree), layout)| {
cell.as_widget().mouse_interaction( cell.as_widget()
state, layout, cursor, viewport, renderer, .mouse_interaction(tree, layout, cursor, viewport, renderer)
)
}) })
.max() .max()
.unwrap_or_default() .unwrap_or_default()
@ -599,7 +598,7 @@ where
fn overlay<'b>( fn overlay<'b>(
&'b mut self, &'b mut self,
state: &'b mut widget::Tree, tree: &'b mut widget::Tree,
layout: Layout<'b>, layout: Layout<'b>,
renderer: &Renderer, renderer: &Renderer,
viewport: &Rectangle, viewport: &Rectangle,
@ -607,7 +606,7 @@ where
) -> Option<overlay::Element<'b, Message, Theme, Renderer>> { ) -> Option<overlay::Element<'b, Message, Theme, Renderer>> {
overlay::from_children( overlay::from_children(
&mut self.cells, &mut self.cells,
state, tree,
layout, layout,
renderer, renderer,
viewport, viewport,

View file

@ -1056,7 +1056,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &widget::Tree, _tree: &widget::Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1393,7 +1393,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &Tree, _tree: &Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -316,7 +316,7 @@ where
fn update( fn update(
&mut self, &mut self,
_state: &mut Tree, _tree: &mut Tree,
event: &Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
@ -368,7 +368,7 @@ where
fn mouse_interaction( fn mouse_interaction(
&self, &self,
_state: &Tree, _tree: &Tree,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -300,7 +300,7 @@ where
Some(overlay::Element::new(Box::new(Overlay { Some(overlay::Element::new(Box::new(Overlay {
position: layout.position() + translation, position: layout.position() + translation,
tooltip: &mut self.tooltip, tooltip: &mut self.tooltip,
state: children.next().unwrap(), tree: children.next().unwrap(),
cursor_position, cursor_position,
content_bounds: layout.bounds(), content_bounds: layout.bounds(),
snap_within_viewport: self.snap_within_viewport, snap_within_viewport: self.snap_within_viewport,
@ -372,7 +372,7 @@ where
{ {
position: Point, position: Point,
tooltip: &'b mut Element<'a, Message, Theme, Renderer>, tooltip: &'b mut Element<'a, Message, Theme, Renderer>,
state: &'b mut widget::Tree, tree: &'b mut widget::Tree,
cursor_position: Point, cursor_position: Point,
content_bounds: Rectangle, content_bounds: Rectangle,
snap_within_viewport: bool, snap_within_viewport: bool,
@ -392,7 +392,7 @@ where
let viewport = Rectangle::with_size(bounds); let viewport = Rectangle::with_size(bounds);
let tooltip_layout = self.tooltip.as_widget_mut().layout( let tooltip_layout = self.tooltip.as_widget_mut().layout(
self.state, self.tree,
renderer, renderer,
&layout::Limits::new( &layout::Limits::new(
Size::ZERO, Size::ZERO,
@ -507,7 +507,7 @@ where
}; };
self.tooltip.as_widget().draw( self.tooltip.as_widget().draw(
self.state, self.tree,
renderer, renderer,
theme, theme,
&defaults, &defaults,