ui/gtk/image.c

changeset 594
fc854e0ab924
parent 578
950d2e38957b
child 659
d6baaa93f7be
equal deleted inserted replaced
593:7061c9cf3b52 594:fc854e0ab924
61 return FALSE; 61 return FALSE;
62 } 62 }
63 63
64 #endif 64 #endif
65 65
66 UIWIDGET ui_imageviewer_create(UiObject *obj, UiImageViewerArgs args) { 66 UIWIDGET ui_imageviewer_create(UiObject *obj, UiImageViewerArgs *args) {
67 UiObject *current = uic_current_obj(obj); 67 UiObject *current = uic_current_obj(obj);
68 68
69 GtkWidget *drawingarea = gtk_drawing_area_new(); 69 GtkWidget *drawingarea = gtk_drawing_area_new();
70 GtkWidget *toplevel; 70 GtkWidget *toplevel;
71 GtkWidget *widget = drawingarea; 71 GtkWidget *widget = drawingarea;
76 GtkWidget *eventbox = gtk_event_box_new(); 76 GtkWidget *eventbox = gtk_event_box_new();
77 gtk_container_add(GTK_CONTAINER(eventbox), drawingarea); 77 gtk_container_add(GTK_CONTAINER(eventbox), drawingarea);
78 widget = eventbox; 78 widget = eventbox;
79 #endif 79 #endif
80 80
81 if(args.scrollarea) { 81 if(args->scrollarea) {
82 toplevel = SCROLLEDWINDOW_NEW(); 82 toplevel = SCROLLEDWINDOW_NEW();
83 SCROLLEDWINDOW_SET_CHILD(toplevel, widget); 83 SCROLLEDWINDOW_SET_CHILD(toplevel, widget);
84 args.adjustwidgetsize = TRUE; 84 args->adjustwidgetsize = TRUE;
85 } else { 85 } else {
86 toplevel = widget; 86 toplevel = widget;
87 } 87 }
88 88
89 UiImageViewer *imgviewer = malloc(sizeof(UiImageViewer)); 89 UiImageViewer *imgviewer = malloc(sizeof(UiImageViewer));
90 memset(imgviewer, 0, sizeof(UiImageViewer)); 90 memset(imgviewer, 0, sizeof(UiImageViewer));
91 imgviewer->obj = obj; 91 imgviewer->obj = obj;
92 imgviewer->onbuttonpress = args.onbuttonpress; 92 imgviewer->onbuttonpress = args->onbuttonpress;
93 imgviewer->onbuttonpressdata = args.onbuttonpressdata; 93 imgviewer->onbuttonpressdata = args->onbuttonpressdata;
94 imgviewer->onbuttonrelease = args.onbuttonrelease; 94 imgviewer->onbuttonrelease = args->onbuttonrelease;
95 imgviewer->onbuttonreleasedata = args.onbuttonreleasedata; 95 imgviewer->onbuttonreleasedata = args->onbuttonreleasedata;
96 if(args.image_padding > 0) { 96 if(args->image_padding > 0) {
97 imgviewer->padding_left = args.image_padding; 97 imgviewer->padding_left = args->image_padding;
98 imgviewer->padding_right = args.image_padding; 98 imgviewer->padding_right = args->image_padding;
99 imgviewer->padding_top = args.image_padding; 99 imgviewer->padding_top = args->image_padding;
100 imgviewer->padding_bottom = args.image_padding; 100 imgviewer->padding_bottom = args->image_padding;
101 } else { 101 } else {
102 imgviewer->padding_left = args.image_padding_left; 102 imgviewer->padding_left = args->image_padding_left;
103 imgviewer->padding_right = args.image_padding_right; 103 imgviewer->padding_right = args->image_padding_right;
104 imgviewer->padding_top = args.image_padding_top; 104 imgviewer->padding_top = args->image_padding_top;
105 imgviewer->padding_bottom = args.image_padding_bottom; 105 imgviewer->padding_bottom = args->image_padding_bottom;
106 } 106 }
107 imgviewer->adjustwidgetsize = args.adjustwidgetsize; 107 imgviewer->adjustwidgetsize = args->adjustwidgetsize;
108 imgviewer->autoscale = args.autoscale; 108 imgviewer->autoscale = args->autoscale;
109 imgviewer->useradjustable = args.useradjustable; 109 imgviewer->useradjustable = args->useradjustable;
110 imgviewer->zoom_scale = 20; 110 imgviewer->zoom_scale = 20;
111 111
112 g_object_set_data_full(G_OBJECT(drawingarea), "uiimageviewer", imgviewer, (GDestroyNotify)imageviewer_destroy); 112 g_object_set_data_full(G_OBJECT(drawingarea), "uiimageviewer", imgviewer, (GDestroyNotify)imageviewer_destroy);
113 113
114 UiVar *var = uic_widget_var(obj->ctx, current->ctx, args.value, args.varname, UI_VAR_GENERIC); 114 UiVar *var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_GENERIC);
115 imgviewer->var = var; 115 imgviewer->var = var;
116 imgviewer->widget = drawingarea; 116 imgviewer->widget = drawingarea;
117 117
118 if(var) { 118 if(var) {
119 UiGeneric *value = var->value; 119 UiGeneric *value = var->value;
134 GTK_DRAWING_AREA(drawingarea), 134 GTK_DRAWING_AREA(drawingarea),
135 imageviewer_draw, 135 imageviewer_draw,
136 imgviewer, 136 imgviewer,
137 NULL); 137 NULL);
138 138
139 if(args.useradjustable) { 139 if(args->useradjustable) {
140 gtk_widget_set_focusable(drawingarea, TRUE); 140 gtk_widget_set_focusable(drawingarea, TRUE);
141 } 141 }
142 142
143 GtkEventController *scrollcontroller = gtk_event_controller_scroll_new(GTK_EVENT_CONTROLLER_SCROLL_VERTICAL); 143 GtkEventController *scrollcontroller = gtk_event_controller_scroll_new(GTK_EVENT_CONTROLLER_SCROLL_VERTICAL);
144 g_signal_connect(scrollcontroller, "scroll", G_CALLBACK(ui_imageviewer_scroll), imgviewer); 144 g_signal_connect(scrollcontroller, "scroll", G_CALLBACK(ui_imageviewer_scroll), imgviewer);
180 G_CALLBACK(ui_imageviewer_button_release_event), 180 G_CALLBACK(ui_imageviewer_button_release_event),
181 imgviewer); 181 imgviewer);
182 182
183 #endif 183 #endif
184 184
185 if(args.contextmenu) { 185 if(args->contextmenu) {
186 UIMENU menu = ui_contextmenu_create(args.contextmenu, obj, widget); 186 UIMENU menu = ui_contextmenu_create(args->contextmenu, obj, widget);
187 ui_widget_set_contextmenu(widget, menu); 187 ui_widget_set_contextmenu(widget, menu);
188 } 188 }
189 189
190 UI_APPLY_LAYOUT1(current, args); 190 UI_APPLY_LAYOUT2(current, args);
191 current->container->add(current->container, toplevel, TRUE); 191 current->container->add(current->container, toplevel, TRUE);
192 192
193 return toplevel; 193 return toplevel;
194 } 194 }
195 195

mercurial