diff --git a/ChangeLog b/ChangeLog index 97fb6931e8..9fb015e28d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-01-21 David Hampton + + * src/gnome-utils/gnc-amount-edit.c: + * src/gnome/dialog-fincalc.c: + * src/gnome/glade/fincalc.glade: Overhaul the financial calculator + dialog. + 2006-01-21 Derek Atkins * src/bin/gnucash-bin.c: update splash screen while loading modules. diff --git a/src/gnome-utils/gnc-amount-edit.c b/src/gnome-utils/gnc-amount-edit.c index 187080e656..cfffce9803 100644 --- a/src/gnome-utils/gnc-amount-edit.c +++ b/src/gnome-utils/gnc-amount-edit.c @@ -195,6 +195,7 @@ gnc_amount_edit_new (void) GNCAmountEdit *gae; gae = g_object_new (GNC_TYPE_AMOUNT_EDIT, NULL); + gtk_widget_show (GTK_WIDGET(gae)); return GTK_WIDGET (gae); } diff --git a/src/gnome/dialog-fincalc.c b/src/gnome/dialog-fincalc.c index 4b83941c5d..e84c7261cc 100644 --- a/src/gnome/dialog-fincalc.c +++ b/src/gnome/dialog-fincalc.c @@ -40,6 +40,7 @@ #define DIALOG_FINCALC_CM_CLASS "dialog-fincalc" +#define GCONF_SECTION "dialogs/fincalc" typedef enum { @@ -55,10 +56,13 @@ typedef enum /** Datatypes ***********************************************************/ struct _FinCalcDialog { + GladeXML *xml; GtkWidget *dialog; GtkWidget *amounts[NUM_FIN_CALC_VALUES]; + GtkWidget *calc_button; + GtkWidget *compounding_menu; GtkWidget *payment_menu; @@ -68,8 +72,6 @@ struct _FinCalcDialog GtkWidget *payment_total_label; financial_info financial_info; - - GList *calc_buttons; }; static unsigned int periods[] = @@ -92,7 +94,11 @@ static QofLogModule log_module = GNC_MOD_GUI; /** Prototypes **********************************************************/ - +void fincalc_update_calc_button_cb(GtkWidget *unused, FinCalcDialog *fcd); +void fincalc_calc_clicked_cb(GtkButton *button, FinCalcDialog *fcd); +void fincalc_compounding_radio_toggled(GtkToggleButton *togglebutton, gpointer data); +void fincalc_amount_clear_clicked_cb(GtkButton *button, GNCAmountEdit *edit); +void fincalc_response_cb (GtkDialog *dialog, gint response, FinCalcDialog *fcd); /** Implementations *****************************************************/ @@ -212,16 +218,24 @@ gui_to_fi(FinCalcDialog *fcd) } /* Set the sensitivity of the calculation buttons based on the argument. */ -static void -fincalc_allow_calc(FinCalcDialog *fcd, gboolean allow_calc) +void +fincalc_update_calc_button_cb(GtkWidget *unused, FinCalcDialog *fcd) { - GList *node; + const gchar *text; + gint i; if (fcd == NULL) return; - for (node = fcd->calc_buttons; node != NULL; node = node->next) - gtk_widget_set_sensitive(GTK_WIDGET(node->data), allow_calc); + for (i = 0; i < NUM_FIN_CALC_VALUES; i++) { + text = gtk_entry_get_text(GTK_ENTRY(fcd->amounts[i])); + if ((text == NULL) || (*text == '\0')) { + gtk_widget_set_sensitive(GTK_WIDGET(fcd->calc_button), TRUE); + return; + } + } + + gtk_widget_set_sensitive(GTK_WIDGET(fcd->calc_button), FALSE); } /* Free the calc button list and free the FinCalcDialog structure. */ @@ -235,51 +249,18 @@ fincalc_dialog_destroy(GtkObject *object, gpointer data) gnc_unregister_gui_component_by_data (DIALOG_FINCALC_CM_CLASS, fcd); - g_list_free(fcd->calc_buttons); - fcd->calc_buttons = NULL; - + g_object_unref(fcd->xml); g_free(fcd); } -static void -fincalc_entry_changed(GtkEditable *editable, gpointer data) -{ - FinCalcDialog *fcd = data; - - if (fcd == NULL) - return; - - fincalc_allow_calc(fcd, TRUE); -} - -static void -fincalc_menu_changed(GtkButton *button, FinCalcDialog *fcd) -{ - if (fcd == NULL) - return; - - fincalc_allow_calc(fcd, TRUE); -} - static void connect_fincalc_menu_item(GtkWidget *item, gpointer data) { g_signal_connect (G_OBJECT (item), "activate", - G_CALLBACK (fincalc_menu_changed), data); + G_CALLBACK (fincalc_update_calc_button_cb), data); } -static void -fincalc_radio_toggled(GtkToggleButton *togglebutton, gpointer data) -{ - FinCalcDialog *fcd = data; - - if (fcd == NULL) - return; - - fincalc_allow_calc(fcd, TRUE); -} - -static void +void fincalc_compounding_radio_toggled(GtkToggleButton *togglebutton, gpointer data) { FinCalcDialog *fcd = data; @@ -288,21 +269,15 @@ fincalc_compounding_radio_toggled(GtkToggleButton *togglebutton, gpointer data) if (fcd == NULL) return; - fincalc_allow_calc(fcd, TRUE); + fincalc_update_calc_button_cb(GTK_WIDGET(togglebutton), fcd); sensitive = gtk_toggle_button_get_active (togglebutton); gtk_widget_set_sensitive (fcd->compounding_menu, sensitive); } -static void -close_button_clicked(GtkButton *button, FinCalcDialog *fcd) -{ - gnc_close_gui_component_by_data (DIALOG_FINCALC_CM_CLASS, fcd); -} - -static void -fincalc_amount_clear_clicked(GtkButton *button, GNCAmountEdit *edit) +void +fincalc_amount_clear_clicked_cb(GtkButton *button, GNCAmountEdit *edit) { gtk_entry_set_text(GTK_ENTRY (edit), ""); } @@ -336,8 +311,10 @@ init_fi(FinCalcDialog *fcd) static const char * can_calc_value(FinCalcDialog *fcd, FinCalcValue value, int *error_item) { - const char *missing = _("You must enter values for the other quantities."); - const char *bad_exp = _("You must enter a valid expression."); + const char *missing = _("This program can only calculate one value at a time. " + "You must enter values for all but one quantity."); + const char *bad_exp = _("Gnucash cannot determine the value in one of the fields. " + "You must enter a valid expression."); const char *string; gnc_numeric nvalue; unsigned int i; @@ -458,38 +435,45 @@ calc_value(FinCalcDialog *fcd, FinCalcValue value) fi_to_gui(fcd); - fincalc_allow_calc(fcd, FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(fcd->calc_button), FALSE); } -static void -calc_payment_periods(GtkButton *button, FinCalcDialog *fcd) +void +fincalc_calc_clicked_cb(GtkButton *button, FinCalcDialog *fcd) { - calc_value(fcd, PAYMENT_PERIODS); + const gchar *text; + gint i; + + for (i = 0; i < NUM_FIN_CALC_VALUES; i++) { + text = gtk_entry_get_text(GTK_ENTRY(fcd->amounts[i])); + if ((text != NULL) && (*text != '\0')) + continue; + calc_value(fcd, i); + return; + } } -static void -calc_interest_rate(GtkButton *button, FinCalcDialog *fcd) +void fincalc_response_cb (GtkDialog *dialog, + gint response, + FinCalcDialog *fcd) { - calc_value(fcd, INTEREST_RATE); + switch (response) { + case GTK_RESPONSE_OK: + /* Do something here whenever the hidden schedule button is clicked. */ + /* Fall through */ + + case GTK_RESPONSE_CLOSE: + gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog)); + break; + + default: + /* Cancel, destroy, etc. Do nothing. */ + break; + } + + gnc_close_gui_component_by_data (DIALOG_FINCALC_CM_CLASS, fcd); } -static void -calc_present_value(GtkButton *button, FinCalcDialog *fcd) -{ - calc_value(fcd, PRESENT_VALUE); -} - -static void -calc_periodic_payment(GtkButton *button, FinCalcDialog *fcd) -{ - calc_value(fcd, PERIODIC_PAYMENT); -} - -static void -calc_future_value(GtkButton *button, FinCalcDialog *fcd) -{ - calc_value(fcd, FUTURE_VALUE); -} static void close_handler (gpointer user_data) @@ -511,15 +495,65 @@ show_handler (const char *class, gint component_id, return(TRUE); } + +/** Initialize an edit field that will display a general number. + * + * @param edit A pointer to the edit widget. + * + * @param min_places The minimum number of places after the decimal + * point. + * + * @param max_places The maximum number of places after the decimal + * point. + * + * @param fraction The fraction used to maintain numbers internally. + */ +static void +fincalc_init_gae (GNCAmountEdit *edit, + gint min_places, + gint max_places, + gint fraction) +{ + GNCPrintAmountInfo print_info; + + print_info = gnc_integral_print_info (); + print_info.min_decimal_places = min_places; + print_info.max_decimal_places = max_places; + + gnc_amount_edit_set_print_info (edit, print_info); + gnc_amount_edit_set_fraction (edit, fraction); + gnc_amount_edit_set_evaluate_on_enter (edit, TRUE); + gtk_entry_set_alignment (GTK_ENTRY(edit), 1.0); +} + +/** Initialize an edit field that will display a number in the users + * local currency. + * + * @param edit A pointer to the edit widget. + */ +static void +fincalc_init_commodity_gae (GNCAmountEdit *edit) +{ + GNCPrintAmountInfo print_info; + gnc_commodity *commodity; + gint fraction; + + commodity = gnc_default_currency(); + fraction = gnc_commodity_get_fraction(commodity); + print_info = gnc_commodity_print_info (commodity, FALSE); + + gnc_amount_edit_set_print_info (edit, print_info); + gnc_amount_edit_set_fraction (edit, fraction); + gnc_amount_edit_set_evaluate_on_enter (edit, TRUE); + gtk_entry_set_alignment (GTK_ENTRY(edit), 1.0); +} + void gnc_ui_fincalc_dialog_create(void) { - gnc_commodity *commodity; - GNCPrintAmountInfo print_info; FinCalcDialog *fcd; GtkWidget *button; GtkWidget *menu; - GtkWidget *hbox; GtkWidget *edit; GladeXML *xml; @@ -527,12 +561,12 @@ gnc_ui_fincalc_dialog_create(void) show_handler, NULL)) return; - commodity = gnc_default_currency (); fcd = g_new0(FinCalcDialog, 1); xml = gnc_glade_xml_new ("fincalc.glade", "Financial Calculator Dialog"); + fcd->xml = xml; fcd->dialog = glade_xml_get_widget (xml, "Financial Calculator Dialog"); gnc_register_gui_component (DIALOG_FINCALC_CM_CLASS, @@ -542,132 +576,29 @@ gnc_ui_fincalc_dialog_create(void) G_CALLBACK (fincalc_dialog_destroy), fcd); - edit = gnc_amount_edit_new(); - gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (edit), TRUE); - print_info = gnc_integral_print_info (); - gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (edit), print_info); - gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (edit), 1); + edit = glade_xml_get_widget (xml, "payment_periods_edit"); + fincalc_init_gae (GNC_AMOUNT_EDIT (edit), 0, 0, 1); fcd->amounts[PAYMENT_PERIODS] = edit; - gtk_widget_show (edit); - hbox = glade_xml_get_widget (xml, "payment_periods_hbox"); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (edit), "changed", - G_CALLBACK (fincalc_entry_changed), fcd); - - - edit = gnc_amount_edit_new(); - gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (edit), TRUE); - print_info.max_decimal_places = 5; - gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (edit), print_info); - gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (edit), 100000); + edit = glade_xml_get_widget (xml, "interest_rate_edit"); + fincalc_init_gae (GNC_AMOUNT_EDIT (edit), 2, 5, 100000); fcd->amounts[INTEREST_RATE] = edit; - gtk_widget_show (edit); - hbox = glade_xml_get_widget (xml, "interest_rate_hbox"); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (edit), "changed", - G_CALLBACK (fincalc_entry_changed), fcd); - - - print_info = gnc_commodity_print_info (commodity, FALSE); - - edit = gnc_amount_edit_new(); - gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (edit), TRUE); - gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (edit), print_info); - gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (edit), - gnc_commodity_get_fraction (commodity)); + edit = glade_xml_get_widget (xml, "present_value_edit"); + fincalc_init_commodity_gae (GNC_AMOUNT_EDIT (edit)); fcd->amounts[PRESENT_VALUE] = edit; - gtk_widget_show (edit); - hbox = glade_xml_get_widget (xml, "present_value_hbox"); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (edit), "changed", - G_CALLBACK (fincalc_entry_changed), fcd); - - - edit = gnc_amount_edit_new(); - gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (edit), TRUE); - gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (edit), print_info); - gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (edit), - gnc_commodity_get_fraction (commodity)); + edit = glade_xml_get_widget (xml, "period_payment_edit"); + fincalc_init_commodity_gae (GNC_AMOUNT_EDIT (edit)); fcd->amounts[PERIODIC_PAYMENT] = edit; - gtk_widget_show (edit); - hbox = glade_xml_get_widget (xml, "periodic_payment_hbox"); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (edit), "changed", - G_CALLBACK (fincalc_entry_changed), fcd); - - - edit = gnc_amount_edit_new(); - gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (edit), TRUE); - gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (edit), print_info); - gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (edit), - gnc_commodity_get_fraction (commodity)); + edit = glade_xml_get_widget (xml, "future_value_edit"); + fincalc_init_commodity_gae (GNC_AMOUNT_EDIT (edit)); fcd->amounts[FUTURE_VALUE] = edit; - gtk_widget_show (edit); - - hbox = glade_xml_get_widget (xml, "future_value_hbox"); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (edit), "changed", - G_CALLBACK (fincalc_entry_changed), fcd); - button = glade_xml_get_widget (xml, "payment_periods_calc_button"); - fcd->calc_buttons = g_list_prepend(fcd->calc_buttons, button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (calc_payment_periods), fcd); + fcd->calc_button = glade_xml_get_widget (xml, "calc_button"); - button = glade_xml_get_widget (xml, "interest_rate_calc_button"); - fcd->calc_buttons = g_list_prepend(fcd->calc_buttons, button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (calc_interest_rate), fcd); - - button = glade_xml_get_widget (xml, "present_value_calc_button"); - fcd->calc_buttons = g_list_prepend(fcd->calc_buttons, button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (calc_present_value), fcd); - - button = glade_xml_get_widget (xml, "periodic_payment_calc_button"); - fcd->calc_buttons = g_list_prepend(fcd->calc_buttons, button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (calc_periodic_payment), fcd); - - button = glade_xml_get_widget (xml, "future_value_calc_button"); - fcd->calc_buttons = g_list_prepend(fcd->calc_buttons, button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (calc_future_value), fcd); - - button = glade_xml_get_widget (xml, "payment_periods_clear_button"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (fincalc_amount_clear_clicked), - fcd->amounts[PAYMENT_PERIODS]); - - button = glade_xml_get_widget (xml, "interest_rate_clear_button"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (fincalc_amount_clear_clicked), - fcd->amounts[INTEREST_RATE]); - - button = glade_xml_get_widget (xml, "present_value_clear_button"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (fincalc_amount_clear_clicked), - fcd->amounts[PRESENT_VALUE]); - - button = glade_xml_get_widget (xml, "periodic_payment_clear_button"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (fincalc_amount_clear_clicked), - fcd->amounts[PERIODIC_PAYMENT]); - - button = glade_xml_get_widget (xml, "future_value_clear_button"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (fincalc_amount_clear_clicked), - fcd->amounts[FUTURE_VALUE]); menu = glade_xml_get_widget (xml, "compounding_menu"); fcd->compounding_menu = menu; @@ -683,17 +614,10 @@ gnc_ui_fincalc_dialog_create(void) button = glade_xml_get_widget (xml, "period_payment_radio"); fcd->end_of_period_radio = button; - g_signal_connect (G_OBJECT (button), "toggled", - G_CALLBACK (fincalc_radio_toggled), fcd); button = glade_xml_get_widget (xml, "discrete_compounding_radio"); fcd->discrete_compounding_radio = button; - g_signal_connect (G_OBJECT (button), "toggled", - G_CALLBACK (fincalc_compounding_radio_toggled), fcd); - button = glade_xml_get_widget (xml, "close_button"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (close_button_clicked), fcd); fcd->payment_total_label = glade_xml_get_widget (xml, "payment_total_label"); button = glade_xml_get_widget (xml, "schedule_button"); @@ -703,10 +627,14 @@ gnc_ui_fincalc_dialog_create(void) fi_to_gui(fcd); - fincalc_allow_calc(fcd, FALSE); - gtk_widget_grab_focus(fcd->amounts[PAYMENT_PERIODS]); + /* Connect all signals specified in glade. */ + glade_xml_signal_autoconnect_full( xml, + gnc_glade_autoconnect_full_func, + fcd); + + gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(fcd->dialog)); gtk_widget_show(fcd->dialog); } diff --git a/src/gnome/glade/fincalc.glade b/src/gnome/glade/fincalc.glade index cc47e25bba..9979e791c0 100644 --- a/src/gnome/glade/fincalc.glade +++ b/src/gnome/glade/fincalc.glade @@ -5,25 +5,27 @@ - True + 6 Financial Calculator GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False - True + False False True False False - GDK_WINDOW_TYPE_HINT_DIALOG + GDK_WINDOW_TYPE_HINT_NORMAL GDK_GRAVITY_NORTH_WEST - True + True + False + True False - 0 + 12 @@ -39,21 +41,32 @@ True GTK_RELIEF_NORMAL True - 0 + -7 + + + + + + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + -6 - True True True GTK_RELIEF_NORMAL True - 0 + -5 - + True 0.5 0.5 @@ -65,13 +78,13 @@ 0 - + True False 2 - + True gtk-ok 4 @@ -88,9 +101,9 @@ - + True - _Schedule + Schedule True False GTK_JUSTIFY_LEFT @@ -100,6 +113,10 @@ 0.5 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -123,51 +140,83 @@ - + True False 0 - - 3 + True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + False + 6 - - 5 + True - False - 6 + <b>Calculations</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 - + True False - 2 + 6 - + True False - 6 + 0 True - Payment Periods - False + Payment periods + True False GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.75 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -177,37 +226,51 @@ - + True - Clear the entry - True - Clear - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - GTK_PACK_END - - + False + 6 - - - True - True - Calculate - True - GTK_RELIEF_NORMAL - True + + + 150 + True + True + gnc_amount_edit_new + 0 + 0 + Sat, 21 Jan 2006 20:30:26 GMT + + + + 0 + True + True + + + + + + True + Clear the entry + True + gtk-clear + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + + 0 - False - False - GTK_PACK_END + True + True @@ -219,54 +282,28 @@ - + True False 0 - - - - - - 0 - False - False - - - - - 0 - True - True - - - - - - True - False - 2 - - - - True - False - 6 - True - Interest Rate + Interest rate False False GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.75 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -276,37 +313,49 @@ - + True - Clear the entry - True - Clear - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - GTK_PACK_END - - + False + 6 - - - True - True - Calculate - True - GTK_RELIEF_NORMAL - True + + + True + gnc_amount_edit_new + 0 + 0 + Sat, 21 Jan 2006 21:00:10 GMT + + + + 0 + True + True + + + + + + True + Clear the entry + True + gtk-clear + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + + 0 - False - False - GTK_PACK_END + True + True @@ -318,54 +367,28 @@ - + True False 0 - - - - - - 0 - False - False - - - - - 0 - False - False - - - - - - True - False - 2 - - - - True - False - 6 - True - Present Value + Present value False False GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.75 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -375,37 +398,49 @@ - + True - Clear the entry - True - Clear - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - GTK_PACK_END - - + False + 6 - - - True - True - Calculate - True - GTK_RELIEF_NORMAL - True + + + True + gnc_amount_edit_new + 0 + 0 + Sat, 21 Jan 2006 21:34:30 GMT + + + + 0 + True + True + + + + + + True + Clear the entry + True + gtk-clear + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + + 0 - False - False - GTK_PACK_END + True + True @@ -417,54 +452,28 @@ - + True False 0 - - - - - 0 - False - False - - - - - 0 - True - True - - - - - - True - False - 2 - - - - True - False - 6 - - - + True - Periodic Payment + Periodic payment False False GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.75 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -474,37 +483,49 @@ - + True - Clear the entry - True - Clear - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - GTK_PACK_END - - + False + 6 - - - True - True - Calculate - True - GTK_RELIEF_NORMAL - True + + + True + gnc_amount_edit_new + 0 + 0 + Sat, 21 Jan 2006 21:34:50 GMT + + + + 0 + True + True + + + + + + True + Clear the entry + True + gtk-clear + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + + 0 - False - False - GTK_PACK_END + True + True @@ -516,54 +537,28 @@ - + True False 0 - - - - - - 0 - False - False - - - - - 0 - False - False - - - - - - True - False - 2 - - - - True - False - 6 - True - Future Value + Future value False False GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.75 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -573,37 +568,49 @@ - + True - Clear the entry - True - Clear - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - GTK_PACK_END - - + False + 6 - - - True - True - Calculate - True - GTK_RELIEF_NORMAL - True + + + True + gnc_amount_edit_new + 0 + 0 + Sat, 21 Jan 2006 21:35:04 GMT + + + + 0 + True + True + + + + + + True + Clear the entry + True + gtk-clear + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + + 0 - False - False - GTK_PACK_END + True + True @@ -615,29 +622,116 @@ - + True - False - 0 + 0.5 + 0.5 + 1 + 1 + 6 + 0 + 0 + 0 - + + True + GTK_BUTTONBOX_DEFAULT_STYLE + 0 + + + + True + False + Recalculate the (single) blank entry in the above fields. + True + True + GTK_RELIEF_NORMAL + True + + + + + True + 0.5 + 0.5 + 0 + 0 + 0 + 0 + 0 + 0 + + + + True + False + 2 + + + + True + gtk-execute + 4 + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + True + Calculate + True + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + + + + 0 - False - False + True + True - - 0 - True - True - + + 0 + True + True + @@ -648,424 +742,67 @@ - - 3 + True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + + + 6 + False + True + + + + + + True + False + 6 - - 5 + True - False - 10 + <b>Payment Options</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 - + True + 9 + 3 False - 3 - - - - True - True - 2 - - - - True - Compounding: - False - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - - - 0 - False - False - - - - - - True - Payments: - False - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - - True - True - 2 - - - - True - True - 0 - - - - True - - - - True - Annual - True - - - - - - True - Semi-annual - True - - - - - - True - Tri-annual - True - - - - - - True - Quarterly - True - - - - - - True - Bi-monthly - True - - - - - - True - Monthly - True - - - - - - True - Semi-monthly - True - - - - - - True - Bi-weekly - True - - - - - - True - Weekly - True - - - - - - True - Daily (360) - True - - - - - - True - Daily (365) - True - - - - - - - 0 - False - False - - - - - - True - True - 0 - - - - True - - - - True - Annual - True - - - - - - True - Semi-annual - True - - - - - - True - Tri-annual - True - - - - - - True - Quarterly - True - - - - - - True - Bi-monthly - True - - - - - - True - Monthly - True - - - - - - True - Semi-monthly - True - - - - - - True - Bi-weekly - True - - - - - - True - Weekly - True - - - - - - True - Daily (360) - True - - - - - - True - Daily (365) - True - - - - - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 0 - - - - True - True - End of Period Payments - True - GTK_RELIEF_NORMAL - True - True - False - True - - - 0 - False - False - - - - - - True - True - Beginning of Period Payments - True - GTK_RELIEF_NORMAL - True - False - False - True - period_payment_radio - - - 0 - False - False - - - - - 0 - False - False - - - - - - True - False - 0 - - - - True - True - Discrete Compounding - True - GTK_RELIEF_NORMAL - True - True - False - True - - - 0 - False - False - - - - - - True - True - Continuous Compounding - True - GTK_RELIEF_NORMAL - True - False - False - True - discrete_compounding_radio - - - 0 - False - False - - - - - 0 - False - False - - - - - - True - False - 3 + 0 + 12 @@ -1080,11 +817,18 @@ 0.5 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 - 0 - False - False + 0 + 1 + 8 + 9 + fill + @@ -1097,26 +841,625 @@ GTK_JUSTIFY_CENTER False False - 0.5 + 0 0.5 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 - 0 - False - False + 1 + 2 + 8 + 9 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 7 + 8 + fill + expand + + + + + + True + True + Discrete + True + GTK_RELIEF_NORMAL + True + True + False + True + + + + 1 + 2 + 1 + 2 + fill + + + + + + + True + True + Continuous + True + GTK_RELIEF_NORMAL + True + False + False + True + discrete_compounding_radio + + + 2 + 3 + 1 + 2 + fill + + + + + + + True + True + 0 + + + + True + + + + True + Annual + True + + + + + + True + Semi-annual + True + + + + + + True + Tri-annual + True + + + + + + True + Quarterly + True + + + + + + True + Bi-monthly + True + + + + + + True + Monthly + True + + + + + + True + Semi-monthly + True + + + + + + True + Bi-weekly + True + + + + + + True + Weekly + True + + + + + + True + Daily (360) + True + + + + + + True + Daily (365) + True + + + + + + + 1 + 3 + 2 + 3 + fill + + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + Type: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + 0 + 1 + 1 + 2 + fill + fill + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + Frequency: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + payment_menu + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + 0 + 1 + 2 + 3 + fill + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + Frequency: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + payment_menu + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + 0 + 1 + 6 + 7 + fill + fill + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + When paid: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + 0 + 1 + 5 + 6 + fill + fill + + + + + + True + True + Beginning + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 1 + 2 + 5 + 6 + fill + + + + + + + True + True + End + True + GTK_RELIEF_NORMAL + True + True + False + True + radiobutton4 + + + + 2 + 3 + 5 + 6 + fill + + + + + + + True + True + 0 + + + + True + + + + True + Annual + True + + + + + + True + Semi-annual + True + + + + + + True + Tri-annual + True + + + + + + True + Quarterly + True + + + + + + True + Bi-monthly + True + + + + + + True + Monthly + True + + + + + + True + Semi-monthly + True + + + + + + True + Bi-weekly + True + + + + + + True + Weekly + True + + + + + + True + Daily (360) + True + + + + + + True + Daily (365) + True + + + + + + + 1 + 3 + 6 + 7 + fill + + + + + + + True + <b>Compounding:</b> + False + True + GTK_JUSTIFY_RIGHT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 3 + 0 + 1 + fill + + + + + + + True + <b>Period:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 3 + 4 + 5 + fill + - - 0 - False - False - GTK_PACK_END - + + 0 + True + True + @@ -1149,6 +1492,7 @@ False GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST + True True @@ -1224,16 +1568,20 @@ True - Effective Date: - False + _Effective Date: + True False GTK_JUSTIFY_RIGHT False False - 0.5 + 0 1 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -1245,16 +1593,20 @@ True - Initial Payment: - False + _Initial Payment: + True False GTK_JUSTIFY_RIGHT False False - 0.5 + 0 1 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -1266,16 +1618,20 @@ True - Compounding: - False + Co_mpounding: + True False GTK_JUSTIFY_RIGHT False False - 0.5 + 0 1 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -1287,16 +1643,20 @@ True - Payments: - False + _Payments: + True False GTK_JUSTIFY_RIGHT False False - 0.5 + 0 1 0 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 0 @@ -1307,7 +1667,7 @@ 0 - True + False True