diff options
Diffstat (limited to '')
-rw-r--r-- | native/src/overlay.rs | 15 | ||||
-rw-r--r-- | native/src/overlay/element.rs | 13 |
2 files changed, 26 insertions, 2 deletions
diff --git a/native/src/overlay.rs b/native/src/overlay.rs index 25b49adf..70e3305b 100644 --- a/native/src/overlay.rs +++ b/native/src/overlay.rs @@ -8,8 +8,9 @@ pub use menu::Menu; use crate::event::{self, Event}; use crate::layout; +use crate::mouse; use crate::renderer; -use crate::{Clipboard, Hasher, Layout, Point, Size}; +use crate::{Clipboard, Hasher, Layout, Point, Rectangle, Size}; /// An interactive component that can be displayed on top of other widgets. pub trait Overlay<Message, Renderer> @@ -74,4 +75,16 @@ where ) -> event::Status { event::Status::Ignored } + + /// Returns the current [`mouse::Interaction`] of the [`Widget`]. + /// + /// By default, it returns [`mouse::Interaction::Idle`]. + fn mouse_interaction( + &self, + _layout: Layout<'_>, + _viewport: &Rectangle, + _cursor_position: Point, + ) -> mouse::Interaction { + mouse::Interaction::Idle + } } diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs index bf3fb3f0..988cca09 100644 --- a/native/src/overlay/element.rs +++ b/native/src/overlay/element.rs @@ -2,8 +2,9 @@ pub use crate::Overlay; use crate::event::{self, Event}; use crate::layout; +use crate::mouse; use crate::renderer; -use crate::{Clipboard, Hasher, Layout, Point, Size, Vector}; +use crate::{Clipboard, Hasher, Layout, Point, Rectangle, Size, Vector}; /// A generic [`Overlay`]. #[allow(missing_debug_implementations)] @@ -68,6 +69,16 @@ where ) } + pub fn mouse_interaction( + &self, + layout: Layout<'_>, + viewport: &Rectangle, + cursor_position: Point, + ) -> mouse::Interaction { + self.overlay + .mouse_interaction(layout, viewport, cursor_position) + } + /// Draws the [`Element`] and its children using the given [`Layout`]. pub fn draw( &self, |