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 source
1 #include <gtk/gtk.h>
3 #include "main.h"
4 #include "callbacks.h"
5 #include "interface.h"
6 #include "support.h"
9 void update_spin_button_ratio(GtkWidget* spinbutton) {
10 g_print("ratio change: %f\n", ratio);
11 /*gtk_spin_button_set_value((spinbutton), gtk_spin_button_get_value(spinbutton));*/
12 /*gtk_spin_button_update(spinbutton);*/
13 on_ratio_w_spinbutton_value_changed(spinbutton, NULL);
14 }
16 void on_ratio_none_activate (GtkMenuItem* menuitem, gpointer user_data) {
17 ratio = (double) 1;
18 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
19 }
22 void on_ratio_square_activate (GtkMenuItem* menuitem, gpointer user_data) {
23 ratio = (double) 1;
24 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
25 }
28 void on_ratio_4x3_activate (GtkMenuItem* menuitem, gpointer user_data) {
29 ratio = (double) 4/3;
30 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
31 }
34 void on_ratio_3x2_activate (GtkMenuItem* menuitem, gpointer user_data) {
35 ratio = (double) 3/2;
36 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
37 }
40 void on_ratio_custom_activate (GtkMenuItem* menuitem, gpointer user_data) {
41 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"));
42 update_spin_button_ratio(lookup_widget(cropper_window, "ratio_w_spinbutton"));
43 }
49 void on_ratio_w_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) {
50 /*gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_h_spinbutton"), gtk_spin_button_get_value(spinbutton) / ratio);*/
51 g_print("spinbutton W - ratio: %f\n", ratio);
52 gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_h_spinbutton"), gtk_spin_button_get_value(spinbutton) / ratio);
53 }
56 void on_ratio_w_spinbutton_change_value (GtkSpinButton* spinbutton, GtkScrollType scroll, gpointer user_data) {
57 }
60 void on_ratio_h_spinbutton_change_value (GtkSpinButton* spinbutton, GtkScrollType scroll, gpointer user_data) {
61 }
64 void on_ratio_h_spinbutton_value_changed (GtkSpinButton* spinbutton, gpointer user_data) {
65 /*gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(spinbutton) * ratio);*/
66 g_print("spinbutton H - ratio: %f\n", ratio);
67 gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(spinbutton) * ratio);
69 }
72 void on_ratio_swap_button_clicked (GtkButton* button, gpointer user_data) {
74 ratio = 1.0 / ratio;
75 gtk_spin_button_set_value(lookup_widget(cropper_window, "ratio_w_spinbutton"), gtk_spin_button_get_value(lookup_widget(cropper_window, "ratio_h_spinbutton")));
76 gtk_spin_button_update(lookup_widget(cropper_window, "ratio_w_spinbutton"));
78 }
84 gboolean on_cropper_window_delete_event (GtkWidget* widget, GdkEvent *event, gpointer user_data) {
85 /* g_print("thanks for using the program - visit http://prog.marmaro.de\n"); */
86 return FALSE;
87 }
89 void on_cropper_window_destroy (GtkObject* object, gpointer user_data) {
90 gtk_main_quit();
91 }