summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-10-24 13:55:04 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-10-24 13:55:04 +0200
commit55504ffcd41a5f1c8c35889501337a729b6aac28 (patch)
treebf6499d83c05c3cceb065eb10fd325a22a9046c1
parent089e629f4103bbd248c5f80441774d6ce98680fe (diff)
downloadiced-55504ffcd41a5f1c8c35889501337a729b6aac28.tar.gz
iced-55504ffcd41a5f1c8c35889501337a729b6aac28.tar.bz2
iced-55504ffcd41a5f1c8c35889501337a729b6aac28.zip
Rename `state::Widget` to `pane_grid::Memory`
-rw-r--r--widget/src/pane_grid.rs25
-rw-r--r--widget/src/pane_grid/state.rs6
2 files changed, 15 insertions, 16 deletions
diff --git a/widget/src/pane_grid.rs b/widget/src/pane_grid.rs
index adda79dd..b4ed4b64 100644
--- a/widget/src/pane_grid.rs
+++ b/widget/src/pane_grid.rs
@@ -295,6 +295,12 @@ where
}
}
+#[derive(Default)]
+struct Memory {
+ action: state::Action,
+ order: Vec<Pane>,
+}
+
impl<'a, Message, Theme, Renderer> Widget<Message, Theme, Renderer>
for PaneGrid<'a, Message, Theme, Renderer>
where
@@ -302,11 +308,11 @@ where
Renderer: core::Renderer,
{
fn tag(&self) -> tree::Tag {
- tree::Tag::of::<state::Widget>()
+ tree::Tag::of::<Memory>()
}
fn state(&self) -> tree::State {
- tree::State::new(state::Widget::default())
+ tree::State::new(Memory::default())
}
fn children(&self) -> Vec<Tree> {
@@ -314,7 +320,7 @@ where
}
fn diff(&self, tree: &mut Tree) {
- let state::Widget { panes, .. } = tree.state.downcast_ref();
+ let Memory { order, .. } = tree.state.downcast_ref();
// `Pane` always increments and is iterated by Ord so new
// states are always added at the end. We can simply remove
@@ -325,7 +331,7 @@ where
let mut i = 0;
let mut j = 0;
tree.children.retain(|_| {
- let retain = self.panes.get(i) == panes.get(j);
+ let retain = self.panes.get(i) == order.get(j);
if retain {
i += 1;
@@ -341,8 +347,8 @@ where
Content::state,
);
- let state::Widget { panes, .. } = tree.state.downcast_mut();
- panes.clone_from(&self.panes);
+ let Memory { order, .. } = tree.state.downcast_mut();
+ order.clone_from(&self.panes);
}
fn size(&self) -> Size<Length> {
@@ -430,7 +436,7 @@ where
) -> event::Status {
let mut event_status = event::Status::Ignored;
- let state::Widget { action, .. } = tree.state.downcast_mut();
+ let Memory { action, .. } = tree.state.downcast_mut();
let node = self.internal.layout();
let on_drag = if self.drag_enabled() {
@@ -642,7 +648,7 @@ where
viewport: &Rectangle,
renderer: &Renderer,
) -> mouse::Interaction {
- let state::Widget { action, .. } = tree.state.downcast_ref();
+ let Memory { action, .. } = tree.state.downcast_ref();
if action.picked_pane().is_some() {
return mouse::Interaction::Grabbing;
@@ -716,8 +722,7 @@ where
cursor: mouse::Cursor,
viewport: &Rectangle,
) {
- let state::Widget { action, .. } =
- tree.state.downcast_ref::<state::Widget>();
+ let Memory { action, .. } = tree.state.downcast_ref();
let node = self.internal.layout();
let resize_leeway = self.on_resize.as_ref().map(|(leeway, _)| *leeway);
diff --git a/widget/src/pane_grid/state.rs b/widget/src/pane_grid/state.rs
index f7e8f750..67cd3bf2 100644
--- a/widget/src/pane_grid/state.rs
+++ b/widget/src/pane_grid/state.rs
@@ -465,9 +465,3 @@ impl Action {
}
}
}
-
-#[derive(Default)]
-pub(super) struct Widget {
- pub action: Action,
- pub panes: Vec<Pane>,
-}