On Fri, Jul 31, 2015 at 03:59:55PM +0200, Carlos Garnacho wrote:
> It will allow zooming in/out the loaded image.
> 
> Signed-off-by: Carlos Garnacho <[email protected]>

Reviewed-by: Jonas Ådahl <[email protected]>

> ---
>  clients/image.c | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/clients/image.c b/clients/image.c
> index d28f221..b4339b8 100644
> --- a/clients/image.c
> +++ b/clients/image.c
> @@ -61,6 +61,7 @@ struct image {
>  
>       bool initialized;
>       cairo_matrix_t matrix;
> +     float last_scale;
>  };
>  
>  static double
> @@ -330,6 +331,35 @@ axis_handler(struct widget *widget, struct input *input, 
> uint32_t time,
>  }
>  
>  static void
> +pinch_begin_handler(struct widget *widget,
> +                 struct input *input,
> +                 uint32_t time,
> +                 uint32_t n_fingers,
> +                 void *data)
> +{
> +     struct image *image = data;
> +
> +     image->last_scale = 1;
> +}
> +
> +static void
> +pinch_update_handler(struct widget *widget,
> +                  struct input *input,
> +                  uint32_t time,
> +                  float dx,
> +                  float dy,
> +                  float scale,
> +                  float rotation_delta,
> +                  void *data)
> +{
> +     struct image *image = data;
> +
> +     zoom(image, scale / image->last_scale);
> +     window_schedule_redraw(image->window);
> +     image->last_scale = scale;
> +}
> +
> +static void
>  fullscreen_handler(struct window *window, void *data)
>  {
>       struct image *image = data;
> @@ -400,6 +430,11 @@ image_create(struct display *display, const char 
> *filename,
>       widget_set_button_handler(image->widget, button_handler);
>       widget_set_axis_handler(image->widget, axis_handler);
>       window_set_key_handler(image->window, key_handler);
> +     widget_set_pointer_gesture_pinch_begin_handler(image->widget,
> +                                                    pinch_begin_handler);
> +     widget_set_pointer_gesture_pinch_update_handler(image->widget,
> +                                                     pinch_update_handler);
> +
>       widget_schedule_resize(image->widget, 500, 400);
>  
>       return image;
> -- 
> 2.4.3
> 
> _______________________________________________
> wayland-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to