comparison cropper.c @ 19:762de8cee1e4 default tip

fixed makefile; some cleanups
author meillo@marmaro.de
date Thu, 04 Mar 2010 19:44:28 +0100
parents 9d6e8105b145
children
comparison
equal deleted inserted replaced
18:9d6e8105b145 19:762de8cee1e4
26 float inc = 0.3; 26 float inc = 0.3;
27 float zoom = 1.0; 27 float zoom = 1.0;
28 28
29 /* from callbacks.h */ 29 /* from callbacks.h */
30 double ratio; 30 double ratio;
31
32 void crop(void);
33 gboolean on_key_press(GtkWidget* window, GdkEventKey* pKey, gpointer userdata);
34 void on_cropper_window_create(GtkObject* object, gpointer user_data);
35 void on_cropper_window_destroy(GtkObject* object, gpointer user_data);
36
37 31
38 32
39 33
40 34
41 #define GLADE_HOOKUP_OBJECT(component,widget,name) \ 35 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
80 return found_widget; 74 return found_widget;
81 } 75 }
82 76
83 77
84 78
85 GtkWidget* 79
86 create_cropper_window(void) 80
87 { 81
88 GtkWidget *cropper_window; 82
89 GtkWidget *dialog_vbox1; 83
90 GtkWidget *status; 84
91 GtkWidget *label1; 85
92 GtkWidget *label2; 86
93 87
94 88
95 cropper_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 89
96 gtk_widget_set_name(cropper_window, "cropper_window"); 90
97 gtk_container_set_border_width(GTK_CONTAINER(cropper_window), 6); 91
98 gtk_window_set_title(GTK_WINDOW(cropper_window), "cropper-0.2"); 92
99 93
100 dialog_vbox1 = gtk_vbox_new(FALSE, 6); 94
101 gtk_widget_set_name(dialog_vbox1, "dialog_vbox1"); 95
102 gtk_widget_show(dialog_vbox1); 96
103 gtk_container_add(GTK_CONTAINER(cropper_window), dialog_vbox1);
104
105
106 status = gtk_hbox_new(FALSE, 0);
107 gtk_widget_set_name(status, "status");
108 gtk_widget_show(status);
109 gtk_box_pack_end(GTK_BOX(dialog_vbox1), status, FALSE, FALSE, 0);
110
111 label1 = gtk_label_new("zoom:");
112 gtk_widget_set_name(label1, "label1");
113 gtk_widget_show(label1);
114 gtk_box_pack_start(GTK_BOX(status), label1, FALSE, FALSE, 0);
115
116 label2 = gtk_label_new("1.0");
117 gtk_widget_set_name(label2, "label2");
118 gtk_widget_show(label2);
119 gtk_box_pack_start(GTK_BOX(status), label2, FALSE, FALSE, 0);
120
121 /* image_area */
122 image_buffer = gdk_pixbuf_new_from_file(image_filename, NULL);
123 image_area = gtk_image_new_from_pixbuf(image_buffer);
124
125 gtk_widget_set_name(image_area, "image_area");
126 gtk_widget_show(image_area);
127 gtk_box_pack_start(GTK_BOX(dialog_vbox1), image_area, TRUE, TRUE, 0);
128
129
130
131
132
133 g_signal_connect(G_OBJECT(cropper_window), "show",
134 G_CALLBACK(on_cropper_window_create), NULL);
135
136 g_signal_connect(G_OBJECT(cropper_window), "destroy",
137 G_CALLBACK(on_cropper_window_destroy), NULL);
138
139 g_signal_connect(cropper_window, "key-press-event",
140 G_CALLBACK(on_key_press), NULL);
141
142
143 /* Store pointers to all widgets, for use by lookup_widget(). */
144
145 GLADE_HOOKUP_OBJECT_NO_REF(cropper_window, cropper_window, "cropper_window");
146 GLADE_HOOKUP_OBJECT(cropper_window, dialog_vbox1, "dialog_vbox1");
147
148 GLADE_HOOKUP_OBJECT(cropper_window, label1, "label1");
149 GLADE_HOOKUP_OBJECT(cropper_window, label2, "label2");
150 GLADE_HOOKUP_OBJECT(cropper_window, status, "status");
151 GLADE_HOOKUP_OBJECT(cropper_window, image_area, "image_area");
152 GLADE_HOOKUP_OBJECT(cropper_window,(GtkWidget*) image_buffer, "image_buffer");
153
154
155 return cropper_window;
156 }
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178 void
179 update_title(char* zoom)
180 {
181 char title[128];
182 snprintf(title, 128, "cropper (%s) %dx%d+%d+%d", zoom, w, h, x, y);
183 gtk_window_set_title(GTK_WINDOW(cropper_window), title);
184 }
185 97
186 98
187 /* zoom */ 99 /* zoom */
188 void 100 void
189 set_zoom() 101 set_zoom()
244 crop(void) 156 crop(void)
245 { 157 {
246 char crop_call[256]; 158 char crop_call[256];
247 159
248 sprintf(crop_call, "echo \"convert -crop %ix%i+%i+%i %s cropped_%s\"", 160 sprintf(crop_call, "echo \"convert -crop %ix%i+%i+%i %s cropped_%s\"",
249 gtk_spin_button_get_value_as_int((GtkSpinButton*) lookup_widget(cropper_window, 161 w, h, x, y, image_filename, image_filename);
250 "crop_width_spinbutton")),
251 gtk_spin_button_get_value_as_int((GtkSpinButton*) lookup_widget(cropper_window,
252 "crop_height_spinbutton")),
253 gtk_spin_button_get_value_as_int((GtkSpinButton*) lookup_widget(cropper_window,
254 "crop_x_spinbutton")),
255 gtk_spin_button_get_value_as_int((GtkSpinButton*) lookup_widget(cropper_window,
256 "crop_y_spinbutton")),
257 image_filename,
258 image_filename
259 );
260 system(crop_call); 162 system(crop_call);
261 gtk_main_quit(); 163 gtk_main_quit();
262 } 164 }
263 165
264 166
322 return TRUE; 224 return TRUE;
323 } 225 }
324 226
325 227
326 228
229
230
231 GtkWidget*
232 create_cropper_window(void)
233 {
234 GtkWidget *cropper_window;
235 GtkWidget *dialog_vbox1;
236 GtkWidget *status;
237 GtkWidget *label1;
238 GtkWidget *label2;
239
240
241 cropper_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
242 gtk_widget_set_name(cropper_window, "cropper_window");
243 gtk_container_set_border_width(GTK_CONTAINER(cropper_window), 6);
244 gtk_window_set_title(GTK_WINDOW(cropper_window), "cropper-0.2");
245
246 dialog_vbox1 = gtk_vbox_new(FALSE, 6);
247 gtk_widget_set_name(dialog_vbox1, "dialog_vbox1");
248 gtk_widget_show(dialog_vbox1);
249 gtk_container_add(GTK_CONTAINER(cropper_window), dialog_vbox1);
250
251
252 status = gtk_hbox_new(FALSE, 0);
253 gtk_widget_set_name(status, "status");
254 gtk_widget_show(status);
255 gtk_box_pack_end(GTK_BOX(dialog_vbox1), status, FALSE, FALSE, 0);
256
257 label1 = gtk_label_new("zoom:");
258 gtk_widget_set_name(label1, "label1");
259 gtk_widget_show(label1);
260 gtk_box_pack_start(GTK_BOX(status), label1, FALSE, FALSE, 0);
261
262 label2 = gtk_label_new("1.0");
263 gtk_widget_set_name(label2, "label2");
264 gtk_widget_show(label2);
265 gtk_box_pack_start(GTK_BOX(status), label2, FALSE, FALSE, 0);
266
267 /* image_area */
268 image_buffer = gdk_pixbuf_new_from_file(image_filename, NULL);
269 image_area = gtk_image_new_from_pixbuf(image_buffer);
270
271 gtk_widget_set_name(image_area, "image_area");
272 gtk_widget_show(image_area);
273 gtk_box_pack_start(GTK_BOX(dialog_vbox1), image_area, TRUE, TRUE, 0);
274
275
276
277
278
279 g_signal_connect(G_OBJECT(cropper_window), "show",
280 G_CALLBACK(on_cropper_window_create), NULL);
281
282 g_signal_connect(G_OBJECT(cropper_window), "destroy",
283 G_CALLBACK(on_cropper_window_destroy), NULL);
284
285 g_signal_connect(cropper_window, "key-press-event",
286 G_CALLBACK(on_key_press), NULL);
287
288
289 /* Store pointers to all widgets, for use by lookup_widget(). */
290
291 GLADE_HOOKUP_OBJECT_NO_REF(cropper_window, cropper_window, "cropper_window");
292 GLADE_HOOKUP_OBJECT(cropper_window, dialog_vbox1, "dialog_vbox1");
293
294 GLADE_HOOKUP_OBJECT(cropper_window, label1, "label1");
295 GLADE_HOOKUP_OBJECT(cropper_window, label2, "label2");
296 GLADE_HOOKUP_OBJECT(cropper_window, status, "status");
297 GLADE_HOOKUP_OBJECT(cropper_window, image_area, "image_area");
298 GLADE_HOOKUP_OBJECT(cropper_window,(GtkWidget*) image_buffer, "image_buffer");
299
300
301 return cropper_window;
302 }
327 303
328 304
329 305
330 306
331 307
346 gtk_widget_show(cropper_window); 322 gtk_widget_show(cropper_window);
347 gtk_main(); 323 gtk_main();
348 324
349 return 0; 325 return 0;
350 } 326 }
351