summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-29 03:16:03 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-29 03:16:03 +0200
commit52719c7076cafb7b01967edf4df11ea72ae45aff (patch)
tree3421dc7fa11caaec3bcb6bb12915fd7147b40fe3 /wgpu/src/widget
parent0509710cc59797ce492f55943a6db60c47a2d599 (diff)
downloadiced-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.rs2
-rw-r--r--wgpu/src/widget/canvas/program.rs9
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)
+ }
}