cropper

view interface.c @ 7:ec2d11d96fb0

image is now gdk-pixbuff; zoom implemented in a basic way
author meillo@marmaro.de
date Wed, 19 Mar 2008 23:01:43 +0100
parents 61e5a1727231
children b0824876d379
line source
1 #include <sys/types.h>
2 #include <sys/stat.h>
3 #include <unistd.h>
4 #include <string.h>
5 #include <stdio.h>
7 #include <gdk/gdkkeysyms.h>
8 #include <gtk/gtk.h>
9 #include <gdk-pixbuf/gdk-pixbuf.h>
11 #include "main.h"
12 #include "callbacks.h"
13 #include "interface.h"
14 #include "support.h"
16 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
17 g_object_set_data_full (G_OBJECT (component), name, \
18 gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
20 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
21 g_object_set_data (G_OBJECT (component), name, widget)
23 GtkWidget*
24 create_cropper_window (void)
25 {
26 GtkWidget *cropper_window;
27 GtkWidget *dialog_vbox1;
28 GtkWidget *hbox1;
29 GtkWidget *vbox1;
30 GtkWidget *vbox2;
31 GtkWidget *label1;
32 GtkWidget *hbox2;
33 GtkWidget *label2;
34 GtkWidget *table2;
35 GtkWidget *label3;
36 GtkWidget *label5;
37 GtkWidget *label4;
38 GtkWidget *label6;
39 GtkWidget *hbox5;
40 GtkObject *crop_x_spinbutton_adj;
41 GtkWidget *crop_x_spinbutton;
42 GtkWidget *hbox6;
43 GtkObject *crop_y_spinbutton_adj;
44 GtkWidget *crop_y_spinbutton;
45 GtkWidget *hbox7;
46 GtkObject *crop_width_spinbutton_adj;
47 GtkWidget *crop_width_spinbutton;
48 GtkWidget *hbox8;
49 GtkObject *crop_height_spinbutton_adj;
50 GtkWidget *crop_height_spinbutton;
51 GtkWidget *vbox4;
52 GtkWidget *label7;
53 GtkWidget *hbox3;
54 GtkWidget *label8;
55 GtkWidget *table3;
56 GtkWidget *hbox10;
57 GtkWidget *custom_ratio_box;
58 GtkObject *ratio_w_spinbutton_adj;
59 GtkWidget *ratio_w_spinbutton;
60 GtkWidget *ratio_swap_button;
61 GtkWidget *eventbox1;
62 GtkWidget *ratio_swap_image;
63 GtkObject *ratio_h_spinbutton_adj;
64 GtkWidget *ratio_h_spinbutton;
65 GtkWidget *ratio_optionmenu;
66 GtkWidget *menu1;
67 GtkWidget *ratio_none;
68 GtkWidget *ratio_square;
69 GtkWidget *ratio_4x3;
70 GtkWidget *ratio_3x2;
71 GtkWidget *ratio_custom;
72 GtkWidget *vbox5;
73 GtkWidget *frame1;
74 GtkWidget *vbox7;
75 GtkWidget *nav_container;
76 GtkWidget *image_area;
77 GtkWidget *hbox16;
78 GtkWidget *hbox17;
79 GtkWidget *crop_zoom_in_button;
80 GtkWidget *image2;
81 GtkWidget *crop_zoom_out_button;
82 GtkWidget *image4;
83 GtkWidget *crop_zoom_100_button;
84 GtkWidget *image3;
85 GtkWidget *crop_zoom_fit_button;
86 GtkWidget *image1;
87 GtkWidget *dialog_action_area1;
88 GtkWidget *crop_okbutton;
89 GtkWidget *alignment1;
90 GtkWidget *hbox11;
91 GtkWidget *crop_image;
92 GtkWidget *label12;
95 cropper_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
96 gtk_widget_set_name (cropper_window, "cropper_window");
97 gtk_container_set_border_width (GTK_CONTAINER (cropper_window), 6);
98 gtk_window_set_title (GTK_WINDOW (cropper_window), "Cropper");
100 dialog_vbox1 = gtk_vbox_new (FALSE, 6);
101 gtk_widget_set_name (dialog_vbox1, "dialog_vbox1");
102 gtk_widget_show (dialog_vbox1);
103 gtk_container_add (GTK_CONTAINER (cropper_window), dialog_vbox1);
105 hbox1 = gtk_hbox_new (FALSE, 12);
106 gtk_widget_set_name (hbox1, "hbox1");
107 gtk_widget_show (hbox1);
108 gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox1, TRUE, TRUE, 0);
109 gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5);
111 vbox1 = gtk_vbox_new (FALSE, 12);
112 gtk_widget_set_name (vbox1, "vbox1");
113 gtk_widget_show (vbox1);
114 gtk_box_pack_start (GTK_BOX (hbox1), vbox1, FALSE, TRUE, 0);
116 vbox2 = gtk_vbox_new (FALSE, 6);
117 gtk_widget_set_name (vbox2, "vbox2");
118 gtk_widget_show (vbox2);
119 gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, TRUE, 0);
121 label1 = gtk_label_new ("<b>Selection</b>");
122 gtk_widget_set_name (label1, "label1");
123 gtk_widget_show (label1);
124 gtk_box_pack_start (GTK_BOX (vbox2), label1, FALSE, FALSE, 0);
125 gtk_label_set_use_markup (GTK_LABEL (label1), TRUE);
126 gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);
128 hbox2 = gtk_hbox_new (FALSE, 0);
129 gtk_widget_set_name (hbox2, "hbox2");
130 gtk_widget_show (hbox2);
131 gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, TRUE, 0);
133 label2 = gtk_label_new (" ");
134 gtk_widget_set_name (label2, "label2");
135 gtk_widget_show (label2);
136 gtk_box_pack_start (GTK_BOX (hbox2), label2, FALSE, FALSE, 0);
138 table2 = gtk_table_new (4, 2, FALSE);
139 gtk_widget_set_name (table2, "table2");
140 gtk_widget_show (table2);
141 gtk_box_pack_start (GTK_BOX (hbox2), table2, TRUE, TRUE, 0);
142 gtk_table_set_row_spacings (GTK_TABLE (table2), 6);
143 gtk_table_set_col_spacings (GTK_TABLE (table2), 6);
145 label3 = gtk_label_new_with_mnemonic ("_X:");
146 gtk_widget_set_name (label3, "label3");
147 gtk_widget_show (label3);
148 gtk_table_attach (GTK_TABLE (table2), label3, 0, 1, 0, 1,
149 (GtkAttachOptions) (GTK_FILL),
150 (GtkAttachOptions) (0), 0, 0);
151 gtk_misc_set_alignment (GTK_MISC (label3), 0, 0.5);
153 label5 = gtk_label_new_with_mnemonic ("_Y:");
154 gtk_widget_set_name (label5, "label5");
155 gtk_widget_show (label5);
156 gtk_table_attach (GTK_TABLE (table2), label5, 0, 1, 1, 2,
157 (GtkAttachOptions) (GTK_FILL),
158 (GtkAttachOptions) (0), 0, 0);
159 gtk_misc_set_alignment (GTK_MISC (label5), 0, 0.5);
161 label4 = gtk_label_new_with_mnemonic ("_Width:");
162 gtk_widget_set_name (label4, "label4");
163 gtk_widget_show (label4);
164 gtk_table_attach (GTK_TABLE (table2), label4, 0, 1, 2, 3,
165 (GtkAttachOptions) (GTK_FILL),
166 (GtkAttachOptions) (0), 0, 0);
167 gtk_misc_set_alignment (GTK_MISC (label4), 0, 0.5);
169 label6 = gtk_label_new_with_mnemonic ("_Height:");
170 gtk_widget_set_name (label6, "label6");
171 gtk_widget_show (label6);
172 gtk_table_attach (GTK_TABLE (table2), label6, 0, 1, 3, 4,
173 (GtkAttachOptions) (GTK_FILL),
174 (GtkAttachOptions) (0), 0, 0);
175 gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
177 hbox5 = gtk_hbox_new (FALSE, 0);
178 gtk_widget_set_name (hbox5, "hbox5");
179 gtk_widget_show (hbox5);
180 gtk_table_attach (GTK_TABLE (table2), hbox5, 1, 2, 0, 1,
181 (GtkAttachOptions) (GTK_FILL),
182 (GtkAttachOptions) (GTK_FILL), 0, 0);
184 crop_x_spinbutton_adj = gtk_adjustment_new (1, 0, 300, 1, 10, 1);
185 crop_x_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (crop_x_spinbutton_adj), 1, 0);
186 gtk_widget_set_name (crop_x_spinbutton, "crop_x_spinbutton");
187 gtk_widget_show (crop_x_spinbutton);
188 gtk_box_pack_start (GTK_BOX (hbox5), crop_x_spinbutton, FALSE, TRUE, 0);
190 hbox6 = gtk_hbox_new (FALSE, 0);
191 gtk_widget_set_name (hbox6, "hbox6");
192 gtk_widget_show (hbox6);
193 gtk_table_attach (GTK_TABLE (table2), hbox6, 1, 2, 1, 2,
194 (GtkAttachOptions) (GTK_FILL),
195 (GtkAttachOptions) (GTK_FILL), 0, 0);
197 crop_y_spinbutton_adj = gtk_adjustment_new (1, 0, 300, 1, 10, 1);
198 crop_y_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (crop_y_spinbutton_adj), 1, 0);
199 gtk_widget_set_name (crop_y_spinbutton, "crop_y_spinbutton");
200 gtk_widget_show (crop_y_spinbutton);
201 gtk_box_pack_start (GTK_BOX (hbox6), crop_y_spinbutton, FALSE, TRUE, 0);
203 hbox7 = gtk_hbox_new (FALSE, 0);
204 gtk_widget_set_name (hbox7, "hbox7");
205 gtk_widget_show (hbox7);
206 gtk_table_attach (GTK_TABLE (table2), hbox7, 1, 2, 2, 3,
207 (GtkAttachOptions) (GTK_FILL),
208 (GtkAttachOptions) (GTK_FILL), 0, 0);
210 crop_width_spinbutton_adj = gtk_adjustment_new (1, 0, 300, 1, 10, 1);
211 crop_width_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (crop_width_spinbutton_adj), 1, 0);
212 gtk_widget_set_name (crop_width_spinbutton, "crop_width_spinbutton");
213 gtk_widget_show (crop_width_spinbutton);
214 gtk_box_pack_start (GTK_BOX (hbox7), crop_width_spinbutton, FALSE, FALSE, 0);
216 hbox8 = gtk_hbox_new (FALSE, 0);
217 gtk_widget_set_name (hbox8, "hbox8");
218 gtk_widget_show (hbox8);
219 gtk_table_attach (GTK_TABLE (table2), hbox8, 1, 2, 3, 4,
220 (GtkAttachOptions) (GTK_FILL),
221 (GtkAttachOptions) (GTK_FILL), 0, 0);
223 crop_height_spinbutton_adj = gtk_adjustment_new (1, 0, 300, 1, 10, 1);
224 crop_height_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (crop_height_spinbutton_adj), 1, 0);
225 gtk_widget_set_name (crop_height_spinbutton, "crop_height_spinbutton");
226 gtk_widget_show (crop_height_spinbutton);
227 gtk_box_pack_start (GTK_BOX (hbox8), crop_height_spinbutton, FALSE, FALSE, 0);
229 vbox4 = gtk_vbox_new (FALSE, 6);
230 gtk_widget_set_name (vbox4, "vbox4");
231 gtk_widget_show (vbox4);
232 gtk_box_pack_start (GTK_BOX (vbox1), vbox4, FALSE, TRUE, 0);
234 label7 = gtk_label_new ("<b>Aspect ratio</b>");
235 gtk_widget_set_name (label7, "label7");
236 gtk_widget_show (label7);
237 gtk_box_pack_start (GTK_BOX (vbox4), label7, FALSE, FALSE, 0);
238 gtk_label_set_use_markup (GTK_LABEL (label7), TRUE);
239 gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5);
241 hbox3 = gtk_hbox_new (FALSE, 0);
242 gtk_widget_set_name (hbox3, "hbox3");
243 gtk_widget_show (hbox3);
244 gtk_box_pack_start (GTK_BOX (vbox4), hbox3, FALSE, FALSE, 0);
246 label8 = gtk_label_new (" ");
247 gtk_widget_set_name (label8, "label8");
248 gtk_widget_show (label8);
249 gtk_box_pack_start (GTK_BOX (hbox3), label8, FALSE, FALSE, 0);
251 table3 = gtk_table_new (2, 2, FALSE);
252 gtk_widget_set_name (table3, "table3");
253 gtk_widget_show (table3);
254 gtk_box_pack_start (GTK_BOX (hbox3), table3, TRUE, TRUE, 0);
255 gtk_table_set_row_spacings (GTK_TABLE (table3), 6);
256 gtk_table_set_col_spacings (GTK_TABLE (table3), 6);
258 hbox10 = gtk_hbox_new (FALSE, 6);
259 gtk_widget_set_name (hbox10, "hbox10");
260 gtk_widget_show (hbox10);
261 gtk_table_attach (GTK_TABLE (table3), hbox10, 0, 2, 1, 2,
262 (GtkAttachOptions) (GTK_FILL),
263 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
265 custom_ratio_box = gtk_hbox_new (FALSE, 6);
266 gtk_widget_set_name (custom_ratio_box, "custom_ratio_box");
267 gtk_widget_show (custom_ratio_box);
268 gtk_box_pack_start (GTK_BOX (hbox10), custom_ratio_box, TRUE, TRUE, 0);
270 ratio_w_spinbutton_adj = gtk_adjustment_new (1, 1, 9999, 1, 10, 10);
271 ratio_w_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (ratio_w_spinbutton_adj), 1, 0);
272 gtk_widget_set_name (ratio_w_spinbutton, "ratio_w_spinbutton");
273 gtk_widget_show (ratio_w_spinbutton);
274 gtk_box_pack_start (GTK_BOX (custom_ratio_box), ratio_w_spinbutton, FALSE, TRUE, 0);
276 ratio_swap_button = gtk_button_new ();
277 gtk_widget_set_name (ratio_swap_button, "ratio_swap_button");
278 gtk_widget_show (ratio_swap_button);
279 gtk_box_pack_start (GTK_BOX (custom_ratio_box), ratio_swap_button, FALSE, FALSE, 0);
280 gtk_button_set_relief (GTK_BUTTON (ratio_swap_button), GTK_RELIEF_NONE);
282 eventbox1 = gtk_event_box_new ();
283 gtk_widget_set_name (eventbox1, "eventbox1");
284 gtk_widget_show (eventbox1);
285 gtk_container_add (GTK_CONTAINER (ratio_swap_button), eventbox1);
287 ratio_swap_image = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON);
288 gtk_widget_set_name (ratio_swap_image, "ratio_swap_image");
289 gtk_widget_show (ratio_swap_image);
290 gtk_container_add (GTK_CONTAINER (eventbox1), ratio_swap_image);
292 ratio_h_spinbutton_adj = gtk_adjustment_new (1, 1, 9999, 1, 10, 10);
293 ratio_h_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (ratio_h_spinbutton_adj), 1, 0);
294 gtk_widget_set_name (ratio_h_spinbutton, "ratio_h_spinbutton");
295 gtk_widget_show (ratio_h_spinbutton);
296 gtk_box_pack_start (GTK_BOX (custom_ratio_box), ratio_h_spinbutton, FALSE, TRUE, 0);
297 gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (ratio_h_spinbutton), GTK_UPDATE_IF_VALID);
299 ratio_optionmenu = gtk_option_menu_new ();
300 gtk_widget_set_name (ratio_optionmenu, "ratio_optionmenu");
301 gtk_widget_show (ratio_optionmenu);
302 gtk_table_attach (GTK_TABLE (table3), ratio_optionmenu, 0, 2, 0, 1,
303 (GtkAttachOptions) (GTK_FILL),
304 (GtkAttachOptions) (0), 0, 0);
306 menu1 = gtk_menu_new ();
307 gtk_widget_set_name (menu1, "menu1");
309 ratio_none = gtk_menu_item_new_with_mnemonic ("None");
310 gtk_widget_set_name (ratio_none, "ratio_none");
311 gtk_widget_show (ratio_none);
312 gtk_container_add (GTK_CONTAINER (menu1), ratio_none);
314 ratio_square = gtk_menu_item_new_with_mnemonic ("Square");
315 gtk_widget_set_name (ratio_square, "ratio_square");
316 gtk_widget_show (ratio_square);
317 gtk_container_add (GTK_CONTAINER (menu1), ratio_square);
319 ratio_4x3 = gtk_menu_item_new_with_mnemonic ("4 x 3 (Book, DVD)");
320 gtk_widget_set_name (ratio_4x3, "ratio_4x3");
321 gtk_widget_show (ratio_4x3);
322 gtk_container_add (GTK_CONTAINER (menu1), ratio_4x3);
324 ratio_3x2 = gtk_menu_item_new_with_mnemonic ("4 x 6 (Postcard)");
325 gtk_widget_set_name (ratio_3x2, "ratio_3x2");
326 gtk_widget_show (ratio_3x2);
327 gtk_container_add (GTK_CONTAINER (menu1), ratio_3x2);
329 ratio_custom = gtk_menu_item_new_with_mnemonic ("Custom");
330 gtk_widget_set_name (ratio_custom, "ratio_custom");
331 gtk_widget_show (ratio_custom);
332 gtk_container_add (GTK_CONTAINER (menu1), ratio_custom);
334 gtk_option_menu_set_menu (GTK_OPTION_MENU (ratio_optionmenu), menu1);
336 vbox5 = gtk_vbox_new (FALSE, 0);
337 gtk_widget_set_name (vbox5, "vbox5");
338 gtk_widget_show (vbox5);
339 gtk_box_pack_start (GTK_BOX (hbox1), vbox5, TRUE, TRUE, 0);
341 frame1 = gtk_frame_new (NULL);
342 gtk_widget_set_name (frame1, "frame1");
343 gtk_widget_show (frame1);
344 gtk_box_pack_start (GTK_BOX (vbox5), frame1, TRUE, TRUE, 0);
345 gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_NONE);
347 vbox7 = gtk_vbox_new (FALSE, 6);
348 gtk_widget_set_name (vbox7, "vbox7");
349 gtk_widget_show (vbox7);
350 gtk_container_add (GTK_CONTAINER (frame1), vbox7);
352 nav_container = gtk_hbox_new (FALSE, 0);
353 gtk_widget_set_name (nav_container, "nav_container");
354 gtk_widget_show (nav_container);
355 gtk_box_pack_start (GTK_BOX (vbox7), nav_container, TRUE, TRUE, 0);
357 /* image_area */
358 image_buffer = gdk_pixbuf_new_from_file(image_filename, NULL);
359 image_area = gtk_image_new_from_pixbuf(image_buffer);
360 gtk_widget_set_name(image_area, "image_area");
361 gtk_widget_show(image_area);
362 gtk_box_pack_start(GTK_BOX(nav_container), image_area, TRUE, TRUE, 0);
364 hbox16 = gtk_hbox_new (FALSE, 6);
365 gtk_widget_set_name (hbox16, "hbox16");
366 gtk_widget_show (hbox16);
367 gtk_box_pack_start (GTK_BOX (vbox7), hbox16, FALSE, TRUE, 0);
369 hbox17 = gtk_hbox_new (FALSE, 0);
370 gtk_widget_set_name (hbox17, "hbox17");
371 gtk_widget_show (hbox17);
372 gtk_box_pack_end (GTK_BOX (hbox16), hbox17, FALSE, TRUE, 0);
374 crop_zoom_in_button = gtk_button_new ();
375 gtk_widget_set_name (crop_zoom_in_button, "crop_zoom_in_button");
376 gtk_widget_show (crop_zoom_in_button);
377 gtk_box_pack_start (GTK_BOX (hbox17), crop_zoom_in_button, FALSE, FALSE, 0);
378 gtk_button_set_relief (GTK_BUTTON (crop_zoom_in_button), GTK_RELIEF_NONE);
380 image2 = gtk_image_new_from_stock ("gtk-zoom-in", GTK_ICON_SIZE_BUTTON);
381 gtk_widget_set_name (image2, "image2");
382 gtk_widget_show (image2);
383 gtk_container_add (GTK_CONTAINER (crop_zoom_in_button), image2);
385 crop_zoom_out_button = gtk_button_new ();
386 gtk_widget_set_name (crop_zoom_out_button, "crop_zoom_out_button");
387 gtk_widget_show (crop_zoom_out_button);
388 gtk_box_pack_start (GTK_BOX (hbox17), crop_zoom_out_button, FALSE, FALSE, 0);
389 gtk_button_set_relief (GTK_BUTTON (crop_zoom_out_button), GTK_RELIEF_NONE);
391 image4 = gtk_image_new_from_stock ("gtk-zoom-out", GTK_ICON_SIZE_BUTTON);
392 gtk_widget_set_name (image4, "image4");
393 gtk_widget_show (image4);
394 gtk_container_add (GTK_CONTAINER (crop_zoom_out_button), image4);
396 crop_zoom_100_button = gtk_button_new ();
397 gtk_widget_set_name (crop_zoom_100_button, "crop_zoom_100_button");
398 gtk_widget_show (crop_zoom_100_button);
399 gtk_box_pack_start (GTK_BOX (hbox17), crop_zoom_100_button, FALSE, FALSE, 0);
400 gtk_button_set_relief (GTK_BUTTON (crop_zoom_100_button), GTK_RELIEF_NONE);
402 image3 = gtk_image_new_from_stock ("gtk-zoom-100", GTK_ICON_SIZE_BUTTON);
403 gtk_widget_set_name (image3, "image3");
404 gtk_widget_show (image3);
405 gtk_container_add (GTK_CONTAINER (crop_zoom_100_button), image3);
407 crop_zoom_fit_button = gtk_button_new ();
408 gtk_widget_set_name (crop_zoom_fit_button, "crop_zoom_fit_button");
409 gtk_widget_show (crop_zoom_fit_button);
410 gtk_box_pack_start (GTK_BOX (hbox17), crop_zoom_fit_button, FALSE, FALSE, 0);
411 gtk_button_set_relief (GTK_BUTTON (crop_zoom_fit_button), GTK_RELIEF_NONE);
413 image1 = gtk_image_new_from_stock ("gtk-zoom-fit", GTK_ICON_SIZE_BUTTON);
414 gtk_widget_set_name (image1, "image1");
415 gtk_widget_show (image1);
416 gtk_container_add (GTK_CONTAINER (crop_zoom_fit_button), image1);
420 /*
421 okay_box = gtk_hbox_new (FALSE, 0);
422 gtk_widget_set_name (okay_box, "okay_box");
423 gtk_widget_show (okay_box);
424 gtk_box_pack_end (GTK_BOX (hbox16), okay_box, FALSE, TRUE, 0);
425 */
427 crop_okbutton = gtk_button_new ();
428 gtk_widget_set_name (crop_okbutton, "crop_okbutton");
429 gtk_widget_show (crop_okbutton);
430 gtk_box_pack_end (GTK_BOX (dialog_vbox1), crop_okbutton, FALSE, FALSE, 0);
431 GTK_WIDGET_SET_FLAGS (crop_okbutton, GTK_CAN_DEFAULT);
433 alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0);
434 gtk_widget_set_name (alignment1, "alignment1");
435 gtk_widget_show (alignment1);
436 gtk_container_add (GTK_CONTAINER (crop_okbutton), alignment1);
438 hbox11 = gtk_hbox_new (FALSE, 2);
439 gtk_widget_set_name (hbox11, "hbox11");
440 gtk_widget_show (hbox11);
441 gtk_container_add (GTK_CONTAINER (alignment1), hbox11);
443 crop_image = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON);
444 gtk_widget_set_name (crop_image, "crop_image");
445 gtk_widget_show (crop_image);
446 gtk_box_pack_start (GTK_BOX (hbox11), crop_image, FALSE, FALSE, 0);
448 label12 = gtk_label_new_with_mnemonic ("_Crop");
449 gtk_widget_set_name (label12, "label12");
450 gtk_widget_show (label12);
451 gtk_box_pack_start (GTK_BOX (hbox11), label12, FALSE, FALSE, 0);
457 g_signal_connect (G_OBJECT (cropper_window), "show",
458 G_CALLBACK (on_cropper_window_create),
459 NULL);
460 /* destroy */
461 g_signal_connect (G_OBJECT (cropper_window), "destroy",
462 G_CALLBACK (on_cropper_window_destroy),
463 NULL);
466 /* crop */
467 g_signal_connect (G_OBJECT (crop_okbutton), "clicked",
468 G_CALLBACK (on_crop_clicked),
469 NULL);
472 /* zoom */
473 g_signal_connect (G_OBJECT (crop_zoom_in_button), "clicked",
474 G_CALLBACK (on_zoom_in_button_clicked),
475 NULL);
476 g_signal_connect (G_OBJECT (crop_zoom_out_button), "clicked",
477 G_CALLBACK (on_zoom_out_button_clicked),
478 NULL);
479 g_signal_connect (G_OBJECT (crop_zoom_100_button), "clicked",
480 G_CALLBACK (on_zoom_100_button_clicked),
481 NULL);
482 g_signal_connect (G_OBJECT (crop_zoom_fit_button), "clicked",
483 G_CALLBACK (on_zoom_fit_button_clicked),
484 NULL);
487 /* aspect ratio */
488 /*
489 g_signal_connect (G_OBJECT (ratio_w_spinbutton), "value_changed",
490 G_CALLBACK (on_ratio_w_spinbutton_value_changed),
491 NULL);
492 g_signal_connect (G_OBJECT (ratio_swap_button), "clicked",
493 G_CALLBACK (on_ratio_swap_button_clicked),
494 NULL);
495 g_signal_connect (G_OBJECT (ratio_h_spinbutton), "value_changed",
496 G_CALLBACK (on_ratio_h_spinbutton_value_changed),
497 NULL);
499 g_signal_connect (G_OBJECT (ratio_none), "activate",
500 G_CALLBACK (on_ratio_none_activate),
501 NULL);
502 g_signal_connect (G_OBJECT (ratio_square), "activate",
503 G_CALLBACK (on_ratio_square_activate),
504 NULL);
505 g_signal_connect (G_OBJECT (ratio_4x3), "activate",
506 G_CALLBACK (on_ratio_4x3_activate),
507 NULL);
508 g_signal_connect (G_OBJECT (ratio_3x2), "activate",
509 G_CALLBACK (on_ratio_3x2_activate),
510 NULL);
511 g_signal_connect (G_OBJECT (ratio_custom), "activate",
512 G_CALLBACK (on_ratio_custom_activate),
513 NULL);
515 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "ratio_optionmenu")), "changed",
516 G_CALLBACK (ratio_optionmenu_changed_cb),
517 NULL);
518 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "ratio_w_spinbutton")), "value_changed",
519 G_CALLBACK (ratio_value_changed_cb),
520 NULL);
521 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "ratio_h_spinbutton")), "value_changed",
522 G_CALLBACK (ratio_value_changed_cb),
523 NULL);
524 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "ratio_swap_button")), "clicked",
525 G_CALLBACK (ratio_swap_button_cb),
526 NULL);
527 */
530 /* selection */
531 /*
532 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "crop_x_spinbutton")), "value_changed",
533 G_CALLBACK (selection_x_value_changed_cb),
534 data);
535 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "crop_y_spinbutton")), "value_changed",
536 G_CALLBACK (selection_y_value_changed_cb),
537 data);
538 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "crop_width_spinbutton")), "value_changed",
539 G_CALLBACK (selection_width_value_changed_cb),
540 data);
541 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "crop_height_spinbutton")), "value_changed",
542 G_CALLBACK (selection_height_value_changed_cb),
543 data);
544 g_signal_connect (G_OBJECT (lookup_widget(cropper_window, "crop_image")), "selection_changed",
545 G_CALLBACK (selection_changed_cb),
546 data);
547 */
564 /* Store pointers to all widgets, for use by lookup_widget(). */
565 GLADE_HOOKUP_OBJECT_NO_REF (cropper_window, cropper_window, "cropper_window");
566 GLADE_HOOKUP_OBJECT (cropper_window, dialog_vbox1, "dialog_vbox1");
567 GLADE_HOOKUP_OBJECT (cropper_window, hbox1, "hbox1");
568 GLADE_HOOKUP_OBJECT (cropper_window, vbox1, "vbox1");
569 GLADE_HOOKUP_OBJECT (cropper_window, vbox2, "vbox2");
570 GLADE_HOOKUP_OBJECT (cropper_window, label1, "label1");
571 GLADE_HOOKUP_OBJECT (cropper_window, hbox2, "hbox2");
572 GLADE_HOOKUP_OBJECT (cropper_window, label2, "label2");
573 GLADE_HOOKUP_OBJECT (cropper_window, table2, "table2");
574 GLADE_HOOKUP_OBJECT (cropper_window, label3, "label3");
575 GLADE_HOOKUP_OBJECT (cropper_window, label5, "label5");
576 GLADE_HOOKUP_OBJECT (cropper_window, label4, "label4");
577 GLADE_HOOKUP_OBJECT (cropper_window, label6, "label6");
578 GLADE_HOOKUP_OBJECT (cropper_window, hbox5, "hbox5");
579 GLADE_HOOKUP_OBJECT (cropper_window, crop_x_spinbutton, "crop_x_spinbutton");
580 GLADE_HOOKUP_OBJECT (cropper_window, hbox6, "hbox6");
581 GLADE_HOOKUP_OBJECT (cropper_window, crop_y_spinbutton, "crop_y_spinbutton");
582 GLADE_HOOKUP_OBJECT (cropper_window, hbox7, "hbox7");
583 GLADE_HOOKUP_OBJECT (cropper_window, crop_width_spinbutton, "crop_width_spinbutton");
584 GLADE_HOOKUP_OBJECT (cropper_window, hbox8, "hbox8");
585 GLADE_HOOKUP_OBJECT (cropper_window, crop_height_spinbutton, "crop_height_spinbutton");
586 GLADE_HOOKUP_OBJECT (cropper_window, vbox4, "vbox4");
587 GLADE_HOOKUP_OBJECT (cropper_window, label7, "label7");
588 GLADE_HOOKUP_OBJECT (cropper_window, hbox3, "hbox3");
589 GLADE_HOOKUP_OBJECT (cropper_window, label8, "label8");
590 GLADE_HOOKUP_OBJECT (cropper_window, table3, "table3");
591 GLADE_HOOKUP_OBJECT (cropper_window, hbox10, "hbox10");
592 GLADE_HOOKUP_OBJECT (cropper_window, custom_ratio_box, "custom_ratio_box");
593 GLADE_HOOKUP_OBJECT (cropper_window, ratio_w_spinbutton, "ratio_w_spinbutton");
594 GLADE_HOOKUP_OBJECT (cropper_window, ratio_swap_button, "ratio_swap_button");
595 GLADE_HOOKUP_OBJECT (cropper_window, eventbox1, "eventbox1");
596 GLADE_HOOKUP_OBJECT (cropper_window, ratio_swap_image, "ratio_swap_image");
597 GLADE_HOOKUP_OBJECT (cropper_window, ratio_h_spinbutton, "ratio_h_spinbutton");
598 GLADE_HOOKUP_OBJECT (cropper_window, ratio_optionmenu, "ratio_optionmenu");
599 GLADE_HOOKUP_OBJECT (cropper_window, menu1, "menu1");
600 GLADE_HOOKUP_OBJECT (cropper_window, ratio_none, "ratio_none");
601 GLADE_HOOKUP_OBJECT (cropper_window, ratio_square, "ratio_square");
602 GLADE_HOOKUP_OBJECT (cropper_window, ratio_4x3, "ratio_4x3");
603 GLADE_HOOKUP_OBJECT (cropper_window, ratio_3x2, "ratio_3x2");
604 GLADE_HOOKUP_OBJECT (cropper_window, ratio_custom, "ratio_custom");
605 GLADE_HOOKUP_OBJECT (cropper_window, vbox5, "vbox5");
606 GLADE_HOOKUP_OBJECT (cropper_window, frame1, "frame1");
607 GLADE_HOOKUP_OBJECT (cropper_window, vbox7, "vbox7");
608 GLADE_HOOKUP_OBJECT (cropper_window, nav_container, "nav_container");
609 GLADE_HOOKUP_OBJECT (cropper_window, image_area, "image_area");
610 GLADE_HOOKUP_OBJECT (cropper_window, image_buffer, "image_buffer");
611 GLADE_HOOKUP_OBJECT (cropper_window, hbox16, "hbox16");
612 GLADE_HOOKUP_OBJECT (cropper_window, hbox17, "hbox17");
613 GLADE_HOOKUP_OBJECT (cropper_window, crop_zoom_in_button, "crop_zoom_in_button");
614 GLADE_HOOKUP_OBJECT (cropper_window, image2, "image2");
615 GLADE_HOOKUP_OBJECT (cropper_window, crop_zoom_out_button, "crop_zoom_out_button");
616 GLADE_HOOKUP_OBJECT (cropper_window, image4, "image4");
617 GLADE_HOOKUP_OBJECT (cropper_window, crop_zoom_100_button, "crop_zoom_100_button");
618 GLADE_HOOKUP_OBJECT (cropper_window, image3, "image3");
619 GLADE_HOOKUP_OBJECT (cropper_window, crop_zoom_fit_button, "crop_zoom_fit_button");
620 GLADE_HOOKUP_OBJECT (cropper_window, image1, "image1");
621 /*GLADE_HOOKUP_OBJECT_NO_REF (cropper_window, dialog_action_area1, "dialog_action_area1"); */
622 GLADE_HOOKUP_OBJECT (cropper_window, crop_okbutton, "crop_okbutton");
623 GLADE_HOOKUP_OBJECT (cropper_window, alignment1, "alignment1");
624 GLADE_HOOKUP_OBJECT (cropper_window, hbox11, "hbox11");
625 GLADE_HOOKUP_OBJECT (cropper_window, crop_image, "crop_image");
626 GLADE_HOOKUP_OBJECT (cropper_window, label12, "label12");
629 return cropper_window;
630 }