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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? recvfile.cpp

?? iptux是linux下面能實現(xiàn)類似windows里面飛鴿傳書的功能
?? CPP
字號:
//// C++ Implementation: RecvFile//// Description:////// Author: Jally <jallyx@163.com>, (C) 2008//// Copyright: See COPYING file that comes with this distribution////#include "RecvFile.h"#include "DialogGroup.h"#include "Transport.h"#include "Control.h"#include "utils.h"#include "output.h"#include "baling.h" RecvFile::RecvFile(gpointer data):filelist(NULL), packetn(0), file_model(NULL){	pal = (Pal *) ((struct recvfile_para *)data)->data;	msg = ((struct recvfile_para *)data)->msg;	free(data);}RecvFile::~RecvFile(){	free(msg);	g_slist_foreach(filelist, remove_foreach, GINT_TO_POINTER(FILEINFO));	g_slist_free(filelist);//      g_object_unref(file_model); //他處釋放}void RecvFile::RecvEntry(gpointer data){	RecvFile rf(data);	if (!rf.GetValidData())		return;	rf.ParseExtra();	gdk_threads_enter();	rf.CreateRecvWindow();	gdk_threads_leave();}bool RecvFile::GetValidData(){	char *ptr;	packetn = iptux_get_dec_number(msg, 1);	ptr = ipmsg_get_extra(msg);	if (!ptr)		return false;	free(msg);	if (!FLAG_ISSET(pal->flags, 0)) {		msg = transfer_encode(ptr, pal->encode, false);		free(ptr);	} else		msg = ptr;	return true;}void RecvFile::ParseExtra(){	char *ptr;	ptr = msg;	while (ptr && *ptr)		filelist = g_slist_append(filelist, DivideFileinfo(&ptr));}void RecvFile::CreateRecvWindow(){	GtkWidget *window, *sw, *view;	GtkWidget *box, *hbb, *button;	file_model = CreateRecvModel();	window = create_window(_("File receive management"), 132, 79);	gtk_container_set_border_width(GTK_CONTAINER(window), 5);	g_signal_connect_swapped(window, "destroy", G_CALLBACK(g_object_unref),				 file_model);	box = create_box();	gtk_container_add(GTK_CONTAINER(window), box);	view = CreateRecvView();	sw = create_scrolled_window();	gtk_box_pack_start(GTK_BOX(box), sw, TRUE, TRUE, 0);	gtk_container_add(GTK_CONTAINER(sw), view);	hbb = create_button_box(FALSE);	gtk_box_pack_start(GTK_BOX(box), hbb, FALSE, FALSE, 0);	button = create_button(_("Receive"));	g_signal_connect_swapped(button, "clicked",				 G_CALLBACK(AddRecvFile), file_model);	g_signal_connect_swapped(button, "clicked",				 G_CALLBACK(gtk_widget_destroy), window);	gtk_box_pack_end(GTK_BOX(hbb), button, FALSE, FALSE, 0);	button = create_button(_("Refuse"));	g_signal_connect_swapped(button, "clicked",				 G_CALLBACK(gtk_widget_destroy), window);	gtk_box_pack_end(GTK_BOX(hbb), button, FALSE, FALSE, 0);}gpointer RecvFile::DivideFileinfo(char **ptr){	FileInfo *file;	file = new FileInfo(iptux_get_dec_number(*ptr, 0),			   ipmsg_get_filename(*ptr, 1),			   iptux_get_hex_number(*ptr, 2),			   iptux_get_hex_number(*ptr, 4));	//格式1 ... ;格式2 ...\a ;格式3 ...\a:	*ptr = strstr(*ptr, "\a:");	if (*ptr)		*ptr += 2;	return file;}//10,0 bool,1 filename,2 owner,3 size,4 type,5 packetn, 6 fileid,7 size,8 type 9 dataGtkTreeModel *RecvFile::CreateRecvModel(){	GtkListStore *model;	GtkTreeIter iter;	FileInfo *file;	GSList *tmp;	char *ptr;	model = gtk_list_store_new(10, G_TYPE_BOOLEAN,				   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,				   G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT,				   G_TYPE_UINT, G_TYPE_UINT, G_TYPE_POINTER);	tmp = filelist;	while (tmp) {		file = (FileInfo *) tmp->data;		ptr = number_to_string(file->filesize);		gtk_list_store_append(model, &iter);		gtk_list_store_set(model, &iter, 0, TRUE, 1, file->filename,				   2, pal->name, 3, ptr, 5, packetn, 6,				   file->fileid, 7, file->filesize, 8,				   file->fileattr, 9, pal, -1);		free(ptr);		if (GET_MODE(file->fileattr) == IPMSG_FILE_REGULAR)			gtk_list_store_set(model, &iter, 4, _("regular"), -1);		else if (GET_MODE(file->fileattr) == IPMSG_FILE_DIR)			gtk_list_store_set(model, &iter, 4, _("directory"), -1);		else			gtk_list_store_set(model, &iter, 4, _("unknown"), -1);		tmp = tmp->next;	}	return GTK_TREE_MODEL(model);}GtkWidget *RecvFile::CreateRecvView(){	GtkTreeViewColumn *column;	GtkCellRenderer *renderer;	GtkWidget *view;	view = gtk_tree_view_new_with_model(file_model);	g_signal_connect_swapped(view, "button-press-event",				 G_CALLBACK(DialogGroup::PopupPickMenu),				 file_model);	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, _("receive"));	renderer = gtk_cell_renderer_toggle_new();	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_attributes(column, renderer, "active", 0,					    NULL);	g_signal_connect_swapped(renderer, "toggled",				 G_CALLBACK(DialogGroup::ViewToggleChange),				 file_model);	gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_resizable(column, TRUE);	gtk_tree_view_column_set_title(column, _("filename"));	renderer = gtk_cell_renderer_text_new();	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_attributes(column, renderer, "text", 1, NULL);	g_object_set(renderer, "editable", TRUE, NULL);	g_signal_connect(renderer, "edited", G_CALLBACK(CellEditText),			 file_model);	gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_resizable(column, TRUE);	gtk_tree_view_column_set_title(column, _("belong"));	renderer = gtk_cell_renderer_text_new();	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_attributes(column, renderer, "text", 2, NULL);	gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_resizable(column, TRUE);	gtk_tree_view_column_set_title(column, _("length"));	renderer = gtk_cell_renderer_text_new();	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_attributes(column, renderer, "text", 3, NULL);	gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_resizable(column, TRUE);	gtk_tree_view_column_set_title(column, _("type"));	renderer = gtk_cell_renderer_text_new();	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_attributes(column, renderer, "text", 4, NULL);	gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);	return view;}void RecvFile::CellEditText(GtkCellRendererText * renderer, gchar * path,			    gchar * new_text, GtkTreeModel * model){	GtkTreeIter iter;	gtk_tree_model_get_iter_from_string(model, &iter, path);	gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_text, -1);}void RecvFile::AddRecvFile(GtkTreeModel * model){	extern Control ctr;	extern Transport trans;	uint32_t packetn, fileid, filesize, fileattr;	gchar *filename, *filestr;	GtkTreeIter iter1, iter2;	GtkTreePath *path;	GdkPixbuf *pixbuf;	gboolean active;	bool demand;	Pal *pal;	demand = false;	if (!gtk_tree_model_get_iter_first(model, &iter1))		return;	pixbuf = gdk_pixbuf_new_from_file(__TIP_DIR "/recv.png", NULL);	do {		gtk_tree_model_get(model, &iter1, 0, &active, 1, &filename,				   3, &filestr, 5, &packetn, 6, &fileid, 7,				   &filesize, 8, &fileattr, 9, &pal, -1);		if (!active) {			g_free(filename), g_free(filestr);			continue;		}		demand = true;		gtk_list_store_append(GTK_LIST_STORE(trans.trans_model),				      &iter2);		gtk_list_store_set(GTK_LIST_STORE(trans.trans_model), &iter2, 0,				   pixbuf, 1, _("receive"), 2, filename, 3,				   pal->name, 4, "0B", 5, filestr, 6, "0B/s",				   7, 0, 8, 0, 9, packetn, 10, fileid, 11,				   filesize, 12, fileattr, 13, ctr.path, 14,				   pal, -1);		g_free(filename), g_free(filestr);		path = gtk_tree_model_get_path(trans.trans_model, &iter2);		thread_create(ThreadFunc(Transport::RecvFileEntry), path,			      false);	} while (gtk_tree_model_iter_next(model, &iter1));	if (pixbuf)		g_object_unref(pixbuf);	if (demand)		Transport::TransportEntry();}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文字幕| 91福利在线免费观看| 午夜伦欧美伦电影理论片| 综合激情成人伊人| 国产精品青草久久| 亚洲品质自拍视频| 亚洲激情图片qvod| 香蕉久久一区二区不卡无毒影院| 亚洲最大成人网4388xx| 亚洲国产综合在线| 五月婷婷综合激情| 美美哒免费高清在线观看视频一区二区 | 欧美日韩一区高清| 一本色道亚洲精品aⅴ| 94色蜜桃网一区二区三区| 不卡视频一二三| 欧美日韩在线电影| 日韩免费观看高清完整版在线观看| 欧美一区二区三区四区久久| 精品国产亚洲一区二区三区在线观看 | 波波电影院一区二区三区| 成人app在线观看| 欧美日韩日日夜夜| 欧美大片拔萝卜| 国产区在线观看成人精品 | 日韩精品专区在线影院重磅| 日韩三级在线观看| 欧美国产精品劲爆| 首页欧美精品中文字幕| 国产麻豆视频一区二区| av激情成人网| 欧美一级一级性生活免费录像| 久久影院视频免费| 日韩毛片一二三区| 久久国产欧美日韩精品| 91年精品国产| 2023国产精华国产精品| 亚洲人被黑人高潮完整版| 日本麻豆一区二区三区视频| 成人av电影在线观看| 在线播放亚洲一区| 国产精品久久久久久亚洲毛片| 亚洲bdsm女犯bdsm网站| av爱爱亚洲一区| 精品美女在线播放| 亚洲欧美日韩国产手机在线| 免费一级欧美片在线观看| 99视频超级精品| 精品国产一区二区国模嫣然| 一区二区在线观看免费视频播放| 国产一区二区三区| 欧美一区午夜视频在线观看| 亚洲天堂网中文字| 国产一区二区三区在线观看免费| 欧美日韩中文字幕一区| 亚洲欧美综合色| 麻豆精品国产91久久久久久| 色伊人久久综合中文字幕| 国产亚洲婷婷免费| 激情图片小说一区| 欧美一区二区三区不卡| 亚洲国产另类av| 95精品视频在线| 1024成人网| 成人激情视频网站| 国产亚洲精品精华液| 久久99精品久久久久久国产越南| 在线观看视频一区二区| 亚洲女与黑人做爰| 色综合久久久久综合体| 亚洲色图在线视频| aaa欧美日韩| 亚洲婷婷国产精品电影人久久| 国产jizzjizz一区二区| 久久精品欧美一区二区三区不卡| 黄色日韩网站视频| 26uuu国产日韩综合| 免费看日韩精品| 欧美刺激午夜性久久久久久久| 亚洲国产精品一区二区www在线 | 国产精品久久久久久亚洲伦| 成人永久aaa| 国产精品色一区二区三区| 成人高清视频在线观看| 国产精品国产自产拍在线| 色综合一区二区三区| 亚洲丝袜美腿综合| 成人av综合在线| 又紧又大又爽精品一区二区| 在线精品亚洲一区二区不卡| 一区二区三区精品久久久| 欧美日本乱大交xxxxx| 日韩高清不卡在线| 欧美tickling网站挠脚心| 国产精品一区不卡| 亚洲日本韩国一区| 欧美日韩一区二区三区在线看| 亚洲一区二区三区激情| 欧美一级日韩一级| 国产高清久久久| 亚洲一区在线看| 欧美一级在线视频| 粉嫩aⅴ一区二区三区四区 | 精品久久久久av影院| 久草中文综合在线| 中文字幕在线一区二区三区| 欧美调教femdomvk| 国产一区美女在线| 亚洲狠狠丁香婷婷综合久久久| 欧美一区二区在线不卡| 国产成人精品免费网站| 亚洲成在人线免费| 久久久久久亚洲综合影院红桃| 91免费小视频| 免费成人在线网站| 自拍偷拍国产亚洲| 2023国产精品视频| 欧美中文字幕一二三区视频| 国产精品自拍在线| 亚洲成人一二三| 国产精品国产三级国产普通话蜜臀| 欧美午夜电影网| 国产69精品久久久久777| 午夜精品福利一区二区蜜股av| 久久久99精品久久| 91精品国产色综合久久| 91网站视频在线观看| 久久97超碰色| 日韩国产在线观看| 亚洲日本一区二区| 国产欧美1区2区3区| 日韩欧美一区二区不卡| 欧美视频第二页| 91在线观看成人| 成人爱爱电影网址| 韩国av一区二区三区四区| 日韩综合在线视频| 亚洲精品国产成人久久av盗摄| 精品国内二区三区| 欧美久久久久久久久久| 欧洲亚洲精品在线| 成人av影院在线| 成人性色生活片免费看爆迷你毛片| 久久99久久久久| 青青草国产精品97视觉盛宴| 亚洲图片一区二区| 午夜私人影院久久久久| 亚洲自拍与偷拍| 亚洲一区二区三区国产| 夜夜夜精品看看| 亚洲综合无码一区二区| 亚洲一区二区在线免费看| 亚洲情趣在线观看| 一区二区三区视频在线观看 | 欧美日韩二区三区| 欧美体内she精视频| 欧美日韩aaa| 欧美一卡2卡三卡4卡5免费| 91精品国产免费久久综合| 欧美高清精品3d| 日韩欧美一卡二卡| 精品成人在线观看| 国产喷白浆一区二区三区| 国产喷白浆一区二区三区| 中国色在线观看另类| 中文字幕一区二区三中文字幕| 国产精品剧情在线亚洲| 亚洲欧美福利一区二区| 亚洲h精品动漫在线观看| 日本大胆欧美人术艺术动态| 国产在线播放一区二区三区| 国产成人精品www牛牛影视| 91小视频免费观看| 91精品久久久久久久91蜜桃| 精品国产乱码久久久久久老虎| 国产丝袜在线精品| 亚洲欧洲国产日本综合| 三级久久三级久久久| 激情深爱一区二区| 色欧美乱欧美15图片| 日韩一级二级三级精品视频| 国产偷国产偷亚洲高清人白洁| 亚洲久草在线视频| 久草热8精品视频在线观看| 成av人片一区二区| 欧美一区二区在线不卡| 中文字幕一区二区三中文字幕| 亚洲成人午夜影院| 国产精品综合视频| 欧美狂野另类xxxxoooo| 亚洲国产电影在线观看| 天堂精品中文字幕在线| 国产成人精品一区二| 91.成人天堂一区| 国产精品久久久久久一区二区三区| 五月婷婷另类国产| 波多野结衣在线一区| 日韩三级视频在线观看| 亚洲欧美日韩一区二区| 国产精选一区二区三区 |