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();