⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menus.c

📁 Linux系统下著名的个人防火墙
💻 C
📖 第 1 页 / 共 2 页
字号:
	gtk_icon_source_set_pixbuf (icon_source, pixbuf);	gtk_icon_set_add_source (icon_set, icon_source);	gtk_icon_factory_add (icon_factory, stock_id, icon_set);}static guintmerge_ui (const gchar *description){	guint merge_id;	GError *error;		merge_id = gtk_ui_manager_add_ui_from_string (ui_manager, description, -1, &error); 	if (!merge_id) {		g_message ("Building menus failed: %s", error->message);		g_error_free (error);		exit (EXIT_FAILURE);	}	gtk_ui_manager_ensure_update (ui_manager);	return merge_id;}/* [ menus_set_toolbar ] * Switch the application toolbar to a view specific one */voidmenus_set_toolbar (FirestarterView new_view){	static guint merge_id = -1;	const char *description;	if (new_view == STATUS_VIEW)		description = statusbar_description;	else if (new_view == EVENTS_VIEW)		description = eventsbar_description;	else		description = policybar_description;	if (merge_id != -1) { /* Remove the previous toolbar contents */		gtk_ui_manager_remove_ui (ui_manager, merge_id);	}	merge_id = merge_ui (description);}voidmenus_update_firewall_controls_state (FirewallStatus state){	static guint start_stop_merge_id = -1;	static guint lock_merge_id = -1;	const gchar *description = NULL;	switch (state) {	  case STATUS_HIT:	  case STATUS_RUNNING: description = firewall_state_active_description; break;	  case STATUS_STOPPED: description = firewall_state_disabled_description; break;	  case STATUS_LOCKED:  description = firewall_state_locked_description; break;	  case STATUS_NONE: break;	  default: g_assert_not_reached ();	}	if (start_stop_merge_id != -1)		gtk_ui_manager_remove_ui (ui_manager, start_stop_merge_id);	if (lock_merge_id != -1)		gtk_ui_manager_remove_ui (ui_manager, lock_merge_id);	if (state == STATUS_NONE) { /* Do not add a toolbar item */		start_stop_merge_id = -1;		lock_merge_id = -1;	} else {		if (state == STATUS_HIT || state == STATUS_RUNNING || state == STATUS_STOPPED) {			lock_merge_id = merge_ui (firewall_state_unlocked_description);			start_stop_merge_id = merge_ui (description);		} else if (state == STATUS_LOCKED)			lock_merge_id = merge_ui (description);	}}voidmenus_update_events_reloading (gboolean in_progress, gboolean visible){	static guint merge_id = -1;	const gchar *description = NULL;	if (in_progress)		description = events_reloading_description;	else		description = events_not_reloading_description;	if (merge_id != -1)		gtk_ui_manager_remove_ui (ui_manager, merge_id);	if (visible)		merge_id = merge_ui (description);	else		merge_id = -1;}/* [ menus_initialize ] * Install the menus and the toolbar in *window */voidmenus_initialize (GtkWidget *window){	GtkIconFactory *icon_factory;	GtkWidget *menubar;	GtkActionGroup *action_group;	GError *error;	guint merge_id;	GtkWidget *toolbar;	int i;	icon_factory = gtk_icon_factory_new ();	gtk_icon_factory_add_default (icon_factory);	register_icon_set (icon_factory, FIRESTARTER_STOCK_WIZARD, icon_wizard);	register_icon_set (icon_factory, FIRESTARTER_STOCK_START_FIREWALL, icon_start_toolbar);	register_icon_set (icon_factory, FIRESTARTER_STOCK_STOP_FIREWALL, icon_stop_toolbar);	register_icon_set (icon_factory, FIRESTARTER_STOCK_EDIT, icon_edit);	register_icon_set (icon_factory, FIRESTARTER_STOCK_LOCK_FIREWALL, icon_locked);	register_icon_set (icon_factory, FIRESTARTER_STOCK_UNLOCK_FIREWALL, icon_unlocked);	action_group = gtk_action_group_new ("MenuActions");	gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);	gtk_action_group_add_actions (action_group, entries, G_N_ELEMENTS (entries), window);	toggle_entries[0].is_active = preferences_get_bool (PREFS_HITVIEW_TIME_COL);	toggle_entries[1].is_active = preferences_get_bool (PREFS_HITVIEW_DIRECTION_COL);	toggle_entries[2].is_active = preferences_get_bool (PREFS_HITVIEW_IN_COL);	toggle_entries[3].is_active = preferences_get_bool (PREFS_HITVIEW_OUT_COL);	toggle_entries[4].is_active = preferences_get_bool (PREFS_HITVIEW_PORT_COL);	toggle_entries[5].is_active = preferences_get_bool (PREFS_HITVIEW_SOURCE_COL);	toggle_entries[6].is_active = preferences_get_bool (PREFS_HITVIEW_DESTINATION_COL);	toggle_entries[7].is_active = preferences_get_bool (PREFS_HITVIEW_LENGTH_COL);	toggle_entries[8].is_active = preferences_get_bool (PREFS_HITVIEW_TOS_COL);	toggle_entries[9].is_active = preferences_get_bool (PREFS_HITVIEW_PROTOCOL_COL);	toggle_entries[10].is_active = preferences_get_bool (PREFS_HITVIEW_SERVICE_COL);	gtk_action_group_add_toggle_actions (action_group, toggle_entries, G_N_ELEMENTS (toggle_entries), NULL);	ui_manager = gtk_ui_manager_new ();	gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);	main_accel_group = gtk_ui_manager_get_accel_group (ui_manager);	gtk_window_add_accel_group (GTK_WINDOW (window), main_accel_group);	g_object_unref (main_accel_group);	error = NULL;	merge_id = gtk_ui_manager_add_ui_from_string (ui_manager, ui_description, -1, &error);	if (!merge_id) {		g_message ("Building menus failed: %s", error->message);		g_error_free (error);		exit (EXIT_FAILURE);	}		for (i = 0; i < NUM_SHOW_TOGGLES; i++) { /* Register new callbacks for all toggle items */		GtkWidget *toggle;		gchar *path;		path = g_strdup_printf ("/MainMenu/EventsMenu/EventsShowSubmenu/ShowCol%d", i);		toggle = gtk_ui_manager_get_widget (ui_manager, path);		g_signal_connect (G_OBJECT (toggle), "toggled",		                  G_CALLBACK (hitview_toggle_column_visibility), (gint*)i);				g_free (path); 	}	menubar = gtk_ui_manager_get_widget (ui_manager, "/MainMenu");	gnome_app_set_menus (GNOME_APP (window), GTK_MENU_BAR (menubar));	toolbar = gtk_ui_manager_get_widget (ui_manager, "/Toolbar");	gnome_app_set_toolbar (GNOME_APP (Firestarter.window), GTK_TOOLBAR (toolbar));	/* gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS); */	menus_set_toolbar (STATUS_VIEW);	menus_update_firewall_controls_state (STATUS_RUNNING);	menus_update_events_reloading (FALSE, FALSE);}GtkWidget *menus_get_events_inbound_context_menu (void){	return gtk_ui_manager_get_widget (ui_manager, "/EventsInboundContext");}GtkWidget *menus_get_events_outbound_context_menu (void){	return gtk_ui_manager_get_widget (ui_manager, "/EventsOutboundContext");}GtkWidget *menus_get_policy_context_menu (void){	return gtk_ui_manager_get_widget (ui_manager, "/PolicyContext");}GtkWidget *menus_get_connections_context_menu (void){	return gtk_ui_manager_get_widget (ui_manager, "/ConnectionsContext");}voidmenus_events_save_enabled (gboolean enabled){	GtkAction *action;	action = gtk_ui_manager_get_action (ui_manager, "/MainMenu/EventsMenu/SaveEventList");	g_object_set (G_OBJECT (action), "sensitive", enabled, NULL);}voidmenus_events_clear_enabled (gboolean enabled){	GtkAction *action;	action = gtk_ui_manager_get_action (ui_manager, "/MainMenu/EventsMenu/ClearEventList");	g_object_set (G_OBJECT (action), "sensitive", enabled, NULL);}voidmenus_policy_edit_enabled (gboolean enabled){	GtkAction *action;	action = gtk_ui_manager_get_action (ui_manager, "/PolicyContext/EditRule");	g_object_set (G_OBJECT (action), "sensitive", enabled, NULL);}voidmenus_policy_remove_enabled (gboolean enabled){	GtkAction *action;	action = gtk_ui_manager_get_action (ui_manager, "/PolicyContext/RemoveRule");	g_object_set (G_OBJECT (action), "sensitive", enabled, NULL);}voidmenus_policy_add_enabled (gboolean enabled){	GtkAction *action;	action = gtk_ui_manager_get_action (ui_manager, "/PolicyContext/AddRule");	g_object_set (G_OBJECT (action), "sensitive", enabled, NULL);}voidmenus_policy_apply_enabled (gboolean enabled){	GtkAction *action;	action = gtk_ui_manager_get_action (ui_manager, "/MainMenu/PolicyMenu/ApplyPolicy");	g_object_set (G_OBJECT (action), "sensitive", enabled, NULL);}static voidopen_homepage (void){	gnome_url_show ("http://www.fs-security.com", NULL);}static voidopen_manual (void){	gnome_url_show ("http://www.fs-security.com/docs/", NULL);}/* [ copy_selected ] * Copy the selection in the active view to the clipboard */static voidcopy_selected (void){	FirestarterView v;	v = gui_get_active_view ();	if (v == EVENTS_VIEW)		copy_selected_hit ();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -