view callbacks.c @ 6:f53ce3b28bb4

mercurial ignores JPG and PNG now, so I can store them in this directory for testing
author meillo@marmaro.de
date Fri, 07 Dec 2007 21:38:25 +0100
parents 2f11ab3e6047
children ec2d11d96fb0
line wrap: on
line source

#include <gtk/gtk.h>

#include "main.h"
#include "callbacks.h"
#include "interface.h"
#include "support.h"

/*
void update_spin_button_ratio(GtkWidget* spinbutton) {
	g_print("ratio change: %f\n", ratio);
	on_ratio_w_spinbutton_value_changed(spinbutton, NULL);
}





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) {
	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);
}


void on_ratio_w_spinbutton_change_value (GtkSpinButton* spinbutton, GtkScrollType scroll, gpointer user_data) {
}


void on_ratio_h_spinbutton_change_value (GtkSpinButton* spinbutton, GtkScrollType scroll, gpointer user_data) {
}


void on_ratio_h_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) {
	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);

}


void on_ratio_swap_button_clicked (GtkButton* button, gpointer user_data) {
	
	ratio = 1.0 / ratio;
	gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(lookup_widget(cropper_window, "ratio_h_spinbutton")));
	gtk_spin_button_update(lookup_widget(cropper_window, "ratio_w_spinbutton"));

}
*/



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