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 wrap: on
line diff
--- a/callbacks.c	Wed Dec 05 00:08:39 2007 +0100
+++ b/callbacks.c	Fri Dec 07 17:40:08 2007 +0100
@@ -5,49 +5,131 @@
 #include "interface.h"
 #include "support.h"
 
-
+/*
 void update_spin_button_ratio(GtkWidget* spinbutton) {
 	g_print("ratio change: %f\n", ratio);
-	/*gtk_spin_button_set_value((spinbutton), gtk_spin_button_get_value(spinbutton));*/
-	/*gtk_spin_button_update(spinbutton);*/
 	on_ratio_w_spinbutton_value_changed(spinbutton, NULL);
 }
 
-void on_ratio_none_activate (GtkMenuItem* menuitem, gpointer user_data) {
-	ratio = (double) 1;
-	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
-}
-
-
-void on_ratio_square_activate (GtkMenuItem* menuitem, gpointer user_data) {
-	ratio = (double) 1;
-	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
-}
-
-
-void on_ratio_4x3_activate (GtkMenuItem* menuitem, gpointer user_data) {
-	ratio = (double) 4/3;
-	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
-}
-
-
-void on_ratio_3x2_activate (GtkMenuItem* menuitem, gpointer user_data) {
-	ratio = (double) 3/2;
-	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
-}
-
-
-void on_ratio_custom_activate (GtkMenuItem* menuitem, gpointer user_data) {
-	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"));
-	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
-}
-
 
 
 
 
+void on_ratio_none_activate (GtkMenuItem* menuitem, gpointer user_data) {
+	ratio = 1;
+	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
+}
+
+
+void on_ratio_square_activate (GtkMenuItem* menuitem, gpointer user_data) {
+	ratio = 1;
+	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
+}
+
+
+void on_ratio_4x3_activate (GtkMenuItem* menuitem, gpointer user_data) {
+	ratio = 4.0/3.0;
+	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
+}
+
+
+void on_ratio_3x2_activate (GtkMenuItem* menuitem, gpointer user_data) {
+	ratio = 1.5;
+	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
+}
+
+
+void on_ratio_custom_activate (GtkMenuItem* menuitem, gpointer user_data) {
+	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"));
+	update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
+}
+*/
+
+
+
+
+
+
+
+
+
+/*
+static void ratio_optionmenu_changed_cb (GtkOptionMenu* optionmenu, gpointer unser_data) {
+	int      idx = gtk_option_menu_get_history (optionmenu);
+	int      w = 1, h = 1;
+	gboolean use_ratio = TRUE;
+
+	switch (idx) {
+		case GTH_CROP_RATIO_NONE:
+			use_ratio = FALSE;
+			break;
+		case GTH_CROP_RATIO_SQUARE:
+			w = h = 1;
+			break;
+		case GTH_CROP_RATIO_IMAGE:
+			w = lookup_widget(cropper_window, "image_width");
+			h = lookup_widget(cropper_window, "image_height");
+			break;
+		case GTH_CROP_RATIO_DISPLAY:
+			w = lookup_widget(cropper_window, "display_width");
+			h = lookup_widget(cropper_window, "display_height");
+			break;
+		case GTH_CROP_RATIO_4_3:
+			w = 4;
+			h = 3;
+			break;
+		case GTH_CROP_RATIO_4_6:
+			w = 4;
+			h = 6;
+			break;
+		case GTH_CROP_RATIO_CUSTOM:
+		default:
+			w = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (lookup_widget(cropper_window, "ratio_w_spinbutton")));
+			h = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (lookup_widget(cropper_window, "ratio_h_spinbutton")));
+			break;
+	}
+
+	gtk_widget_set_sensitive (lookup_widget(cropper_window, "custom_ratio_box"), idx == GTH_CROP_RATIO_CUSTOM);
+	set_spin_value (cropper_window, lookup_widget(cropper_window, "ratio_w_spinbutton"), w);
+	set_spin_value (cropper_window, lookup_widget(cropper_window, "ratio_h_spinbutton"), h);
+
+	gth_image_selector_set_ratio (GTH_IMAGE_SELECTOR (lookup_widget(cropper_window, "crop_image")), use_ratio, (double) w / h);
+}
+
+
+static void ratio_value_changed_cb (GtkSpinButton* spin, gpointer unser_data) {
+	int w, h;
+
+	w = gtk_spin_button_get_value_as_int (lookup_widget(cropper_window, "ratio_w_spinbutton"));
+	h = gtk_spin_button_get_value_as_int (lookup_widget(cropper_window, "ratio_h_spinbutton"));
+			
+	gth_image_selector_set_ratio (GTH_IMAGE_SELECTOR (lookup_widget(cropper_window, "crop_image")), TRUE, (double) w / h);
+}
+
+
+static void ratio_swap_button_cb (GtkButton* button, gpointer unser_data) {
+	int w, h;
+
+	w = gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "ratio_w_spinbutton"));
+	h = gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "ratio_h_spinbutton"));
+
+	set_spin_value(cropper_window, lookup_widget(cropper_window, "ratio_w_spinbutton"), h);
+	set_spin_value(cropper_window, lookup_widget(cropper_window, "ratio_h_spinbutton"), w);
+
+	gth_image_selector_set_ratio(GTH_IMAGE_SELECTOR (lookup_widget(cropper_window, "crop_image")), TRUE, (double) h / w);
+}
+
+*/
+
+
+
+
+
+
+
+
+/*
 void on_ratio_w_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) {
-	/*gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_h_spinbutton"), gtk_spin_button_get_value(spinbutton) / ratio);*/
 	g_print("spinbutton W - ratio: %f\n", ratio);
 	gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_h_spinbutton"), gtk_spin_button_get_value(spinbutton) / ratio);
 }
@@ -62,7 +144,6 @@
 
 
 void on_ratio_h_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) {
-	/*gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(spinbutton) * ratio);*/
 	g_print("spinbutton H - ratio: %f\n", ratio);
 	gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(spinbutton) * ratio);
 
@@ -76,16 +157,26 @@
 	gtk_spin_button_update(lookup_widget(cropper_window, "ratio_w_spinbutton"));
 
 }
-
-
+*/
 
 
 
-gboolean on_cropper_window_delete_event (GtkWidget* widget, GdkEvent *event, gpointer user_data) {
-	/* g_print("thanks for using the program - visit http://prog.marmaro.de\n"); */
-	return FALSE;
+void on_crop_clicked(GtkButton* button, gpointer user_data) {
+	char crop_call[256];
+
+	sprintf(crop_call, "echo \"convert -crop %ix%i+%i+%i %s cropped_%s\"",
+		gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_width_spinbutton")),
+		gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_height_spinbutton")),
+		gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_x_spinbutton")),
+		gtk_spin_button_get_value_as_int(lookup_widget(cropper_window, "crop_y_spinbutton")),
+		image_filename,
+		image_filename
+	);
+	system(crop_call);
+	gtk_main_quit();
 }
 
+
 void on_cropper_window_destroy (GtkObject* object, gpointer user_data) {
 	gtk_main_quit();
 }