亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainwindow.cpp

?? iptux是linux下面能實現類似windows里面飛鴿傳書的功能
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//// C++ Implementation: MainWindow//// Description:////// Author: Jally <jallyx@163.com>, (C) 2008//// Copyright: See COPYING file that comes with this distribution////#include "MainWindow.h"#include "DetectPal.h"#include "Transport.h"#include "IptuxSetup.h"#include "ShareFile.h"#include "DialogGroup.h"#include "AboutIptux.h"#include "CoreThread.h"#include "UdpData.h"#include "Command.h"#include "DialogPeer.h"#include "RevisePal.h"#include "SendFile.h"#include "Control.h"#include "my_entry.h"#include "output.h"#include "support.h"#include "baling.h"#include "utils.h" MainWindow::MainWindow():window(NULL), client_paned(NULL), accel(NULL){}MainWindow::~MainWindow(){	gtk_widget_destroy(window);	g_object_unref(accel);}void MainWindow::CreateWindow(){	extern Control ctr;	extern struct interactive inter;	GdkGeometry geometry = { 50, 200, 2000, 2000, 0, 0, 1, 10, 0.0, 0.0,		GDK_GRAVITY_NORTH_WEST	};	GdkWindowHints hints =	    GdkWindowHints(GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE |			   GDK_HINT_BASE_SIZE | GDK_HINT_RESIZE_INC |			   GDK_HINT_WIN_GRAVITY | GDK_HINT_USER_POS |			   GDK_HINT_USER_SIZE);	GdkPixbuf *pixbuf;	inter.window = window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	update_widget_bg(window, __BACK_DIR "/back.png");	gtk_window_set_title(GTK_WINDOW(window), _("iptux"));	pixbuf =	    gdk_pixbuf_new_from_file_at_size(__LOGO_DIR "/ip-tux.png", 25, 25,					     NULL);	if (pixbuf) {		gtk_window_set_default_icon(pixbuf);		g_object_unref(pixbuf);	} else		pwarning(Fail, "%s \"" __LOGO_DIR "/ip-tux.png\" %s",			 _("Icon file"), _("is lost!"));	gtk_window_set_geometry_hints(GTK_WINDOW(window), window, &geometry,				      hints);	gtk_window_set_default_size(GTK_WINDOW(window), GINT(ctr.pix * 70),				    GINT(ctr.pix * 170));	accel = gtk_accel_group_new();	gtk_window_add_accel_group(GTK_WINDOW(window), accel);	g_signal_connect_swapped(window, "delete-event",				 G_CALLBACK(SwitchWindowMode), NULL);	gtk_widget_show(window);}void MainWindow::CreateAllArea(){	extern struct interactive inter;	GtkWidget *menu_bar, *label;	GtkWidget *box, *sw, *paltree;	gchar *ptr;	client_paned = create_paned();	gtk_container_add(GTK_CONTAINER(window), client_paned);	box = create_box();	gtk_paned_pack1(GTK_PANED(client_paned), box, true, true);	menu_bar = CreateMenuBar();	gtk_box_pack_start(GTK_BOX(box), menu_bar, FALSE, FALSE, 0);	ptr = g_strdup_printf(_("pals online: %u"), 0);	inter.online = label = create_label(ptr);	g_free(ptr);	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);	sw = create_scrolled_window();	gtk_container_set_border_width(GTK_CONTAINER(sw), 4);	gtk_box_pack_start(GTK_BOX(box), sw, TRUE, TRUE, 0);	paltree = CreatePalView();	gtk_container_add(GTK_CONTAINER(sw), paltree);}GtkWidget *MainWindow::CreateMenuBar(){	GtkWidget *menu_bar;	menu_bar = gtk_menu_bar_new();	update_widget_bg(menu_bar, __BACK_DIR "/title.png");	gtk_widget_show(menu_bar);	CreateFileMenu(menu_bar);	CreateToolMenu(menu_bar);	CreateHelpMenu(menu_bar);	return menu_bar;}GtkWidget *MainWindow::CreatePalView(){	extern UdpData udt;	GdkColor color = { 8, 65535, 65535, 55000 };	GtkTargetEntry target = { "text/plain", 0, 0 };	GtkTreeSelection *selection;	GtkTreeViewColumn *column;	GtkCellRenderer *renderer;	GtkWidget *view;	view = gtk_tree_view_new_with_model(udt.pal_model);	gtk_widget_modify_base(view, GTK_STATE_NORMAL, &color);	gtk_drag_dest_set(view, GTK_DEST_DEFAULT_ALL,			  &target, 1, GDK_ACTION_MOVE);	gtk_tree_view_set_level_indentation(GTK_TREE_VIEW(view), 10);	gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(view), FALSE);	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));	gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection),				    GTK_SELECTION_NONE);	gtk_widget_show(view);	column = gtk_tree_view_column_new();	gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);	renderer = gtk_cell_renderer_pixbuf_new();	//	gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer,					FALSE);	g_object_set(renderer, "follow-state", TRUE, NULL);	gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),					    renderer, "pixbuf", 0, NULL);	renderer = gtk_cell_renderer_text_new();	//	gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer,					TRUE);	g_object_set(renderer, "xalign", 0.0, "wrap-mode", PANGO_WRAP_WORD,		     "foreground", "#52B838", NULL);	gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),					    renderer, "text", 2, "font", 3,					    "visible", 4, NULL);	renderer = gtk_cell_renderer_text_new();	//	gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer,					TRUE);	g_object_set(renderer, "xalign", 0.0, "wrap-mode", PANGO_WRAP_WORD,		     "foreground", "#52B838", NULL);	gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),					    renderer, "markup", 5, "visible", 6,					    NULL);	g_object_set(view, "has-tooltip", TRUE, NULL);	g_signal_connect(view, "query-tooltip",			 G_CALLBACK(ViewQueryTooltip), udt.pal_model);	g_signal_connect(view, "row-activated",			 G_CALLBACK(ViewRowActivated), udt.pal_model);	g_signal_connect(view, "button-press-event",			 G_CALLBACK(PopupPalMenu), udt.pal_model);	g_signal_connect(view, "button-release-event",			 G_CALLBACK(ViewChangeStatus), udt.pal_model);	g_signal_connect(view, "drag-data-received",			 G_CALLBACK(DragDataReceived), udt.pal_model);	return view;}void MainWindow::CreateFileMenu(GtkWidget * menu_bar){	GtkWidget *image;	GtkWidget *menu;	GtkWidget *menu_item;	menu_item = gtk_menu_item_new_with_mnemonic(_("_File"));	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item);	menu = gtk_menu_new();	gtk_widget_show(menu);	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), menu);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Detect"));	image = gtk_image_new_from_file(__TIP_DIR "/detect.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(DetectPal::DetectEntry), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Find"));	image = gtk_image_new_from_file(__TIP_DIR "/find.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(FindSpecifyPal), this);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_separator_menu_item_new();	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Quit"));	image = gtk_image_new_from_file(__TIP_DIR "/out.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate", G_CALLBACK(iptux_gui_quit),			 NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);}void MainWindow::CreateToolMenu(GtkWidget * menu_bar){	GtkWidget *image;	GtkWidget *menu;	GtkWidget *menu_item;	menu_item = gtk_menu_item_new_with_mnemonic(_("_Tools"));	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item);	menu = gtk_menu_new();	gtk_widget_show(menu);	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), menu);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Transport"));	image = gtk_image_new_from_file(__TIP_DIR "/trans.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(Transport::TransportEntry), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Setup"));	image = gtk_image_new_from_file(__TIP_DIR "/setup.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(IptuxSetup::SetupEntry), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Public"));	image = gtk_image_new_from_file(__TIP_DIR "/share.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(ShareFile::ShareEntry), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Group"));	image = gtk_image_new_from_file(__TIP_DIR "/net.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(DialogGroup::DialogEntry), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Update"));	image = gtk_image_new_from_file(__TIP_DIR "/fresh.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate", G_CALLBACK(UpdatePalList),			 NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);}void MainWindow::CreateHelpMenu(GtkWidget * menu_bar){	GtkWidget *menu;	GtkWidget *menu_item;	menu_item = gtk_menu_item_new_with_mnemonic(_("_Help"));	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item);	menu = gtk_menu_new();	gtk_widget_show(menu);	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), menu);	menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, accel);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(AboutIptux::AboutEntry), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);}void MainWindow::UpdateTips(){	extern struct interactive inter;	extern UdpData udt;	char buf[MAX_BUF];	uint32_t sum;	GSList *tmp;	pthread_mutex_lock(&udt.mutex);	sum = 0, tmp = udt.pallist;	while (tmp) {		if (FLAG_ISSET(((Pal *) tmp->data)->flags, 1))			sum++;		tmp = tmp->next;	}	pthread_mutex_unlock(&udt.mutex);	snprintf(buf, MAX_BUF, _("pals online: %u"), sum);	gtk_label_set_text(GTK_LABEL(inter.online), buf);}GtkWidget *MainWindow::CreatePopupMenu(gpointer data){	GtkWidget *menu, *menu_item;	menu = gtk_menu_new();	gtk_widget_show(menu);	menu_item = gtk_menu_item_new_with_label(_("Send Message"));	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(DialogPeer::DialogEntry), data);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_menu_item_new_with_label(_("Send File"));	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(SendFile::SendRegular), data);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_menu_item_new_with_label(_("Send Folder"));	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(SendFile::SendFolder), data);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_menu_item_new_with_label(_("Ask For Shared Files"));	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(AskSharedFiles), data);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_menu_item_new_with_label(_("Change Information"));	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(RevisePal::ReviseEntry), data);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_menu_item_new_with_label(_("Delete Pal"));	g_signal_connect_swapped(menu_item, "activate",				 G_CALLBACK(DeletePal), data);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	return menu;}//find_model 6,0 pixbuf,1 name,2 ipstr,3 user,4 host,5 palGtkTreeModel *MainWindow::CreateFindModel(){	GtkListStore *model;	model = gtk_list_store_new(6, GDK_TYPE_PIXBUF,				   G_TYPE_STRING, G_TYPE_STRING,				   G_TYPE_STRING, G_TYPE_STRING,				   G_TYPE_POINTER);	return GTK_TREE_MODEL(model);}GtkWidget *MainWindow::CreateFindView(){	GdkColor color = { 8, 65535, 65535, 55000 };	GtkTargetEntry target = { "text/plain", 0, 0 };	GtkWidget *view;	GtkTreeModel *model;	GtkTreeViewColumn *column;	GtkCellRenderer *renderer;	GtkTreeSelection *selection;	model = CreateFindModel();	view = gtk_tree_view_new_with_model(model);	gtk_widget_modify_base(view, GTK_STATE_NORMAL, &color);	gtk_drag_dest_set(view, GTK_DEST_DEFAULT_ALL,			  &target, 1, GDK_ACTION_MOVE);	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));	gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection),				    GTK_SELECTION_NONE);	gtk_widget_show(view);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_resizable(column, TRUE);	gtk_tree_view_column_set_title(column, _("nickname"));	renderer = gtk_cell_renderer_pixbuf_new();	g_object_set(renderer, "follow-state", TRUE, NULL);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色视频欧美一区二区三区| 国产乱码精品一区二区三区忘忧草 | 欧美aaa在线| 亚洲一区二区三区三| 夜夜嗨av一区二区三区四季av| 欧美激情一区二区三区蜜桃视频 | 国产精品美女一区二区在线观看| 久久免费电影网| 久久久久久久综合日本| 国产无一区二区| 中文幕一区二区三区久久蜜桃| 久久综合久久99| 国产嫩草影院久久久久| 国产精品国产三级国产专播品爱网| 国产亚洲视频系列| 亚洲视频免费观看| 亚洲成a人v欧美综合天堂| 首页国产欧美久久| 久久精品99久久久| 国产成人免费在线视频| 丁香婷婷综合五月| 欧美在线观看18| 日韩一区二区精品在线观看| 久久日韩粉嫩一区二区三区| 国产精品国产三级国产aⅴ原创| 亚洲精品欧美二区三区中文字幕| 亚洲二区视频在线| 国产精品一区久久久久| 99精品国产视频| 欧美放荡的少妇| 中文天堂在线一区| 午夜在线成人av| 国产宾馆实践打屁股91| 欧美亚洲动漫精品| 久久综合狠狠综合| 亚洲老妇xxxxxx| 国产在线不卡一卡二卡三卡四卡| 99视频精品全部免费在线| 欧美一区二区精品在线| 国产精品免费免费| 日韩黄色片在线观看| 成人高清免费观看| 91精品国产色综合久久久蜜香臀| 欧美国产精品v| 视频一区二区三区在线| 91亚洲大成网污www| 日韩欧美二区三区| 日韩一区在线播放| 精品亚洲国产成人av制服丝袜| 色偷偷久久人人79超碰人人澡| 日韩欧美卡一卡二| 午夜伊人狠狠久久| www.欧美亚洲| 国产亚洲一二三区| 精品亚洲免费视频| 日韩视频在线永久播放| 亚洲国产日韩精品| 91污在线观看| 国产精品国产成人国产三级 | 91.com视频| 一区二区在线观看视频 | 国产精品久久久久aaaa樱花| 日本免费新一区视频| 一本大道av伊人久久综合| 国产校园另类小说区| 久久超碰97中文字幕| 欧美剧情电影在线观看完整版免费励志电影 | 色综合婷婷久久| 国产精品久久久久aaaa| 成人免费不卡视频| 国产日韩欧美精品一区| 久久99精品久久只有精品| 在线播放中文字幕一区| 亚洲电影你懂得| 欧美日韩欧美一区二区| 亚洲韩国精品一区| 欧美性xxxxx极品少妇| 一区二区三区欧美激情| 91久久香蕉国产日韩欧美9色| 1024亚洲合集| 色综合久久中文字幕综合网| 亚洲私人影院在线观看| 欧美羞羞免费网站| 午夜亚洲国产au精品一区二区| 欧美午夜精品电影| 日韩黄色免费网站| 精品国产一区二区三区久久影院| 激情综合五月婷婷| 国产精品毛片无遮挡高清| 99视频国产精品| 一区二区三区在线观看动漫 | 六月丁香婷婷色狠狠久久| 日韩精品一区二区在线观看| 国产在线精品不卡| 中文字幕在线一区免费| 欧美最新大片在线看| 天天综合日日夜夜精品| 久久久五月婷婷| 99久久久精品| 视频一区二区不卡| 日本一二三四高清不卡| 在线观看网站黄不卡| 蜜臀精品一区二区三区在线观看| 国产三级一区二区三区| 91福利视频网站| 九九九久久久精品| 亚洲免费观看视频| 日韩欧美激情一区| 99国产精品久久久久久久久久 | 91精品福利在线一区二区三区| 麻豆精品一二三| 国产精品久久久一区麻豆最新章节| 99视频在线精品| 日韩成人精品在线观看| 国产欧美精品一区二区色综合 | 亚洲一级片在线观看| 日韩美女主播在线视频一区二区三区| 韩国毛片一区二区三区| 亚洲一区二区成人在线观看| 精品人在线二区三区| 97久久精品人人澡人人爽| 久久成人免费网| 亚洲一区二区三区国产| 中文字幕精品在线不卡| 欧美一区二区三区婷婷月色| 99国产精品视频免费观看| 精品综合久久久久久8888| 亚洲一区二区三区在线看| 国产欧美日韩视频一区二区 | 国产在线精品一区二区夜色| 一区二区三区精品视频| 欧美激情艳妇裸体舞| 欧美一二三在线| 欧美日韩亚洲综合| 91啪亚洲精品| 成人精品国产一区二区4080| 麻豆91在线播放免费| 午夜精品福利一区二区三区蜜桃| 一区精品在线播放| 国产免费久久精品| 久久综合九色综合欧美98| 日韩一区二区三区观看| 精品视频123区在线观看| 91香蕉国产在线观看软件| 波波电影院一区二区三区| 国产激情一区二区三区四区 | 亚洲女性喷水在线观看一区| 国产视频一区二区在线| 国产香蕉久久精品综合网| 欧美精品一区二区三区蜜臀| 欧美一区二区三区在线看 | 亚洲一二三四久久| 亚洲精品乱码久久久久| 亚洲欧美日韩精品久久久久| 亚洲天堂网中文字| 亚洲婷婷综合久久一本伊一区| 国产精品国产精品国产专区不蜜| 亚洲国产电影在线观看| 国产精品国产三级国产aⅴ原创| 国产亚洲午夜高清国产拍精品| 欧美精品一区二区三区蜜桃| 精品国产乱码久久| 久久久久久久av麻豆果冻| 久久久久久久久岛国免费| 国产三级精品三级在线专区| 欧美激情一区二区三区全黄| 国产精品视频一区二区三区不卡| 日本一区二区视频在线| 国产精品美女www爽爽爽| 亚洲人成网站影音先锋播放| 亚洲欧美国产77777| 亚洲成人福利片| 免费一区二区视频| 国产一区二区三区久久久| 成人福利视频在线看| 在线影院国内精品| 91精品国产91热久久久做人人| 26uuu精品一区二区三区四区在线| 久久免费视频色| 亚洲欧美一区二区久久| 午夜精品福利一区二区三区蜜桃| 久久99最新地址| 国产+成+人+亚洲欧洲自线| 色婷婷综合中文久久一本| 日韩亚洲欧美一区二区三区| 国产亚洲成aⅴ人片在线观看| 亚洲欧美一区二区久久| 日日夜夜一区二区| 国产大片一区二区| 欧美乱妇一区二区三区不卡视频| 91精品国产入口| 成人欧美一区二区三区视频网页| 性欧美大战久久久久久久久| 国产成人精品免费视频网站| 欧美在线一二三四区| 久久亚洲春色中文字幕久久久| 一区二区视频免费在线观看| 狠狠网亚洲精品| 色一区在线观看| 国产精品污网站|