[gegl] gegl-binary: add scroll-wheel based zoom



commit 24d590929c9c6f691f8514d4cf8e819bcffa83f7
Author: Øyvind Kolås <pippin gimp org>
Date:   Wed Mar 9 17:30:08 2016 +0100

    gegl-binary: add scroll-wheel based zoom
    
    For now zooming in/out on center, a XXX comment has been added that this
    zooming should happend around mouse cursor.

 bin/ui.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/bin/ui.c b/bin/ui.c
index c749e68..3433546 100644
--- a/bin/ui.c
+++ b/bin/ui.c
@@ -893,6 +893,15 @@ static int slide_cb (Mrg *mrg, void *data)
   return 0;
 }
 
+static void scroll_cb (MrgEvent *event, void *data1, void *data2)
+{
+  /* XXX: should zoom in/out around cursor (event->x , event->y) */
+  if (event->scroll_direction)
+    zoom_out_cb (event, data1, data2);
+  else 
+    zoom_in_cb (event, data1, data2);
+}
+
 static void ui_viewer (State *o)
 {
   Mrg *mrg = o->mrg;
@@ -900,6 +909,9 @@ static void ui_viewer (State *o)
   cairo_rectangle (cr, 0,0, mrg_width(mrg), mrg_height(mrg));
   mrg_listen (mrg, MRG_DRAG, on_pan_drag, o, NULL);
   mrg_listen (mrg, MRG_MOTION, on_viewer_motion, o, NULL);
+
+  mrg_listen (mrg, MRG_SCROLL, scroll_cb, o, NULL);
+
   cairo_scale (cr, mrg_width(mrg), mrg_height(mrg));
   cairo_new_path (cr);
   cairo_rectangle (cr, 0.05, 0.05, 0.05, 0.05);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]