示例#1
0
文件: statistics.c 项目: aufau/xqf
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;
}
示例#2
0
文件: notebook.c 项目: amery/clip-itk
/* 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;
}
示例#3
0
文件: statistics.c 项目: aufau/xqf
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 ();
}
示例#4
0
文件: statistics.c 项目: aufau/xqf
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;
}