static GtkWidget *archs_stats_page (void) { GtkWidget *page_vbox; GtkWidget *alignment; GtkWidget *option_menu; GtkWidget *hbox; int pagenum = 0; enum server_type type = Q2_SERVER; enum server_type to_activate = UNKNOWN_SERVER; page_vbox = gtk_vbox_new (FALSE, 4); gtk_container_set_border_width (GTK_CONTAINER (page_vbox), 8); alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); arch_notebook = gtk_notebook_new (); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (arch_notebook), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (arch_notebook), GTK_POS_TOP); gtk_notebook_set_tab_hborder (GTK_NOTEBOOK (arch_notebook), 4); gtk_notebook_set_show_border(GTK_NOTEBOOK(arch_notebook), FALSE); gtk_container_add (GTK_CONTAINER (alignment), arch_notebook); to_activate = config_get_int("/" CONFIG_FILE "/Statistics/game"); for (type = 0; type < GAMES_TOTAL; ++type) { if (!create_server_type_menu_filter_hasharch(type)) continue; srv_archs[type].notebookpage=pagenum++; arch_notebook_page (arch_notebook, type, &srv_archs[type]); } // the notebook must exist to allow activate events of the menu hbox = gtk_hbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (page_vbox), hbox, FALSE, TRUE, 0); option_menu = create_server_type_menu (to_activate, create_server_type_menu_filter_hasharch, GTK_SIGNAL_FUNC(select_server_type_callback)); gtk_box_pack_start (GTK_BOX (hbox), option_menu, TRUE, FALSE, 0); gtk_widget_show (option_menu); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX (page_vbox), alignment, TRUE, TRUE, 0); gtk_widget_show (arch_notebook); gtk_widget_show (alignment); gtk_widget_show (page_vbox); return page_vbox; }
/* Sets whether the tabs should have a horizontal border. */ int clip_GTK_NOTEBOOKSETTABHBORDER(ClipMachine * cm) { C_widget *cntb = _fetch_cw_arg(cm); gboolean tab_hborder = _clip_parl(cm,2); CHECKCWID(cntb,GTK_IS_NOTEBOOK); CHECKOPT(2,LOGICAL_t); if (_clip_parinfo(cm,2)==UNDEF_t) tab_hborder = TRUE; gtk_notebook_set_tab_hborder(GTK_NOTEBOOK(cntb->widget), tab_hborder); return 0; err: return 1; }
void statistics_dialog (void) { GtkWidget *window; GtkWidget *main_vbox; GtkWidget *page; GtkWidget *hbox; GtkWidget *label; GtkWidget *button; int page_num = 0; server_stats_create (); collect_statistics (); window = dialog_create_modal_transient_window (_("Statistics"), TRUE, TRUE, GTK_SIGNAL_FUNC(statistics_save_geometry)); statistics_restore_geometry(window); main_vbox = gtk_vbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 8); gtk_container_add (GTK_CONTAINER (window), main_vbox); label = gtk_label_new (_("Statistics")); gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 8); gtk_widget_show (label); stat_notebook = gtk_notebook_new (); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (stat_notebook), GTK_POS_TOP); gtk_notebook_set_tab_hborder (GTK_NOTEBOOK (stat_notebook), 4); gtk_box_pack_start (GTK_BOX (main_vbox), stat_notebook, TRUE, TRUE, 0); page = server_stats_page (); label = gtk_label_new (_(srv_label)); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (stat_notebook), page, label); page = archs_stats_page (); label = gtk_label_new (_(arch_label)); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (stat_notebook), page, label); #ifdef USE_GEOIP page = country_stats_page (); label = gtk_label_new (_(country_label)); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (stat_notebook), page, label); #endif page_num = config_get_int ("/" CONFIG_FILE "/Statistics/page"); gtk_notebook_set_page (GTK_NOTEBOOK (stat_notebook), page_num); gtk_widget_show (stat_notebook); /* Close Button */ hbox = gtk_hbox_new (FALSE, 8); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label (_("Close")); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_set_usize (button, 80, -1); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (grab_defaults), NULL); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window)); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_widget_grab_default (button); gtk_widget_show (button); gtk_widget_show (hbox); gtk_widget_show (main_vbox); gtk_widget_show (window); gtk_main (); unregister_window (window); server_stats_destroy (); }
static GtkWidget *country_stats_page (void) { GtkWidget *page_vbox; GtkWidget *option_menu; GtkWidget *hbox; int pagenum = 0; enum server_type type = Q2_SERVER; enum server_type to_activate = UNKNOWN_SERVER; page_vbox = gtk_vbox_new (FALSE, 4); gtk_container_set_border_width (GTK_CONTAINER (page_vbox), 8); country_notebook = gtk_notebook_new (); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (country_notebook), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (country_notebook), GTK_POS_TOP); gtk_notebook_set_tab_hborder (GTK_NOTEBOOK (country_notebook), 4); gtk_notebook_set_show_border(GTK_NOTEBOOK(country_notebook), FALSE); selected_country = to_activate = config_get_int("/" CONFIG_FILE "/Statistics/country"); for (type = 0; type <= GAMES_TOTAL; ++type) { if (!srv_countries[type].nonzero) continue; srv_countries[type].notebookpage=pagenum++; country_notebook_page (country_notebook, type, &srv_countries[type]); } // the notebook must exist to allow activate events of the menu hbox = gtk_hbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (page_vbox), hbox, FALSE, TRUE, 0); option_menu = create_server_type_menu (to_activate==GAMES_TOTAL?-1:to_activate, create_server_type_menu_filter_hascountries, GTK_SIGNAL_FUNC(select_country_server_type_callback)); { GtkWidget* menu_item = gtk_menu_item_new (); GtkWidget* label = gtk_label_new(_("All Games")); GtkWidget* menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(option_menu)); // separator gtk_widget_set_sensitive (menu_item, FALSE); gtk_menu_prepend (GTK_MENU (menu), menu_item); gtk_widget_show (menu_item); menu_item = gtk_menu_item_new (); gtk_menu_prepend (GTK_MENU (menu), menu_item); gtk_container_add (GTK_CONTAINER (menu_item), label); gtk_signal_connect (GTK_OBJECT (menu_item), "activate", GTK_SIGNAL_FUNC (select_country_server_type_callback), (gpointer)GAMES_TOTAL); gtk_widget_show (menu_item); gtk_widget_show (label); if (to_activate == GAMES_TOTAL) { gtk_menu_item_activate (GTK_MENU_ITEM (menu_item)); gtk_option_menu_set_history (GTK_OPTION_MENU (option_menu), 0); } } gtk_box_pack_start (GTK_BOX (hbox), option_menu, TRUE, FALSE, 0); gtk_widget_show (option_menu); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX (page_vbox), country_notebook, TRUE, TRUE, 0); gtk_widget_show (country_notebook); gtk_widget_show (page_vbox); return page_vbox; }