summaryrefslogtreecommitdiffstats
path: root/native/src/widget/pane_grid/content.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-03-23 17:11:14 +0700
committerLibravatar GitHub <noreply@github.com>2022-03-23 17:11:14 +0700
commit0eef527fa5b04be74141c75b076677473320e321 (patch)
tree5062a9ce2c370632de87a01471526da1176e0a60 /native/src/widget/pane_grid/content.rs
parent4aece6b77617f4a37af8208d8ddb1618bf9052d3 (diff)
parentef4c79ea23e86fec9a8ad0fb27463296c14400e5 (diff)
downloadiced-0eef527fa5b04be74141c75b076677473320e321.tar.gz
iced-0eef527fa5b04be74141c75b076677473320e321.tar.bz2
iced-0eef527fa5b04be74141c75b076677473320e321.zip
Merge pull request #1284 from iced-rs/virtual-widgets
Stateless widgets
Diffstat (limited to 'native/src/widget/pane_grid/content.rs')
-rw-r--r--native/src/widget/pane_grid/content.rs39
1 files changed, 21 insertions, 18 deletions
diff --git a/native/src/widget/pane_grid/content.rs b/native/src/widget/pane_grid/content.rs
index 8b0e8d2a..f0ed0426 100644
--- a/native/src/widget/pane_grid/content.rs
+++ b/native/src/widget/pane_grid/content.rs
@@ -4,7 +4,7 @@ use crate::mouse;
use crate::overlay;
use crate::renderer;
use crate::widget::container;
-use crate::widget::pane_grid::TitleBar;
+use crate::widget::pane_grid::{Draggable, TitleBar};
use crate::{Clipboard, Element, Layout, Point, Rectangle, Shell, Size};
/// The content of a [`Pane`].
@@ -101,23 +101,6 @@ where
}
}
- /// Returns whether the [`Content`] with the given [`Layout`] can be picked
- /// at the provided cursor position.
- pub fn can_be_picked_at(
- &self,
- layout: Layout<'_>,
- cursor_position: Point,
- ) -> bool {
- if let Some(title_bar) = &self.title_bar {
- let mut children = layout.children();
- let title_bar_layout = children.next().unwrap();
-
- title_bar.is_over_pick_area(title_bar_layout, cursor_position)
- } else {
- false
- }
- }
-
pub(crate) fn layout(
&self,
renderer: &Renderer,
@@ -253,6 +236,26 @@ where
}
}
+impl<'a, Message, Renderer> Draggable for &Content<'a, Message, Renderer>
+where
+ Renderer: crate::Renderer,
+{
+ fn can_be_dragged_at(
+ &self,
+ layout: Layout<'_>,
+ cursor_position: Point,
+ ) -> bool {
+ if let Some(title_bar) = &self.title_bar {
+ let mut children = layout.children();
+ let title_bar_layout = children.next().unwrap();
+
+ title_bar.is_over_pick_area(title_bar_layout, cursor_position)
+ } else {
+ false
+ }
+ }
+}
+
impl<'a, T, Message, Renderer> From<T> for Content<'a, Message, Renderer>
where
T: Into<Element<'a, Message, Renderer>>,