summaryrefslogtreecommitdiffstats
path: root/native/src/widget/pane_grid
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-06-08 18:11:29 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-06-08 18:11:29 +0200
commit041cab0fa499a54d21d2742ba821583f55b2a8fc (patch)
tree2ae68bbf38c3eaa6eb50788c589f4e10076cb09d /native/src/widget/pane_grid
parent4960a8827e46cafca672ed7c4550086a9c6029bc (diff)
downloadiced-041cab0fa499a54d21d2742ba821583f55b2a8fc.tar.gz
iced-041cab0fa499a54d21d2742ba821583f55b2a8fc.tar.bz2
iced-041cab0fa499a54d21d2742ba821583f55b2a8fc.zip
Resize `PaneGrid` without modifier keys
Diffstat (limited to 'native/src/widget/pane_grid')
-rw-r--r--native/src/widget/pane_grid/axis.rs24
-rw-r--r--native/src/widget/pane_grid/state.rs3
2 files changed, 27 insertions, 0 deletions
diff --git a/native/src/widget/pane_grid/axis.rs b/native/src/widget/pane_grid/axis.rs
index b3a306d5..2320cb7c 100644
--- a/native/src/widget/pane_grid/axis.rs
+++ b/native/src/widget/pane_grid/axis.rs
@@ -53,6 +53,30 @@ impl Axis {
}
}
}
+
+ pub(super) fn split_line_bounds(
+ &self,
+ rectangle: Rectangle,
+ ratio: f32,
+ spacing: f32,
+ ) -> Rectangle {
+ match self {
+ Axis::Horizontal => Rectangle {
+ x: rectangle.x,
+ y: (rectangle.y + rectangle.height * ratio - spacing / 2.0)
+ .round(),
+ width: rectangle.width,
+ height: spacing,
+ },
+ Axis::Vertical => Rectangle {
+ x: (rectangle.x + rectangle.width * ratio - spacing / 2.0)
+ .round(),
+ y: rectangle.y,
+ width: spacing,
+ height: rectangle.height,
+ },
+ }
+ }
}
#[cfg(test)]
diff --git a/native/src/widget/pane_grid/state.rs b/native/src/widget/pane_grid/state.rs
index 4b13fb8e..7a53d6c7 100644
--- a/native/src/widget/pane_grid/state.rs
+++ b/native/src/widget/pane_grid/state.rs
@@ -4,6 +4,7 @@ use crate::{
Hasher, Point, Rectangle, Size,
};
+use std::cell::RefCell;
use std::collections::HashMap;
/// The state of a [`PaneGrid`].
@@ -71,6 +72,7 @@ impl<T> State<T> {
internal: Internal {
layout,
last_id,
+ split_cache: RefCell::new(None),
action: Action::Idle { focus: None },
},
modifiers: keyboard::ModifiersState::default(),
@@ -308,6 +310,7 @@ pub struct Internal {
layout: Node,
last_id: usize,
action: Action,
+ split_cache: RefCell<Option<HashMap<Split, (Axis, f32, Rectangle)>>>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]