gcalctool r2267 - in trunk: . gcalctool glade



Author: rancell
Date: Mon Oct 13 01:03:37 2008
New Revision: 2267
URL: http://svn.gnome.org/viewvc/gcalctool?rev=2267&view=rev

Log:
Made financial dialogs move to next entry/complete form when activating entries (Robin Sonefors, Bug #318686)


Modified:
   trunk/ChangeLog
   trunk/gcalctool/gtk.c
   trunk/glade/financial.glade

Modified: trunk/gcalctool/gtk.c
==============================================================================
--- trunk/gcalctool/gtk.c	(original)
+++ trunk/gcalctool/gtk.c	Mon Oct 13 01:03:37 2008
@@ -63,8 +63,10 @@
     N_("Calculator [%s] - Scientific"), N_("Calculator [%s] - Programming")
 };
 
+#define FINC_NUM_ARGS 4
+
 /* The names of each field in the dialogs for the financial functions */
-static char *finc_dialog_fields[FINC_NUM_DIALOGS][4] = {
+static char *finc_dialog_fields[FINC_NUM_DIALOGS][FINC_NUM_ARGS] = {
     {"ctrm_pint", "ctrm_fv",     "ctrm_pv",    NULL},
     {"ddb_cost",  "ddb_life",    "ddb_period", NULL},
     {"fv_pmt",    "fv_pint",     "fv_n",       NULL},
@@ -1370,17 +1372,50 @@
 
 
 static void
+finc_activate_cb(GtkWidget *widget, void *pointer) {
+    gint i, dialog;
+    GtkWidget *next_widget, *dialog_widget;
+    const char* widget_name = glade_get_widget_name(widget);
+    for (dialog = 0; dialog < FINC_NUM_DIALOGS; dialog++) {
+        for (i = 0; i < FINC_NUM_ARGS; i++) {
+            if (finc_dialog_fields[dialog][i] == NULL ||
+                g_ascii_strcasecmp(widget_name, 
+                                   finc_dialog_fields[dialog][i])) {
+                continue;
+            }
+            
+            if (i < FINC_NUM_ARGS - 1 &&
+                finc_dialog_fields[dialog][i+1] != NULL) {
+                next_widget = glade_xml_get_widget(X->financial,
+                                                   finc_dialog_fields[dialog][i+1]);
+                gtk_widget_grab_focus(next_widget);
+                return;
+            }
+            else {
+                dialog_widget = gtk_widget_get_toplevel(widget);
+				if (GTK_WIDGET_TOPLEVEL (dialog_widget)) {
+                	gtk_dialog_response(GTK_DIALOG(dialog_widget),
+                                        GTK_RESPONSE_OK);
+                    return;
+                }
+            }
+        }
+    }
+}
+
+
+static void
 finc_response_cb(GtkWidget *widget, gint response_id, void *dialog_pointer)
 {
     int dialog = GPOINTER_TO_INT (dialog_pointer);
     int i;
-    int arg[4][MP_SIZE];
+    int arg[FINC_NUM_ARGS][MP_SIZE];
     GtkWidget *entry;
     if (response_id != GTK_RESPONSE_OK) {
         return;
     }
 
-    for (i = 0; i < 4; i++) {
+    for (i = 0; i < FINC_NUM_ARGS; i++) {
         if (finc_dialog_fields[dialog][i] == NULL) {
             continue;
         }
@@ -1430,6 +1465,9 @@
                              G_CALLBACK(finc_response_cb), 
                              GINT_TO_POINTER(FINC_TERM_DIALOG));
 
+	glade_xml_signal_connect(X->financial, "finc_activate_cb", 
+                             G_CALLBACK(finc_activate_cb));
+
     button = GET_WIDGET("calc_finc_compounding_term_button");
     g_object_set_data(G_OBJECT(button), "finc_dialog", "ctrm_dialog");
     button = GET_WIDGET("calc_finc_double_declining_depreciation_button");

Modified: trunk/glade/financial.glade
==============================================================================
--- trunk/glade/financial.glade	(original)
+++ trunk/glade/financial.glade	Mon Oct 13 01:03:37 2008
@@ -90,6 +90,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -111,6 +112,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -132,6 +134,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -437,6 +440,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -458,6 +462,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -508,6 +513,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -727,6 +733,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -748,6 +755,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -769,6 +777,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -988,6 +997,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1009,6 +1019,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1030,6 +1041,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1249,6 +1261,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1270,6 +1283,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1291,6 +1305,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1510,6 +1525,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1531,6 +1547,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1552,6 +1569,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1743,6 +1761,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1764,6 +1783,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1785,6 +1805,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2033,6 +2054,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2054,6 +2076,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2075,6 +2098,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2096,6 +2120,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2228,6 +2253,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2249,6 +2275,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -2270,6 +2297,7 @@
 	      <property name="has_frame">True</property>
 	      <property name="invisible_char">â</property>
 	      <property name="activates_default">False</property>
+	      <signal name="activate" handler="finc_activate_cb"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]