summaryrefslogtreecommitdiffstats
path: root/wgpu/src/renderer/widget/image_viewer.rs
diff options
context:
space:
mode:
authorLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2020-05-15 09:46:22 -0700
committerLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2020-05-26 16:56:34 -0700
commit431171f975642fe96286f11fb75cd5b06827cc7f (patch)
treed7b49ae0bc76e2197dbae9feafd6a2a888c9a727 /wgpu/src/renderer/widget/image_viewer.rs
parent6bf459e068043847a0ee1e1219056d3aced3f1cb (diff)
downloadiced-431171f975642fe96286f11fb75cd5b06827cc7f.tar.gz
iced-431171f975642fe96286f11fb75cd5b06827cc7f.tar.bz2
iced-431171f975642fe96286f11fb75cd5b06827cc7f.zip
Rename and add to iced image module
Diffstat (limited to 'wgpu/src/renderer/widget/image_viewer.rs')
-rw-r--r--wgpu/src/renderer/widget/image_viewer.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/wgpu/src/renderer/widget/image_viewer.rs b/wgpu/src/renderer/widget/image_viewer.rs
new file mode 100644
index 00000000..b8546d43
--- /dev/null
+++ b/wgpu/src/renderer/widget/image_viewer.rs
@@ -0,0 +1,39 @@
+use crate::{Primitive, Renderer};
+use iced_native::{image, image_viewer, mouse, Rectangle, Vector};
+
+impl image_viewer::Renderer for Renderer {
+ fn draw(
+ &mut self,
+ state: &image_viewer::State,
+ bounds: Rectangle,
+ image_bounds: Rectangle,
+ offset: (u32, u32),
+ handle: image::Handle,
+ is_mouse_over: bool,
+ ) -> Self::Output {
+ (
+ {
+ Primitive::Clip {
+ bounds,
+ offset: Vector::new(offset.0, offset.1),
+ content: Box::new(Primitive::Image {
+ handle,
+ bounds: image_bounds,
+ }),
+ }
+ },
+ {
+ if state.is_cursor_clicked() {
+ mouse::Interaction::Grabbing
+ } else if is_mouse_over
+ && (image_bounds.width > bounds.width
+ || image_bounds.height > bounds.height)
+ {
+ mouse::Interaction::Grab
+ } else {
+ mouse::Interaction::Idle
+ }
+ },
+ )
+ }
+}