diff options
author | 2020-04-29 03:16:03 +0200 | |
---|---|---|
committer | 2020-04-29 03:16:03 +0200 | |
commit | 52719c7076cafb7b01967edf4df11ea72ae45aff (patch) | |
tree | 3421dc7fa11caaec3bcb6bb12915fd7147b40fe3 /wgpu/src/widget | |
parent | 0509710cc59797ce492f55943a6db60c47a2d599 (diff) | |
download | iced-52719c7076cafb7b01967edf4df11ea72ae45aff.tar.gz iced-52719c7076cafb7b01967edf4df11ea72ae45aff.tar.bz2 iced-52719c7076cafb7b01967edf4df11ea72ae45aff.zip |
Let a `canvas::Program` control the mouse cursor
Diffstat (limited to 'wgpu/src/widget')
-rw-r--r-- | wgpu/src/widget/canvas.rs | 2 | ||||
-rw-r--r-- | wgpu/src/widget/canvas/program.rs | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/wgpu/src/widget/canvas.rs b/wgpu/src/widget/canvas.rs index c0506cf7..0006ca8d 100644 --- a/wgpu/src/widget/canvas.rs +++ b/wgpu/src/widget/canvas.rs @@ -210,7 +210,7 @@ impl<Message, P: Program<Message>> Widget<Message, Renderer> .collect(), }), }, - MouseCursor::Idle, + self.program.mouse_cursor(size), ) } diff --git a/wgpu/src/widget/canvas/program.rs b/wgpu/src/widget/canvas/program.rs index 8e35fdfb..9e4aca89 100644 --- a/wgpu/src/widget/canvas/program.rs +++ b/wgpu/src/widget/canvas/program.rs @@ -1,4 +1,5 @@ use crate::canvas::{Event, Geometry, Size}; +use iced_native::MouseCursor; pub trait Program<Message> { fn update(&mut self, _event: Event, _bounds: Size) -> Option<Message> { @@ -6,6 +7,10 @@ pub trait Program<Message> { } fn draw(&self, bounds: Size) -> Vec<Geometry>; + + fn mouse_cursor(&self, _bounds: Size) -> MouseCursor { + MouseCursor::default() + } } impl<T, Message> Program<Message> for &mut T @@ -19,4 +24,8 @@ where fn draw(&self, bounds: Size) -> Vec<Geometry> { T::draw(self, bounds) } + + fn mouse_cursor(&self, bounds: Size) -> MouseCursor { + T::mouse_cursor(self, bounds) + } } |