summaryrefslogtreecommitdiffstats
path: root/graphics/src/widget/image
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--graphics/src/widget/image.rs21
-rw-r--r--graphics/src/widget/image/viewer.rs55
2 files changed, 6 insertions, 70 deletions
diff --git a/graphics/src/widget/image.rs b/graphics/src/widget/image.rs
index bdf03de3..ad8159de 100644
--- a/graphics/src/widget/image.rs
+++ b/graphics/src/widget/image.rs
@@ -2,13 +2,12 @@
pub mod viewer;
use crate::backend::{self, Backend};
+use crate::{Primitive, Rectangle, Renderer};
-use crate::{Primitive, Renderer};
use iced_native::image;
-use iced_native::mouse;
-use iced_native::Layout;
-pub use iced_native::image::{Handle, Image, Viewer};
+pub use iced_native::widget::image::{Image, Viewer};
+pub use image::Handle;
impl<B> image::Renderer for Renderer<B>
where
@@ -18,17 +17,7 @@ where
self.backend().dimensions(handle)
}
- fn draw(
- &mut self,
- handle: image::Handle,
- layout: Layout<'_>,
- ) -> Self::Output {
- (
- Primitive::Image {
- handle,
- bounds: layout.bounds(),
- },
- mouse::Interaction::default(),
- )
+ fn draw(&mut self, handle: image::Handle, bounds: Rectangle) {
+ self.draw_primitive(Primitive::Image { handle, bounds })
}
}
diff --git a/graphics/src/widget/image/viewer.rs b/graphics/src/widget/image/viewer.rs
index 28dffc4f..9260990a 100644
--- a/graphics/src/widget/image/viewer.rs
+++ b/graphics/src/widget/image/viewer.rs
@@ -1,55 +1,2 @@
//! Zoom and pan on an image.
-use crate::backend::{self, Backend};
-use crate::{Primitive, Renderer};
-
-use iced_native::image;
-use iced_native::image::viewer;
-use iced_native::mouse;
-use iced_native::{Rectangle, Size, Vector};
-
-impl<B> viewer::Renderer for Renderer<B>
-where
- B: Backend + backend::Image,
-{
- fn draw(
- &mut self,
- state: &viewer::State,
- bounds: Rectangle,
- image_size: Size,
- translation: Vector,
- handle: image::Handle,
- is_mouse_over: bool,
- ) -> Self::Output {
- (
- {
- Primitive::Clip {
- bounds,
- content: Box::new(Primitive::Translate {
- translation,
- content: Box::new(Primitive::Image {
- handle,
- bounds: Rectangle {
- x: bounds.x,
- y: bounds.y,
- ..Rectangle::with_size(image_size)
- },
- }),
- }),
- offset: Vector::new(0, 0),
- }
- },
- {
- if state.is_cursor_grabbed() {
- mouse::Interaction::Grabbing
- } else if is_mouse_over
- && (image_size.width > bounds.width
- || image_size.height > bounds.height)
- {
- mouse::Interaction::Grab
- } else {
- mouse::Interaction::Idle
- }
- },
- )
- }
-}
+pub use iced_native::widget::image::Viewer;