Mercurial > cropper
view callbacks.c @ 3:6aaba3a61563
added ratio control code
author | meillo@marmaro.de |
---|---|
date | Wed, 05 Dec 2007 00:08:39 +0100 |
parents | e359bea4c8ac |
children | 2f11ab3e6047 |
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); /*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_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); } 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) { /*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); } 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")); } 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_cropper_window_destroy (GtkObject* object, gpointer user_data) { gtk_main_quit(); }