cropper
diff callbacks.c @ 4:2f11ab3e6047
added option handling; added output for convert; commented all ratio code cause it is not really important now
author | meillo@marmaro.de |
---|---|
date | Fri, 07 Dec 2007 17:40:08 +0100 |
parents | 6aaba3a61563 |
children | ec2d11d96fb0 |
line diff
1.1 --- a/callbacks.c Wed Dec 05 00:08:39 2007 +0100 1.2 +++ b/callbacks.c Fri Dec 07 17:40:08 2007 +0100 1.3 @@ -5,49 +5,131 @@ 1.4 #include "interface.h" 1.5 #include "support.h" 1.6 1.7 - 1.8 +/* 1.9 void update_spin_button_ratio(GtkWidget* spinbutton) { 1.10 g_print("ratio change: %f\n", ratio); 1.11 - /*gtk_spin_button_set_value((spinbutton), gtk_spin_button_get_value(spinbutton));*/ 1.12 - /*gtk_spin_button_update(spinbutton);*/ 1.13 on_ratio_w_spinbutton_value_changed(spinbutton, NULL); 1.14 } 1.15 1.16 + 1.17 + 1.18 + 1.19 + 1.20 void on_ratio_none_activate (GtkMenuItem* menuitem, gpointer user_data) { 1.21 - ratio = (double) 1; 1.22 + ratio = 1; 1.23 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.24 } 1.25 1.26 1.27 void on_ratio_square_activate (GtkMenuItem* menuitem, gpointer user_data) { 1.28 - ratio = (double) 1; 1.29 + ratio = 1; 1.30 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.31 } 1.32 1.33 1.34 void on_ratio_4x3_activate (GtkMenuItem* menuitem, gpointer user_data) { 1.35 - ratio = (double) 4/3; 1.36 + ratio = 4.0/3.0; 1.37 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.38 } 1.39 1.40 1.41 void on_ratio_3x2_activate (GtkMenuItem* menuitem, gpointer user_data) { 1.42 - ratio = (double) 3/2; 1.43 + ratio = 1.5; 1.44 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.45 } 1.46 1.47 1.48 void on_ratio_custom_activate (GtkMenuItem* menuitem, gpointer user_data) { 1.49 - ratio = (double) gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "ratio_w_spinbutton")) / gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "ratio_h_spinbutton")); 1.50 + ratio = gtk_spin_button_get_value(lookup_widget(cropper_window, "ratio_w_spinbutton")) / gtk_spin_button_get_value(lookup_widget(cropper_window, "ratio_h_spinbutton")); 1.51 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.52 } 1.53 +*/ 1.54 1.55 1.56 1.57 1.58 1.59 + 1.60 + 1.61 + 1.62 + 1.63 +/* 1.64 +static void ratio_optionmenu_changed_cb (GtkOptionMenu* optionmenu, gpointer unser_data) { 1.65 + int idx = gtk_option_menu_get_history (optionmenu); 1.66 + int w = 1, h = 1; 1.67 + gboolean use_ratio = TRUE; 1.68 + 1.69 + switch (idx) { 1.70 + case GTH_CROP_RATIO_NONE: 1.71 + use_ratio = FALSE; 1.72 + break; 1.73 + case GTH_CROP_RATIO_SQUARE: 1.74 + w = h = 1; 1.75 + break; 1.76 + case GTH_CROP_RATIO_IMAGE: 1.77 + w = lookup_widget(cropper_window, "image_width"); 1.78 + h = lookup_widget(cropper_window, "image_height"); 1.79 + break; 1.80 + case GTH_CROP_RATIO_DISPLAY: 1.81 + w = lookup_widget(cropper_window, "display_width"); 1.82 + h = lookup_widget(cropper_window, "display_height"); 1.83 + break; 1.84 + case GTH_CROP_RATIO_4_3: 1.85 + w = 4; 1.86 + h = 3; 1.87 + break; 1.88 + case GTH_CROP_RATIO_4_6: 1.89 + w = 4; 1.90 + h = 6; 1.91 + break; 1.92 + case GTH_CROP_RATIO_CUSTOM: 1.93 + default: 1.94 + w = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (lookup_widget(cropper_window, "ratio_w_spinbutton"))); 1.95 + h = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (lookup_widget(cropper_window, "ratio_h_spinbutton"))); 1.96 + break; 1.97 + } 1.98 + 1.99 + gtk_widget_set_sensitive (lookup_widget(cropper_window, "custom_ratio_box"), idx == GTH_CROP_RATIO_CUSTOM); 1.100 + set_spin_value (cropper_window, lookup_widget(cropper_window, "ratio_w_spinbutton"), w); 1.101 + set_spin_value (cropper_window, lookup_widget(cropper_window, "ratio_h_spinbutton"), h); 1.102 + 1.103 + gth_image_selector_set_ratio (GTH_IMAGE_SELECTOR (lookup_widget(cropper_window, "crop_image")), use_ratio, (double) w / h); 1.104 +} 1.105 + 1.106 + 1.107 +static void ratio_value_changed_cb (GtkSpinButton* spin, gpointer unser_data) { 1.108 + int w, h; 1.109 + 1.110 + w = gtk_spin_button_get_value_as_int (lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.111 + h = gtk_spin_button_get_value_as_int (lookup_widget(cropper_window, "ratio_h_spinbutton")); 1.112 + 1.113 + gth_image_selector_set_ratio (GTH_IMAGE_SELECTOR (lookup_widget(cropper_window, "crop_image")), TRUE, (double) w / h); 1.114 +} 1.115 + 1.116 + 1.117 +static void ratio_swap_button_cb (GtkButton* button, gpointer unser_data) { 1.118 + int w, h; 1.119 + 1.120 + w = gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.121 + h = gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "ratio_h_spinbutton")); 1.122 + 1.123 + set_spin_value(cropper_window, lookup_widget(cropper_window, "ratio_w_spinbutton"), h); 1.124 + set_spin_value(cropper_window, lookup_widget(cropper_window, "ratio_h_spinbutton"), w); 1.125 + 1.126 + gth_image_selector_set_ratio(GTH_IMAGE_SELECTOR (lookup_widget(cropper_window, "crop_image")), TRUE, (double) h / w); 1.127 +} 1.128 + 1.129 +*/ 1.130 + 1.131 + 1.132 + 1.133 + 1.134 + 1.135 + 1.136 + 1.137 + 1.138 +/* 1.139 void on_ratio_w_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) { 1.140 - /*gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_h_spinbutton"), gtk_spin_button_get_value(spinbutton) / ratio);*/ 1.141 g_print("spinbutton W - ratio: %f\n", ratio); 1.142 gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_h_spinbutton"), gtk_spin_button_get_value(spinbutton) / ratio); 1.143 } 1.144 @@ -62,7 +144,6 @@ 1.145 1.146 1.147 void on_ratio_h_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) { 1.148 - /*gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(spinbutton) * ratio);*/ 1.149 g_print("spinbutton H - ratio: %f\n", ratio); 1.150 gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(spinbutton) * ratio); 1.151 1.152 @@ -76,15 +157,25 @@ 1.153 gtk_spin_button_update(lookup_widget(cropper_window, "ratio_w_spinbutton")); 1.154 1.155 } 1.156 +*/ 1.157 1.158 1.159 1.160 +void on_crop_clicked(GtkButton* button, gpointer user_data) { 1.161 + char crop_call[256]; 1.162 1.163 + sprintf(crop_call, "echo \"convert -crop %ix%i+%i+%i %s cropped_%s\"", 1.164 + gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_width_spinbutton")), 1.165 + gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_height_spinbutton")), 1.166 + gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_x_spinbutton")), 1.167 + gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_y_spinbutton")), 1.168 + image_filename, 1.169 + image_filename 1.170 + ); 1.171 + system(crop_call); 1.172 + gtk_main_quit(); 1.173 +} 1.174 1.175 -gboolean on_cropper_window_delete_event (GtkWidget* widget, GdkEvent *event, gpointer user_data) { 1.176 - /* g_print("thanks for using the program - visit http://prog.marmaro.de\n"); */ 1.177 - return FALSE; 1.178 -} 1.179 1.180 void on_cropper_window_destroy (GtkObject* object, gpointer user_data) { 1.181 gtk_main_quit();