diff options
author | 2020-06-05 14:02:29 +0200 | |
---|---|---|
committer | 2020-06-05 14:02:29 +0200 | |
commit | 4dc5bffdfbfb09a017f35c12b484301fcf044876 (patch) | |
tree | 2175e006a72050aaef4789bc1bf8d5513274057f /native/src/widget/pane_grid/state.rs | |
parent | e8e656b3300093e384771a6083e25e9395bbeb50 (diff) | |
download | iced-4dc5bffdfbfb09a017f35c12b484301fcf044876.tar.gz iced-4dc5bffdfbfb09a017f35c12b484301fcf044876.tar.bz2 iced-4dc5bffdfbfb09a017f35c12b484301fcf044876.zip |
Draft draggable and graphics logic for `TitleBar`
Diffstat (limited to 'native/src/widget/pane_grid/state.rs')
-rw-r--r-- | native/src/widget/pane_grid/state.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/native/src/widget/pane_grid/state.rs b/native/src/widget/pane_grid/state.rs index 943120e3..a8431dec 100644 --- a/native/src/widget/pane_grid/state.rs +++ b/native/src/widget/pane_grid/state.rs @@ -313,13 +313,14 @@ pub struct Internal { action: Action, } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq)] pub enum Action { Idle { focus: Option<Pane>, }, Dragging { pane: Pane, + origin: Point, }, Resizing { split: Split, @@ -334,7 +335,7 @@ impl Action { Action::Idle { focus } | Action::Resizing { focus, .. } => { focus.map(|pane| (pane, Focus::Idle)) } - Action::Dragging { pane } => Some((*pane, Focus::Dragging)), + Action::Dragging { pane, .. } => Some((*pane, Focus::Dragging)), } } } @@ -351,9 +352,9 @@ impl Internal { } } - pub fn picked_pane(&self) -> Option<Pane> { + pub fn picked_pane(&self) -> Option<(Pane, Point)> { match self.action { - Action::Dragging { pane } => Some(pane), + Action::Dragging { pane, origin } => Some((pane, origin)), _ => None, } } @@ -385,8 +386,11 @@ impl Internal { self.action = Action::Idle { focus: Some(*pane) }; } - pub fn pick_pane(&mut self, pane: &Pane) { - self.action = Action::Dragging { pane: *pane }; + pub fn pick_pane(&mut self, pane: &Pane, origin: Point) { + self.action = Action::Dragging { + pane: *pane, + origin, + }; } pub fn pick_split(&mut self, split: &Split, axis: Axis) { |