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

📄 interface.c

📁 AirFart监听 802.11流量
💻 C
📖 第 1 页 / 共 2 页
字号:
	if (gtk_tree_view_column_get_visible(GTK_TREE_VIEW_COLUMN(column)))		gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN(column), FALSE);	else		gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN(column), TRUE);	}static void add_columns (){	GtkCellRenderer *renderer;		renderer = gtk_cell_renderer_text_new ();	col_eth_addr = gtk_tree_view_column_new_with_attributes ("Ethernet Address",			renderer,			"text",			COLUMN_ETH_ADDR_STRING,			NULL);	/* set this column to a fixed sizing (of 110 pixels) */	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_eth_addr),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_eth_addr), 110);	gtk_tree_view_column_set_sort_column_id (col_eth_addr, COLUMN_ETH_ADDR_STRING);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_eth_addr);	/* column for ssid*/	renderer = gtk_cell_renderer_text_new ();	col_ssid = gtk_tree_view_column_new_with_attributes ("SSID",			renderer,			"text",			COLUMN_SSID_STRING,			NULL);	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_ssid),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_ssid), 150);	gtk_tree_view_column_set_sort_column_id (col_ssid, COLUMN_SSID_STRING);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_ssid);	/* column for vendor id*/	renderer = gtk_cell_renderer_text_new ();	col_manufacturer = gtk_tree_view_column_new_with_attributes ("Manufacturer",			renderer,			"text",			COLUMN_VENDOR_ID_STRING,			NULL);	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_manufacturer),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_manufacturer), 150);	gtk_tree_view_column_set_sort_column_id (col_manufacturer, COLUMN_VENDOR_ID_STRING);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_manufacturer);	/* column for strength */	renderer = gtk_cell_renderer_text_new ();	col_strength = gtk_tree_view_column_new_with_attributes ("Strength",			renderer,			"text",			COLUMN_STRENGTH,			NULL);	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_strength),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_strength), 60);	gtk_tree_view_column_set_sort_column_id (col_strength, COLUMN_STRENGTH);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_strength);	/* column for strength bar */	renderer = gtk_cell_renderer_pixbuf_new ();	g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL);//this makes the column aligned left	col_strength_bar = gtk_tree_view_column_new_with_attributes ("Strength Bar",			renderer,			"pixbuf",			COLUMN_STRENGTH_BAR,			NULL);	/* set this column to a fixed sizing of 100 pixels */	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_strength_bar),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_strength_bar), 200);	gtk_tree_view_column_set_sort_column_id (col_strength_bar, COLUMN_STRENGTH);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_strength_bar);		/* Column for Packet Count */	renderer = gtk_cell_renderer_text_new ();	col_packet_count = gtk_tree_view_column_new_with_attributes ("Packet Count",			renderer,			"text",			COLUMN_PACKET_COUNT,			NULL);	/* Set this column to be a fixed sizing of 100 pixels */	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_packet_count),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_packet_count), 100);	gtk_tree_view_column_set_sort_column_id (col_packet_count, COLUMN_PACKET_COUNT);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_packet_count); 		/* column for active */	renderer = gtk_cell_renderer_pixbuf_new ();	col_active = gtk_tree_view_column_new_with_attributes ("Active",			renderer,			"pixbuf",			COLUMN_ACTIVE_LIGHT,			NULL);	/* set this column to a fixed sizing of 20 pixels */	gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (col_active),			GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col_active), 20);	gtk_tree_view_column_set_sort_column_id (col_active, COLUMN_TIME_STAMP);	gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), col_active);}GtkWidget* create_main_window (){	GtkWidget *main_window;	GtkWidget *viewport1;	GtkWidget *vbox1;	GtkWidget *main_menu_bar;	GtkWidget *file_menu_container, *file_menu, *prefs_menu, *file_menu_separator, *quit;	GtkWidget *activation_menu_container, *activation_menu, *fields_menu, *fields_menu_container;	GtkWidget *help_menu_container, *help_menu, *about;	GtkWidget *scrolledwindow2;	GtkWidget *statusbar;	GtkAccelGroup *accel_group;	GtkTreeModel *datamodel;	GSList *active_group = NULL;	GtkWidget *active_item;	GtkWidget *about_image;	pthread_t threadId;	//ModelData* md;	int err;	gint i;	sem_init(&semaphore,0,1);	accel_group = gtk_accel_group_new ();	main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);	gtk_window_set_title (GTK_WINDOW (main_window), "Airfart");	viewport1 = gtk_viewport_new (NULL, NULL);	gtk_widget_show (viewport1);	gtk_container_add (GTK_CONTAINER (main_window), viewport1);	vbox1 = gtk_vbox_new (FALSE, 0);	gtk_widget_show (vbox1);	gtk_container_add (GTK_CONTAINER (viewport1), vbox1);	main_menu_bar = gtk_menu_bar_new ();	gtk_widget_show (main_menu_bar);	gtk_box_pack_start (GTK_BOX (vbox1), main_menu_bar, FALSE, FALSE, 0);	file_menu_container = gtk_menu_item_new_with_mnemonic ("_File");	gtk_widget_show (file_menu_container);	gtk_container_add (GTK_CONTAINER (main_menu_bar), file_menu_container);	file_menu = gtk_menu_new ();	gtk_menu_item_set_submenu (GTK_MENU_ITEM (file_menu_container), file_menu);	prefs_menu = gtk_image_menu_item_new_from_stock("gtk-preferences", accel_group);	gtk_widget_show(prefs_menu);	gtk_container_add(GTK_CONTAINER(file_menu), prefs_menu);	g_signal_connect (G_OBJECT(prefs_menu), "activate", G_CALLBACK (show_pref_window), NULL);		file_menu_separator = gtk_separator_menu_item_new ();	gtk_widget_show (file_menu_separator);	gtk_container_add (GTK_CONTAINER (file_menu), file_menu_separator);	gtk_widget_set_sensitive (file_menu_separator, FALSE);	quit = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group);	gtk_widget_show (quit);	gtk_container_add (GTK_CONTAINER (file_menu), quit);	g_signal_connect (G_OBJECT (quit), "activate", G_CALLBACK (destroy), NULL);	/* Setup the activation menu */		activation_menu_container = gtk_menu_item_new_with_mnemonic ("_Activation Time");	gtk_widget_show (activation_menu_container);	gtk_container_add (GTK_CONTAINER (main_menu_bar), activation_menu_container);	activation_menu = gtk_menu_new ();	gtk_menu_item_set_submenu (GTK_MENU_ITEM (activation_menu_container), activation_menu);	for (i = 1; i <= 5; i++)	{		active_item = gtk_radio_menu_item_new_with_label (active_group, g_strdup_printf("%d second%c", i, ((i != 1) ? 's' : ' ')));		active_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (active_item));		gtk_container_add (GTK_CONTAINER (activation_menu), active_item);		gtk_signal_connect (GTK_OBJECT (active_item), "activate", GTK_SIGNAL_FUNC (set_active_secs), (gpointer) g_strdup_printf("%d", i));		if (i == 3)			gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (active_item), TRUE);		gtk_widget_show(GTK_WIDGET(active_item));	}		/* Setup the Show Columns menu */	fields_menu_container = gtk_menu_item_new_with_mnemonic ("_Show Columns");	gtk_widget_show (fields_menu_container);	gtk_container_add (GTK_CONTAINER (main_menu_bar), fields_menu_container);	fields_menu = gtk_menu_new ();	gtk_menu_item_set_submenu (GTK_MENU_ITEM (fields_menu_container), fields_menu);	col_eth_addr_menu = gtk_check_menu_item_new_with_label ("Ethernet Address");	gtk_widget_show (col_eth_addr_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_eth_addr_menu);	gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( col_eth_addr_menu ), TRUE );	gtk_signal_connect (GTK_OBJECT (col_eth_addr_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "1");		col_ssid_menu = gtk_check_menu_item_new_with_label ("SSID");	gtk_widget_show (col_ssid_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_ssid_menu);	gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( col_ssid_menu ), TRUE );	gtk_signal_connect (GTK_OBJECT (col_ssid_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "2");		col_manufacturer_menu = gtk_check_menu_item_new_with_label ("Manufacturer");	gtk_widget_show (col_manufacturer_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_manufacturer_menu);	gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( col_manufacturer_menu ), TRUE );	gtk_signal_connect (GTK_OBJECT (col_manufacturer_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "3");	col_strength_menu = gtk_check_menu_item_new_with_label ("Strength");	gtk_widget_show(col_strength_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_strength_menu);	gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( col_strength_menu ), TRUE );	gtk_signal_connect (GTK_OBJECT (col_strength_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "4");		col_strength_bar_menu = gtk_check_menu_item_new_with_label ("Strength Bar");	gtk_widget_show (col_strength_bar_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_strength_bar_menu);	gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( col_strength_bar_menu ), TRUE );	gtk_signal_connect (GTK_OBJECT (col_strength_bar_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "5");	col_packet_count_menu = gtk_check_menu_item_new_with_label ("Packet Count");	gtk_widget_show (col_packet_count_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_packet_count_menu);	gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM( col_packet_count_menu ), TRUE);	gtk_signal_connect (GTK_OBJECT (col_packet_count_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "6");		col_active_menu = gtk_check_menu_item_new_with_label ("Active Light");	gtk_widget_show (col_active_menu);	gtk_container_add (GTK_CONTAINER (fields_menu), col_active_menu);	gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( col_active_menu ), TRUE );	gtk_signal_connect (GTK_OBJECT (col_active_menu), "activate", GTK_SIGNAL_FUNC (toggle_column), (gpointer) "7");	/* Setup the help menu */		help_menu_container = gtk_menu_item_new_with_mnemonic ("_Help");	gtk_widget_show (help_menu_container);	gtk_container_add (GTK_CONTAINER (main_menu_bar), help_menu_container);	help_menu = gtk_menu_new ();	gtk_menu_item_set_submenu (GTK_MENU_ITEM (help_menu_container), help_menu);	about_image = gtk_image_new_from_file("/usr/share/pixmaps/airfart/about_menu.png");	about = gtk_image_menu_item_new_with_mnemonic ("_About");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(about), GTK_WIDGET(about_image));	gtk_widget_show (about);	gtk_container_add (GTK_CONTAINER (help_menu), about);	gtk_signal_connect_object(GTK_OBJECT(about), "activate",			GTK_SIGNAL_FUNC(show_about), NULL);	scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolledwindow2),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);	gtk_widget_show (scrolledwindow2);	gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow2, TRUE, TRUE, 0);	datamodel = create_model();	/* create tree view */	treeview = gtk_tree_view_new_with_model (datamodel);	#ifdef DEBUG_INTERFACE		printf("i just set up my treeview\n");	#endif	gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);	g_object_unref (G_OBJECT (datamodel));	gtk_container_add (GTK_CONTAINER (scrolledwindow2), treeview);	add_columns();	/* finish & show */	gtk_signal_connect_object(GTK_OBJECT(main_window), "destroy", GTK_SIGNAL_FUNC(destroy), NULL);	gtk_signal_connect_object(GTK_OBJECT(main_window), "delete_event", GTK_SIGNAL_FUNC(destroy), NULL);				gtk_window_set_default_size (GTK_WINDOW (main_window), 820, 300);	statusbar = gtk_statusbar_new ();	gtk_widget_show (statusbar);	gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);	gtk_window_add_accel_group (GTK_WINDOW (main_window), accel_group);	if (!GTK_WIDGET_VISIBLE (main_window))		gtk_widget_show_all (main_window);	else	{		gtk_widget_destroy (main_window);		main_window = NULL;	}	return main_window;}void destroy( GtkWidget *widget, gpointer data ){	gtk_main_quit ();}

⌨️ 快捷键说明

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