/********************************************************************\ * gnc_find_account_dialog * * opens a window allowing for searches on account names * * * * Args: parent - the parent of the window to be created * * Return: nothing * \********************************************************************/ void gnc_find_account_dialog (GtkWidget *parent, Account *account) { FindAccountDialog *facc_dialog; gint component_id; ENTER(" "); if (gnc_forall_gui_components (DIALOG_FIND_ACCOUNT_CM_CLASS, show_handler, NULL)) { LEAVE("Existing dialog raised"); return; } facc_dialog = g_new0 (FindAccountDialog, 1); facc_dialog->account = account; facc_dialog->jump_close = TRUE; gnc_find_account_dialog_create (parent, facc_dialog); component_id = gnc_register_gui_component (DIALOG_FIND_ACCOUNT_CM_CLASS, refresh_handler, close_handler, facc_dialog); gnc_gui_component_set_session (component_id, facc_dialog->session); gtk_widget_show (facc_dialog->dialog); LEAVE(" "); }
void gnc_totd_dialog (GtkWindow *parent, gboolean startup) { TotdDialog *totd_dialog; GtkBuilder *builder; GtkWidget *dialog, *button; GtkTextView *textview; gboolean show_tips; totd_dialog = g_new0 (TotdDialog, 1); show_tips = gnc_prefs_get_bool(GNC_PREFS_GROUP, GNC_PREF_SHOW_TIPS); if (startup && !show_tips) return; if (tip_count == -1) { if (!gnc_totd_initialize()) return; current_tip_number = gnc_prefs_get_int(GNC_PREFS_GROUP, GNC_PREF_CURRENT_TIP); } if (gnc_forall_gui_components(DIALOG_TOTD_CM_CLASS, show_handler, NULL)) { return; } builder = gtk_builder_new(); gnc_builder_add_from_file (builder, "dialog-totd.glade", "totd_dialog"); dialog = GTK_WIDGET(gtk_builder_get_object (builder, "totd_dialog")); gtk_window_set_transient_for(GTK_WINDOW (dialog), parent); totd_dialog->dialog = dialog; ENTER("totd_dialog %p, dialog %p", totd_dialog, dialog); gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, totd_dialog); button = GTK_WIDGET(gtk_builder_get_object (builder, "show_checkbutton")); totd_dialog->showcheck_button = button; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (button), show_tips); textview = GTK_TEXT_VIEW(gtk_builder_get_object (builder, "tip_textview")); totd_dialog->textview = textview; gnc_new_tip_number(totd_dialog, 1); gnc_restore_window_size(GNC_PREFS_GROUP, GTK_WINDOW(totd_dialog->dialog)); gtk_widget_show(GTK_WIDGET (totd_dialog->dialog)); gnc_register_gui_component(DIALOG_TOTD_CM_CLASS, NULL, close_handler, totd_dialog); g_object_unref(G_OBJECT(builder)); LEAVE(""); }
/* This function creates the preferences dialog and presents it to * the user. The preferences dialog is a singleton, so if a * preferences dialog already exists it will be raised to the top of * the window stack instead of creating a new dialog. */ void gnc_preferences_dialog (void) { GtkWidget *dialog; ENTER(""); if (gnc_forall_gui_components(DIALOG_PREFERENCES_CM_CLASS, show_handler, NULL)) { LEAVE("existing window"); return; } dialog = gnc_preferences_dialog_create(); gnc_restore_window_size(GNC_PREFS_GROUP, GTK_WINDOW(dialog)); gtk_widget_show(dialog); gnc_register_gui_component(DIALOG_PREFERENCES_CM_CLASS, NULL, close_handler, dialog); LEAVE(" "); }
/********************************************************************\ * gnc_commodities_dialog * * opens up a window to edit price information * * * * Args: parent - the parent of the window to be created * * Return: nothing * \********************************************************************/ void gnc_commodities_dialog (GtkWidget * parent) { CommoditiesDialog *cd; gint component_id; if (gnc_forall_gui_components (DIALOG_COMMODITIES_CM_CLASS, show_handler, NULL)) return; cd = g_new0 (CommoditiesDialog, 1); gnc_commodities_dialog_create (parent, cd); component_id = gnc_register_gui_component (DIALOG_COMMODITIES_CM_CLASS, refresh_handler, close_handler, cd); gnc_gui_component_set_session (component_id, cd->session); gtk_widget_grab_focus (GTK_WIDGET(cd->commodity_tree)); gtk_widget_show (cd->dialog); }
void gnc_ui_fincalc_dialog_create(GtkWindow *parent) { FinCalcDialog *fcd; GtkWidget *button; GtkWidget *combo; GtkWidget *edit; GtkWidget *hbox; GtkBuilder *builder; if (gnc_forall_gui_components (DIALOG_FINCALC_CM_CLASS, show_handler, NULL)) return; fcd = g_new0(FinCalcDialog, 1); builder = gtk_builder_new(); gnc_builder_add_from_file (builder, "dialog-fincalc.glade", "liststore1"); gnc_builder_add_from_file (builder, "dialog-fincalc.glade", "liststore2"); gnc_builder_add_from_file (builder, "dialog-fincalc.glade", "financial_calculator_dialog"); fcd->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "financial_calculator_dialog")); // Set the style context for this dialog so it can be easily manipulated with css gnc_widget_set_style_context (GTK_WIDGET(fcd->dialog), "GncFinCalcDialog"); /* parent */ if (parent != NULL) gtk_window_set_transient_for (GTK_WINDOW(fcd->dialog), GTK_WINDOW(parent)); gnc_register_gui_component (DIALOG_FINCALC_CM_CLASS, NULL, close_handler, fcd); g_signal_connect (G_OBJECT (fcd->dialog), "destroy", G_CALLBACK (fincalc_dialog_destroy), fcd); hbox = GTK_WIDGET(gtk_builder_get_object (builder, "payment_periods_hbox")); edit = gnc_amount_edit_new(); fincalc_init_gae (GNC_AMOUNT_EDIT (edit), 0, 0, 1); fcd->amounts[PAYMENT_PERIODS] = edit; gtk_box_pack_end(GTK_BOX(hbox), edit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(edit), "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); button = GTK_WIDGET(gtk_builder_get_object (builder, "payment_periods_clear_button")); g_object_set_data(G_OBJECT(button), "edit", edit); hbox = GTK_WIDGET(gtk_builder_get_object (builder, "interest_rate_hbox")); edit = gnc_amount_edit_new(); fincalc_init_gae (GNC_AMOUNT_EDIT (edit), 2, 5, 100000); fcd->amounts[INTEREST_RATE] = edit; gtk_box_pack_end(GTK_BOX(hbox), edit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(edit), "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); button = GTK_WIDGET(gtk_builder_get_object (builder, "interest_rate_clear_button")); g_object_set_data(G_OBJECT(button), "edit", edit); hbox = GTK_WIDGET(gtk_builder_get_object (builder, "present_value_hbox")); edit = gnc_amount_edit_new(); fincalc_init_commodity_gae (GNC_AMOUNT_EDIT (edit)); fcd->amounts[PRESENT_VALUE] = edit; gtk_box_pack_end(GTK_BOX(hbox), edit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(edit), "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); button = GTK_WIDGET(gtk_builder_get_object (builder, "present_value_clear_button")); g_object_set_data(G_OBJECT(button), "edit", edit); hbox = GTK_WIDGET(gtk_builder_get_object (builder, "periodic_payment_hbox")); edit = gnc_amount_edit_new(); fincalc_init_commodity_gae (GNC_AMOUNT_EDIT (edit)); fcd->amounts[PERIODIC_PAYMENT] = edit; gtk_box_pack_end(GTK_BOX(hbox), edit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(edit), "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); button = GTK_WIDGET(gtk_builder_get_object (builder, "periodic_payment_clear_button")); g_object_set_data(G_OBJECT(button), "edit", edit); hbox = GTK_WIDGET(gtk_builder_get_object (builder, "future_value_hbox")); edit = gnc_amount_edit_new(); fincalc_init_commodity_gae (GNC_AMOUNT_EDIT (edit)); fcd->amounts[FUTURE_VALUE] = edit; gtk_box_pack_end(GTK_BOX(hbox), edit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(edit), "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); button = GTK_WIDGET(gtk_builder_get_object (builder, "future_value_clear_button")); g_object_set_data(G_OBJECT(button), "edit", edit); fcd->calc_button = GTK_WIDGET(gtk_builder_get_object (builder, "calc_button")); combo = GTK_WIDGET(gtk_builder_get_object (builder, "compounding_combo")); fcd->compounding_combo = combo; g_signal_connect(fcd->compounding_combo, "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); combo = GTK_WIDGET(gtk_builder_get_object (builder, "payment_combo")); fcd->payment_combo = combo; g_signal_connect(fcd->compounding_combo, "changed", G_CALLBACK (fincalc_update_calc_button_cb), fcd); button = GTK_WIDGET(gtk_builder_get_object (builder, "period_payment_radio")); fcd->end_of_period_radio = button; button = GTK_WIDGET(gtk_builder_get_object (builder, "discrete_compounding_radio")); fcd->discrete_compounding_radio = button; fcd->payment_total_label = GTK_WIDGET(gtk_builder_get_object (builder, "payment_total_label")); button = GTK_WIDGET(gtk_builder_get_object (builder, "schedule_button")); gtk_widget_hide (button); init_fi(fcd); fi_to_gui(fcd); gtk_widget_grab_focus(fcd->amounts[PAYMENT_PERIODS]); /* Connect all signals specified in glade. */ gtk_builder_connect_signals(builder, fcd); g_object_unref(G_OBJECT(builder)); gnc_restore_window_size(GNC_PREFS_GROUP, GTK_WINDOW(fcd->dialog)); gtk_widget_show(fcd->dialog); }