summaryrefslogtreecommitdiffstats
path: root/native/src/widget/image/viewer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/widget/image/viewer.rs')
-rw-r--r--native/src/widget/image/viewer.rs47
1 files changed, 4 insertions, 43 deletions
diff --git a/native/src/widget/image/viewer.rs b/native/src/widget/image/viewer.rs
index 405daf00..d483ed61 100644
--- a/native/src/widget/image/viewer.rs
+++ b/native/src/widget/image/viewer.rs
@@ -88,7 +88,7 @@ impl<'a> Viewer<'a> {
/// will be respected.
fn image_size<Renderer>(&self, renderer: &Renderer, bounds: Size) -> Size
where
- Renderer: self::Renderer + image::Renderer,
+ Renderer: image::Renderer,
{
let (width, height) = renderer.dimensions(&self.handle);
@@ -115,7 +115,7 @@ impl<'a> Viewer<'a> {
impl<'a, Message, Renderer> Widget<Message, Renderer> for Viewer<'a>
where
- Renderer: self::Renderer + image::Renderer,
+ Renderer: image::Renderer,
{
fn width(&self) -> Length {
self.width
@@ -287,7 +287,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
- ) -> Renderer::Output {
+ ) {
let bounds = layout.bounds();
let image_size = self.image_size(renderer, bounds.size());
@@ -302,16 +302,6 @@ where
};
let is_mouse_over = bounds.contains(cursor_position);
-
- self::Renderer::draw(
- renderer,
- &self.state,
- bounds,
- image_size,
- translation,
- self.handle.clone(),
- is_mouse_over,
- )
}
fn hash_layout(&self, state: &mut Hasher) {
@@ -373,38 +363,9 @@ impl State {
}
}
-/// The renderer of an [`Viewer`].
-///
-/// Your [renderer] will need to implement this trait before being
-/// able to use a [`Viewer`] in your user interface.
-///
-/// [renderer]: crate::renderer
-pub trait Renderer: crate::Renderer + Sized {
- /// Draws the [`Viewer`].
- ///
- /// It receives:
- /// - the [`State`] of the [`Viewer`]
- /// - the bounds of the [`Viewer`] widget
- /// - the [`Size`] of the scaled [`Viewer`] image
- /// - the translation of the clipped image
- /// - the [`Handle`] to the underlying image
- /// - whether the mouse is over the [`Viewer`] or not
- ///
- /// [`Handle`]: image::Handle
- fn draw(
- &mut self,
- state: &State,
- bounds: Rectangle,
- image_size: Size,
- translation: Vector,
- handle: image::Handle,
- is_mouse_over: bool,
- ) -> Self::Output;
-}
-
impl<'a, Message, Renderer> From<Viewer<'a>> for Element<'a, Message, Renderer>
where
- Renderer: 'a + self::Renderer + image::Renderer,
+ Renderer: 'a + image::Renderer,
Message: 'a,
{
fn from(viewer: Viewer<'a>) -> Element<'a, Message, Renderer> {