ui/gtk/image.h

changeset 530
7992a44fe719
parent 529
0a4a6b0d1c82
child 532
80a6d8923d75
--- a/ui/gtk/image.h	Sat Mar 29 18:17:01 2025 +0100
+++ b/ui/gtk/image.h	Sat Mar 29 20:03:25 2025 +0100
@@ -47,6 +47,14 @@
     UiBool adjustsize;
     UiBool useradjustable;
     GdkPixbuf *pixbuf;
+    
+    int zoom_scale;    
+    int transx;
+    int transy;
+    int begin_transx;
+    int begin_transy;
+    int zoom;
+    double prev_scale;
 } UiImageViewer;
 
 void ui_cairo_draw_image(UiImageViewer *imgviewer, cairo_t *cr, int width, int height);
@@ -55,6 +63,51 @@
 const char* ui_imageviewer_get_type(UiGeneric *g);
 int ui_imageviewer_set(UiGeneric *g, void *value, const char *type);
 
+#if GTK_MAJOR_VERSION >= 4
+
+gboolean ui_imageviewer_scroll(
+        GtkEventControllerScroll *widget,
+        gdouble dx,
+        gdouble dy,
+        gpointer userdata);
+
+void ui_imageviewer_drag_begin_cb(
+        GtkGestureDrag* self,
+        gdouble start_x,
+        gdouble start_y,
+        gpointer userdata);
+
+void ui_imageviewer_drag_end_cb(
+        GtkGestureDrag* self,
+        gdouble x,
+        gdouble y,
+        gpointer userdata);
+
+void ui_imageviewer_drag_update_cb(
+        GtkGestureDrag* self,
+        gdouble x,
+        gdouble y,
+        gpointer userdata);
+
+#else
+
+gboolean ui_imageviewer_scroll_event(
+        GtkWidget *widget,
+        GdkEventScroll event,
+        gpointer userdata);
+
+gboolean ui_imageviewer_button_press_event(
+        GtkWidget *widget,
+        GdkEventButton event,
+        gpointer userdata);
+
+gboolean ui_imageviewer_button_release_event(
+        GtkWidget *widget,
+        GdkEventButton event,
+        gpointer userdata);
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif

mercurial