| 34 |
34 |
| 35 #ifdef __cplusplus |
35 #ifdef __cplusplus |
| 36 extern "C" { |
36 extern "C" { |
| 37 #endif |
37 #endif |
| 38 |
38 |
| |
39 typedef struct UiImageViewer { |
| |
40 UiObject *obj; |
| |
41 GtkWidget *widget; |
| |
42 UiVar *var; |
| |
43 int padding_left; |
| |
44 int padding_right; |
| |
45 int padding_top; |
| |
46 int padding_bottom; |
| |
47 UiBool autoscale; |
| |
48 UiBool adjustwidgetsize; |
| |
49 UiBool useradjustable; |
| |
50 GdkPixbuf *pixbuf; |
| |
51 |
| |
52 double zoom_scale; |
| |
53 int transx; |
| |
54 int transy; |
| |
55 int begin_transx; |
| |
56 int begin_transy; |
| |
57 UiBool isautoscaled; |
| |
58 double user_scale; |
| |
59 double scale; |
| |
60 |
| |
61 ui_callback onbuttonpress; |
| |
62 void *onbuttonpressdata; |
| |
63 ui_callback onbuttonrelease; |
| |
64 void *onbuttonreleasedata; |
| |
65 } UiImageViewer; |
| |
66 |
| |
67 void ui_cairo_draw_image(UiImageViewer *imgviewer, cairo_t *cr, int width, int height); |
| 39 |
68 |
| 40 void* ui_imageviewer_get(UiGeneric *g); |
69 void* ui_imageviewer_get(UiGeneric *g); |
| 41 const char* ui_imageviewer_get_type(UiGeneric *g); |
70 const char* ui_imageviewer_get_type(UiGeneric *g); |
| 42 int ui_imageviewer_set(UiGeneric *g, void *value, const char *type); |
71 int ui_imageviewer_set(UiGeneric *g, void *value, const char *type); |
| |
72 |
| |
73 #if GTK_MAJOR_VERSION >= 4 |
| |
74 |
| |
75 gboolean ui_imageviewer_scroll( |
| |
76 GtkEventControllerScroll *widget, |
| |
77 gdouble dx, |
| |
78 gdouble dy, |
| |
79 gpointer userdata); |
| |
80 |
| |
81 void ui_imageviewer_drag_begin_cb( |
| |
82 GtkGestureDrag* self, |
| |
83 gdouble start_x, |
| |
84 gdouble start_y, |
| |
85 gpointer userdata); |
| |
86 |
| |
87 void ui_imageviewer_drag_end_cb( |
| |
88 GtkGestureDrag* self, |
| |
89 gdouble x, |
| |
90 gdouble y, |
| |
91 gpointer userdata); |
| |
92 |
| |
93 void ui_imageviewer_drag_update_cb( |
| |
94 GtkGestureDrag* self, |
| |
95 gdouble x, |
| |
96 gdouble y, |
| |
97 gpointer userdata); |
| |
98 |
| |
99 void ui_imageviewer_pressed_cb( |
| |
100 GtkGestureClick *self, |
| |
101 gint n_press, |
| |
102 gdouble x, |
| |
103 gdouble y, |
| |
104 gpointer userdata); |
| |
105 |
| |
106 void ui_imageviewer_released_cb( |
| |
107 GtkGestureClick *self, |
| |
108 gint n_press, |
| |
109 gdouble x, |
| |
110 gdouble y, |
| |
111 gpointer userdata); |
| |
112 |
| |
113 #else |
| |
114 |
| |
115 gboolean ui_imageviewer_scroll_event( |
| |
116 GtkWidget *widget, |
| |
117 GdkEventScroll event, |
| |
118 gpointer userdata); |
| |
119 |
| |
120 gboolean ui_imageviewer_button_press_event( |
| |
121 GtkWidget *widget, |
| |
122 GdkEventButton event, |
| |
123 gpointer userdata); |
| |
124 |
| |
125 gboolean ui_imageviewer_button_release_event( |
| |
126 GtkWidget *widget, |
| |
127 GdkEventButton event, |
| |
128 gpointer userdata); |
| |
129 |
| |
130 #endif |
| 43 |
131 |
| 44 #ifdef __cplusplus |
132 #ifdef __cplusplus |
| 45 } |
133 } |
| 46 #endif |
134 #endif |
| 47 |
135 |