diff options
author | 2020-06-08 18:11:29 +0200 | |
---|---|---|
committer | 2020-06-08 18:11:29 +0200 | |
commit | 041cab0fa499a54d21d2742ba821583f55b2a8fc (patch) | |
tree | 2ae68bbf38c3eaa6eb50788c589f4e10076cb09d /native/src/widget/pane_grid | |
parent | 4960a8827e46cafca672ed7c4550086a9c6029bc (diff) | |
download | iced-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.rs | 24 | ||||
-rw-r--r-- | native/src/widget/pane_grid/state.rs | 3 |
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)] |