void gb_gnome_druid_add_child (GtkWidget *widget, GtkWidget *child, GbWidgetSetArgData *data) { gnome_druid_append_page (GNOME_DRUID (widget), GNOME_DRUID_PAGE (child)); }
/*--------------------------------------------------------------------------*/ static void add_finish_page( GnomeDruid *wdruid, GdkPixbuf *logo ) { GdkColor druid_bg_color = DRUID_BG_COLOR; GdkColor druid_title_color = DRUID_TITLE_COLOR; gb_debug (DEBUG_UPDATE, "START"); finish_page = gnome_druid_page_edge_new_with_vals (GNOME_EDGE_FINISH, TRUE, _("done"), _("Done."), logo, NULL, NULL); gnome_druid_page_edge_set_bg_color(GNOME_DRUID_PAGE_EDGE(finish_page), &druid_bg_color); gnome_druid_page_edge_set_logo_bg_color (GNOME_DRUID_PAGE_EDGE(finish_page), &druid_bg_color ); gnome_druid_page_edge_set_title_color (GNOME_DRUID_PAGE_EDGE(finish_page), &druid_title_color ); gnome_druid_append_page( wdruid, GNOME_DRUID_PAGE(finish_page) ); g_signal_connect_after( G_OBJECT(finish_page), "prepare", G_CALLBACK(prepare_finish_page), NULL ); g_signal_connect( G_OBJECT(finish_page), "finish", G_CALLBACK(finish_cb), NULL ); gb_debug (DEBUG_UPDATE, "END"); }
static void on_druid_dialog_ok (GtkWidget * widget, GbWidgetNewData * data) { GtkWidget *new_widget, *spinbutton, *window, *page; gint pages, i; window = gtk_widget_get_toplevel (widget); /* Only call callback if placeholder/fixed widget is still there */ if (gb_widget_can_finish_new (data)) { spinbutton = gtk_object_get_data (GTK_OBJECT (window), "pages"); g_return_if_fail (spinbutton != NULL); pages = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spinbutton)); new_widget = gnome_druid_new (); page = gnome_druid_page_edge_new_aa (GNOME_EDGE_START); gb_widget_create_from (page, "GnomeDruidPageStart"); gnome_druid_append_page (GNOME_DRUID (new_widget), GNOME_DRUID_PAGE (page)); gnome_druid_set_page (GNOME_DRUID (new_widget), GNOME_DRUID_PAGE (page)); for (i = 0; i < pages - 2; i++) { page = gb_widget_new ("GnomeDruidPageStandard", new_widget); gnome_druid_append_page (GNOME_DRUID (new_widget), GNOME_DRUID_PAGE (page)); } if (pages >= 2) { page = gnome_druid_page_edge_new_aa (GNOME_EDGE_FINISH); gb_widget_create_from (page, "GnomeDruidPageFinish"); gnome_druid_append_page (GNOME_DRUID (new_widget), GNOME_DRUID_PAGE (page)); } gtk_widget_show_all (new_widget); gb_widget_initialize (new_widget, data); (*data->callback) (new_widget, data); } gtk_widget_destroy (window); }
static void gnome_druid_add (GtkContainer *widget, GtkWidget *page) { g_return_if_fail (widget != NULL); g_return_if_fail (GNOME_IS_DRUID (widget)); g_return_if_fail (page != NULL); g_return_if_fail (GNOME_IS_DRUID_PAGE (page)); gnome_druid_append_page (GNOME_DRUID (widget), GNOME_DRUID_PAGE (page)); }
/*--------------------------------------------------------------------------*/ static void add_select_download_page( GnomeDruid *wdruid, GdkPixbuf *logo ) { GtkWidget *wvbox; GdkColor druid_bg_color = DRUID_BG_COLOR; GdkColor druid_title_color = DRUID_TITLE_COLOR; GtkWidget *whbox, *wcombo; GList *name_list = NULL; GList *p; Site *site; gb_debug (DEBUG_UPDATE, "START"); download_page = gnome_druid_page_standard_new_with_vals (_("Select download site"), logo, NULL); gnome_druid_page_standard_set_background(GNOME_DRUID_PAGE_STANDARD(download_page), &druid_bg_color); gnome_druid_page_standard_set_logo_background(GNOME_DRUID_PAGE_STANDARD(download_page), &druid_bg_color); gnome_druid_page_standard_set_title_foreground( GNOME_DRUID_PAGE_STANDARD(download_page), &druid_title_color); gnome_druid_append_page( wdruid, GNOME_DRUID_PAGE(download_page) ); wvbox = GNOME_DRUID_PAGE_STANDARD(download_page)->vbox; whbox = gtk_hbox_new( FALSE, 10 ); gtk_container_set_border_width( GTK_CONTAINER(whbox), 20 ); gtk_box_pack_start( GTK_BOX(wvbox), whbox, TRUE, TRUE, 0 ); gtk_box_pack_start( GTK_BOX(whbox), gtk_label_new( _("Download site:") ), FALSE, TRUE, 0 ); if ( site_list == NULL ) { site_list = read_site_list(); } for ( p=site_list; p!= NULL; p=p->next ) { site = (Site *)p->data; name_list = g_list_append( name_list, site->name ); } wcombo = gtk_combo_new(); gtk_combo_set_popdown_strings( GTK_COMBO(wcombo), name_list ); g_list_free( name_list ); name_list = NULL; site_entry = GTK_COMBO(wcombo)->entry; gtk_entry_set_editable( GTK_ENTRY(site_entry), FALSE ); gtk_box_pack_start( GTK_BOX(whbox), wcombo, TRUE, TRUE, 0 ); gb_debug (DEBUG_UPDATE, "END"); }
static void gb_gnome_druid_add_finish_page (GtkWidget * menuitem, GnomeDruid *druid) { GtkWidget *new_page; new_page = gnome_druid_page_edge_new_aa (GNOME_EDGE_FINISH); gb_widget_create_from (new_page, "GnomeDruidPageFinish"); gtk_widget_show_all (new_page); gnome_druid_append_page (druid, GNOME_DRUID_PAGE (new_page)); gb_gnome_druid_show_page (GTK_WIDGET (druid), new_page); gnome_druid_set_page (druid, GNOME_DRUID_PAGE (new_page)); tree_add_widget (GTK_WIDGET (new_page)); }
at_job_t *make_new_at_job() { GtkWidget *druid, *page_start, *page_at1, *page_at2, *page_finish; GtkWidget *hbox, *frame, *align, *bigvbox; at_druid_info *info; struct tm *tp; time_t t; char *fname; GdkPixbuf *logo = NULL; fname = gnome_pixmap_file("gnome-clock.png"); if (fname) logo = gdk_pixbuf_new_from_file(fname, NULL); g_free(fname); time(&t); tp = localtime(&t); info = g_new(at_druid_info, 1); druid = gnome_druid_new_with_window("New One-Time Job", NULL, TRUE, &info->win); page_start = gnome_druid_page_edge_new_with_vals( GNOME_EDGE_START, FALSE, "Create new one-time job", "This series of dialogs will step\n" "you through the process of creating\n" "a new one-time job.", logo, NULL, NULL); page_at1 = gnome_druid_page_standard_new_with_vals( "Choose a time and date", logo, NULL); page_at2 = gnome_druid_page_standard_new_with_vals( "Select command", logo, NULL); page_finish = gnome_druid_page_edge_new_with_vals( GNOME_EDGE_FINISH, FALSE, "Confirm new job", NULL, logo, NULL, NULL); bigvbox = gtk_vbox_new(FALSE, 0); align = gtk_alignment_new(0.5, 0.5, 0.0, 0.0); gtk_container_add(GTK_CONTAINER(align), bigvbox); gtk_box_pack_start(GTK_BOX(GNOME_DRUID_PAGE_STANDARD(page_at1)->vbox), align, TRUE, TRUE, 0); info->cal = gtk_calendar_new(); gtk_box_pack_start(GTK_BOX(bigvbox), info->cal, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 0); frame = gtk_frame_new("Time"); gtk_container_set_border_width(GTK_CONTAINER(frame), 8); gtk_box_pack_start(GTK_BOX(bigvbox), frame, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), hbox); info->hour = make_new_spinner("Hour:", tp->tm_hour, 0, 23, 5, hbox); info->minute = make_new_spinner("Minute:", tp->tm_min, 0, 59, 5, hbox); info->command = make_job_page(GNOME_DRUID_PAGE_STANDARD(page_at2)->vbox); gtk_signal_connect_object(GTK_OBJECT(page_finish), "finish", GTK_SIGNAL_FUNC(at_commit_job), (gpointer)info); gtk_signal_connect_object(GTK_OBJECT(info->win), "destroy", GTK_SIGNAL_FUNC(g_free), (gpointer)info); gtk_signal_connect(GTK_OBJECT(page_finish), "prepare", GTK_SIGNAL_FUNC(prepare_last_page), (gpointer)info); gtk_signal_connect(GTK_OBJECT(info->command), "changed", GTK_SIGNAL_FUNC(cmd_changed), (gpointer)druid); gnome_druid_append_page(GNOME_DRUID(druid), GNOME_DRUID_PAGE(page_start)); gnome_druid_append_page(GNOME_DRUID(druid), GNOME_DRUID_PAGE(page_at1)); gnome_druid_append_page(GNOME_DRUID(druid), GNOME_DRUID_PAGE(page_at2)); gnome_druid_append_page(GNOME_DRUID(druid), GNOME_DRUID_PAGE(page_finish)); gnome_druid_set_page(GNOME_DRUID(druid), GNOME_DRUID_PAGE(page_start)); gtk_window_set_modal(GTK_WINDOW(info->win), TRUE); gtk_widget_show_all(info->win); g_object_unref(logo); return NULL; }
/*--------------------------------------------------------------------------*/ static void add_downloading_page( GnomeDruid *wdruid, GdkPixbuf *logo ) { GtkWidget *wpage, *wvbox, *wvbox2, *wvbox3, *wvbox4; GtkWidget *whbox2, *whbox3, *whbox4; GtkWidget *wlabel1, *wlabel2, *wframe; GdkColor druid_bg_color = DRUID_BG_COLOR; GdkColor druid_title_color = DRUID_TITLE_COLOR; gb_debug (DEBUG_UPDATE, "START"); wpage = gnome_druid_page_standard_new_with_vals (_("Downloading..."), logo, NULL); gnome_druid_page_standard_set_background(GNOME_DRUID_PAGE_STANDARD(wpage), &druid_bg_color); gnome_druid_page_standard_set_logo_background(GNOME_DRUID_PAGE_STANDARD(wpage), &druid_bg_color); gnome_druid_page_standard_set_title_foreground(GNOME_DRUID_PAGE_STANDARD(wpage), &druid_title_color); gnome_druid_append_page( wdruid, GNOME_DRUID_PAGE(wpage) ); wvbox = GNOME_DRUID_PAGE_STANDARD(wpage)->vbox; wvbox2 = gtk_vbox_new( FALSE, 10 ); gtk_container_set_border_width( GTK_CONTAINER(wvbox2), 20 ); gtk_box_pack_start( GTK_BOX(wvbox), wvbox2, TRUE, FALSE, 0 ); wlabel1 = gtk_label_new( _("Please wait while GBonds downloads new redemption data.") ); gtk_box_pack_start( GTK_BOX(wvbox2), wlabel1, FALSE, TRUE, 0 ); wframe = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX(wvbox2), wframe, FALSE, TRUE, 0 ); whbox2 = gtk_hbox_new( FALSE, 0 ); gtk_container_set_border_width( GTK_CONTAINER(whbox2), 5 ); gtk_container_add( GTK_CONTAINER(wframe), whbox2 ); status_label = gtk_label_new( _("Status") ); gtk_label_set_justify( GTK_LABEL(status_label), GTK_JUSTIFY_LEFT ); gtk_box_pack_start( GTK_BOX(whbox2), status_label, FALSE, TRUE, 0 ); wvbox3 = gtk_vbox_new( FALSE, 2 ); gtk_box_pack_start( GTK_BOX(wvbox2), wvbox3, TRUE, FALSE, 0 ); whbox3 = gtk_hbox_new( FALSE, 0 ); gtk_box_pack_start( GTK_BOX(wvbox3), whbox3, FALSE, TRUE, 0 ); file_label = gtk_label_new( _("File") ); gtk_label_set_justify( GTK_LABEL(file_label), GTK_JUSTIFY_LEFT ); gtk_box_pack_start( GTK_BOX(whbox3), file_label, FALSE, TRUE, 0 ); file_progress = gtk_progress_bar_new(); gtk_progress_bar_set_text( GTK_PROGRESS_BAR(file_progress), "" ); gtk_box_pack_start( GTK_BOX(wvbox3), file_progress, FALSE, TRUE, 0 ); wvbox4 = gtk_vbox_new( FALSE, 2 ); gtk_box_pack_start( GTK_BOX(wvbox2), wvbox4, TRUE, FALSE, 0 ); whbox4 = gtk_hbox_new( FALSE, 0 ); gtk_box_pack_start( GTK_BOX(wvbox4), whbox4, FALSE, TRUE, 0 ); wlabel2 = gtk_label_new( _("Total") ); gtk_label_set_justify( GTK_LABEL(wlabel2), GTK_JUSTIFY_LEFT ); gtk_box_pack_start( GTK_BOX(whbox4), wlabel2, FALSE, TRUE, 0 ); total_progress = gtk_progress_bar_new(); gtk_progress_bar_set_text( GTK_PROGRESS_BAR(total_progress), "" ); gtk_box_pack_start( GTK_BOX(wvbox4), total_progress, FALSE, TRUE, 0 ); g_signal_connect_after( G_OBJECT(wpage), "prepare", G_CALLBACK(prepare_downloading_page), NULL ); gb_debug (DEBUG_UPDATE, "END"); }
/*--------------------------------------------------------------------------*/ static void add_start_page( GnomeDruid *wdruid, GdkPixbuf *logo ) { GtkWidget *wpage; GdkColor druid_bg_color = DRUID_BG_COLOR; GdkColor druid_title_color = DRUID_TITLE_COLOR; gbDate date_min, date_max, date_today; gchar *date_min_string, *date_max_string, *date_today_string; gchar *msg, *msg1; gbTableModel *table_model; gb_debug (DEBUG_UPDATE, "START"); table_model = gb_table_get_model (); date_min = gb_table_model_get_rdate_min (table_model); date_max = gb_table_model_get_rdate_max (table_model); date_today = gb_table_model_get_rdate_today (); date_min_string = gb_date_fmt( date_min ); date_max_string = gb_date_fmt( date_max ); date_today_string = gb_date_fmt( date_today ); if ( date_today == date_max ) { msg1 = g_strdup_printf( _( "Current redemption data will expire at the end\n" "of this month (%s)\n" ), date_today_string ); } else { if ( date_today > date_max ) { msg1 = g_strdup( _( "Current redemption data has expired.\n" ) ); } else { msg1 = g_strdup( "" ); } } msg = g_strdup_printf( _( "%s\n" "GBonds is currently configured with redemption data\n" "for %s - %s.\n\n" "New redemption data is published by the U.S. Treasury\n" "every six months. This dialog will help you\n" "download and install new redemption data.\n\n" "You can hit cancel at any point to cancel this dialog." ), msg1, date_min_string, date_max_string ); wpage = gnome_druid_page_edge_new_with_vals (GNOME_EDGE_START, TRUE, _("Update redemption tables"), msg, logo, NULL, NULL); gnome_druid_page_edge_set_bg_color (GNOME_DRUID_PAGE_EDGE(wpage), &druid_bg_color); gnome_druid_page_edge_set_logo_bg_color (GNOME_DRUID_PAGE_EDGE(wpage), &druid_bg_color); gnome_druid_page_edge_set_title_color (GNOME_DRUID_PAGE_EDGE(wpage), &druid_title_color); gnome_druid_append_page( wdruid, GNOME_DRUID_PAGE(wpage) ); g_free( date_min_string ); g_free( date_max_string ); g_free( date_today_string ); g_free( msg ); g_free( msg1 ); gb_debug (DEBUG_UPDATE, "END"); }