static void freq_combo_changed(GtkComboBox *b, gpointer d) { GncFrequency *gf = GNC_FREQUENCY(d); int option_index; /* Set the new page. */ option_index = gtk_combo_box_get_active(GTK_COMBO_BOX(gf->freqComboBox)); gtk_notebook_set_current_page(gf->nb, option_index); g_signal_emit_by_name(gf, "changed"); }
static void start_date_changed( GNCDateEdit *gde, gpointer d ) { g_signal_emit_by_name(GNC_FREQUENCY(d), "changed"); }
static void semimonthly_sel_changed( GtkButton *b, gpointer d ) { g_signal_emit_by_name(GNC_FREQUENCY(d), "changed"); }
static void weekly_days_changed( GtkButton *b, gpointer d ) { g_signal_emit_by_name(GNC_FREQUENCY(d), "changed"); }
static void spin_changed_helper( GtkAdjustment *adj, gpointer d ) { g_signal_emit_by_name(GNC_FREQUENCY(d), "changed"); }
static GtkWidget * ap_assistant_create (AcctPeriodInfo *info) { GtkBuilder *builder; GtkWidget *window; GtkWidget *box; builder = gtk_builder_new(); gnc_builder_add_from_file (builder , "assistant-acct-period.glade", "account_period_assistant"); window = GTK_WIDGET(gtk_builder_get_object (builder, "account_period_assistant")); info->window = window; // Set the style context for this assistant so it can be easily manipulated with css gnc_widget_set_style_context (GTK_WIDGET(window), "GncAssistAccountPeriod"); /* Enable all pages except menu page. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (window), GTK_WIDGET(gtk_builder_get_object(builder, "start_page")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (window), GTK_WIDGET(gtk_builder_get_object(builder, "book_page")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (window), GTK_WIDGET(gtk_builder_get_object(builder, "finish_page")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (window), GTK_WIDGET(gtk_builder_get_object(builder, "summary_page")), TRUE); info->close_status = -1; /* Find the date of the earliest transaction in the book. * Add a year minus a day as the first guess for book closing, * and use that to set up the freq spec widget. */ info->earliest = get_earliest_in_book (gnc_get_current_book()); info->earliest_str = qof_print_date(info->earliest); PINFO ("date of earliest transaction is %" G_GINT64_FORMAT " %s", info->earliest, gnc_ctime (&info->earliest)); g_date_clear (&info->closing_date, 1); gnc_gdate_set_time64 (&info->closing_date, info->earliest); g_date_clear (&info->prev_closing_date, 1); info->prev_closing_date = info->closing_date; g_date_add_years (&info->closing_date, 1); { Recurrence *r = g_new0(Recurrence, 1); recurrenceSet(r, 1, PERIOD_MONTH, &info->closing_date, WEEKEND_ADJ_NONE); info->period = NULL; info->period = g_list_append(info->period, r); } info->period_menu = GNC_FREQUENCY( gnc_frequency_new_from_recurrence(info->period, &info->closing_date)); /* Change the text so that its more mainingful for this assistant */ gnc_frequency_set_frequency_label_text(info->period_menu, _("Period:")); gnc_frequency_set_date_label_text(info->period_menu, _("Closing Date:")); /* Reparent to the correct location */ box = GTK_WIDGET(gtk_builder_get_object(builder, "period_hbox")); gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (info->period_menu), TRUE, TRUE, 0); g_signal_connect (info->period_menu, "changed", G_CALLBACK (ap_assistant_menu_changed_cb), info); /* Get handles to all of the other widgets we'll need */ info->period_remarks = GTK_WIDGET(gtk_builder_get_object(builder, "remarks_label")); info->close_results = GTK_WIDGET(gtk_builder_get_object(builder, "results_label")); info->book_details = GTK_WIDGET(gtk_builder_get_object(builder, "book_label")); info->book_title = GTK_WIDGET(gtk_builder_get_object(builder, "book_title_entry")); info->book_notes = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "book_notes_view")); info->apply_label = GTK_WIDGET(gtk_builder_get_object(builder, "finish_page")); info->summary = GTK_WIDGET(gtk_builder_get_object(builder, "summary_label")); g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK (ap_assistant_destroy_cb), info); gtk_builder_connect_signals(builder, info); g_object_unref(G_OBJECT(builder)); return window; }
static void ap_druid_create (AcctPeriodInfo *info) { GladeXML *xml; GtkWidget *w; xml = gnc_glade_xml_new ("acctperiod.glade", "Acct Period Druid"); info->window = glade_xml_get_widget (xml, "Acct Period Druid"); info->druid = GNOME_DRUID (glade_xml_get_widget (xml, "acct_period_druid")); gnc_druid_set_colors (info->druid); info->start_page = GNOME_DRUID_PAGE(glade_xml_get_widget (xml, "start page")); info->menu_page = GNOME_DRUID_PAGE(glade_xml_get_widget (xml, "menu page")); info->book_page = GNOME_DRUID_PAGE(glade_xml_get_widget (xml, "book page")); info->finish_page = GNOME_DRUID_PAGE(glade_xml_get_widget (xml, "finish page")); info->close_status = -1; /* Find the date of the earliest transaction in the book. * Add a year minus a day as the first guess for book closing, * and use that to set up the freq spec widget. */ info->earliest = get_earliest_in_book (gnc_get_current_book()); info->earliest_str = qof_print_date(info->earliest); PINFO ("date of earliest transaction is %ld %s", info->earliest, ctime (&info->earliest)); g_date_clear (&info->closing_date, 1); g_date_set_time_t (&info->closing_date, info->earliest); g_date_clear (&info->prev_closing_date, 1); info->prev_closing_date = info->closing_date; g_date_add_years (&info->closing_date, 1); { Recurrence *r = g_new0(Recurrence, 1); recurrenceSet(r, 1, PERIOD_MONTH, &info->closing_date, WEEKEND_ADJ_NONE); info->period = NULL; info->period = g_list_append(info->period, r); } info->period_menu = GNC_FREQUENCY( gnc_frequency_new_from_recurrence(info->period, &info->closing_date)); /* Change the text so that its more mainingful for this druid */ gnc_frequency_set_frequency_label_text(info->period_menu, _("Period:")); gnc_frequency_set_date_label_text(info->period_menu, _("Closing Date:")); /* Reparent to the correct location */ w = glade_xml_get_widget (xml, "period box"); gtk_box_pack_start (GTK_BOX (w), GTK_WIDGET (info->period_menu), TRUE, TRUE, 0); /* Get handles to all of the other widgets we'll need */ info->period_remarks = GTK_LABEL (glade_xml_get_widget (xml, "remarks label")); info->close_results = GTK_LABEL (glade_xml_get_widget (xml, "results label")); info->book_details = GTK_LABEL (glade_xml_get_widget (xml, "book label")); info->book_title = GTK_ENTRY (glade_xml_get_widget (xml, "book title entry")); info->book_notes = GTK_TEXT_VIEW (glade_xml_get_widget (xml, "book notes text")); /* generic finished/close/abort signals */ g_signal_connect (info->window, "destroy", G_CALLBACK (ap_window_destroy_cb), info); g_signal_connect (info->druid, "cancel", G_CALLBACK (ap_druid_cancel), info); g_signal_connect (info->menu_page, "prepare", G_CALLBACK (ap_show_menu), info); g_signal_connect (info->menu_page, "next", G_CALLBACK (ap_validate_menu), info); g_signal_connect (info->book_page, "prepare", G_CALLBACK (ap_show_book), info); g_signal_connect (info->book_page, "next", G_CALLBACK (ap_close_period), info); g_signal_connect (info->finish_page, "prepare", G_CALLBACK (ap_show_done), info); g_signal_connect (info->finish_page, "finish", G_CALLBACK (ap_finish), info); /* User changes the accouting period or date signals */ g_signal_connect (info->period_menu, "changed", G_CALLBACK (ap_changed), info); }