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

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

?? statusicon.cpp

?? iptux是linux下面能實(shí)現(xiàn)類似windows里面飛鴿傳書的功能
?? CPP
字號:
//// C++ Implementation: StatusIcon//// Description:////// Author: Jally <jallyx@163.com>, (C) 2008//// Copyright: See COPYING file that comes with this distribution////#include "StatusIcon.h"#include "MainWindow.h"#include "Transport.h"#include "IptuxSetup.h"#include "ShareFile.h"#include "DialogGroup.h"#include "DetectPal.h"#include "UdpData.h"#include "DialogPeer.h"#include "output.h"#include "support.h"#include "utils.h" StatusIcon::StatusIcon():status_icon(NULL){}StatusIcon::~StatusIcon(){	g_object_unref(status_icon);}void StatusIcon::CreateStatusIcon(){	extern struct interactive inter;	GdkPixbuf *pixbuf;	GdkScreen *screen;	pixbuf = gdk_pixbuf_new_from_file_at_size(__LOGO_DIR "/ip-tux.png",						  20, 20, NULL);	if (!pixbuf) {		pop_error("\n%s \"" __LOGO_DIR "/ip-tux.png\" %s",			    _("The notify icon"), _("is lost!"));		exit(1);	}	status_icon = gtk_status_icon_new_from_pixbuf(pixbuf);	inter.status_icon = status_icon;	g_object_unref(pixbuf);	screen = gdk_screen_get_default();	gtk_status_icon_set_screen(status_icon, screen);	gtk_status_icon_set_tooltip(status_icon, _("iptux"));	g_signal_connect(status_icon, "activate",			 G_CALLBACK(StatusIconActivate), NULL);	g_signal_connect(status_icon, "popup-menu",			 G_CALLBACK(PopupWorkMenu), NULL);}void StatusIcon::UpdateTips(){	extern UdpData udt;	extern struct interactive inter;	char *ipstr;	guint len;	pthread_mutex_lock(&udt.mutex);	if (len = g_queue_get_length(udt.msgqueue)) {		gtk_status_icon_set_blinking(inter.status_icon, TRUE);		ipstr = g_strdup_printf(_("Undealt: %u messages"), len);		gtk_status_icon_set_tooltip(inter.status_icon, ipstr);	} else {		gtk_status_icon_set_blinking(inter.status_icon, FALSE);		ipstr = get_sys_host_addr_string(inter.udpsock);		gtk_status_icon_set_tooltip(inter.status_icon,					    ipstr ? ipstr : _("iptux"));	}	free(ipstr);	pthread_mutex_unlock(&udt.mutex);}GtkWidget *StatusIcon::CreatePopupMenu(){	extern struct interactive inter;	GtkWidget *menu, *menu_item;	GtkWidget *image;	menu = gtk_menu_new();	gtk_widget_show(menu);	if (GTK_WIDGET_VISIBLE(inter.window))		menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Hide"));	else		menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Show"));	image = gtk_image_new_from_file(__TIP_DIR "/desk.png");	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);	g_signal_connect(menu_item, "activate",			 G_CALLBACK(MainWindow::SwitchWindowMode), NULL);	gtk_widget_show(menu_item);	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	menu_item = gtk_separator_menu_item_new();	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	gtk_widget_show(menu_item);	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_separator_menu_item_new();	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);	gtk_widget_show(menu_item);	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(_("_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);	return menu;}void StatusIcon::StatusIconActivate(){	extern UdpData udt;	Pal *pal;	pthread_mutex_lock(&udt.mutex);	pal = (Pal *) g_queue_peek_head(udt.msgqueue);	pthread_mutex_unlock(&udt.mutex);	if (pal)		DialogPeer::DialogEntry(pal);	else		MainWindow::SwitchWindowMode();}void StatusIcon::PopupWorkMenu(GtkStatusIcon * status_icon, guint button,			       guint activate_time){	gtk_menu_popup(GTK_MENU(CreatePopupMenu()), NULL, NULL,		       NULL, NULL, button, activate_time);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合在线第一页| 成人精品电影在线观看| 国产成a人亚洲精品| 欧美乱妇15p| 国产精品福利电影一区二区三区四区| 天天综合色天天| 一本色道久久综合狠狠躁的推荐| 2022国产精品视频| 亚洲一区二区免费视频| 99re这里都是精品| 国产亚洲福利社区一区| 亚洲大型综合色站| 在线视频一区二区免费| 亚洲天堂网中文字| 成人午夜激情在线| 久久久精品欧美丰满| 麻豆一区二区三区| 欧美一区二区三区四区视频| 一区二区三区免费观看| 99久久婷婷国产精品综合| 国产欧美日韩在线观看| 激情综合亚洲精品| 欧美电影精品一区二区| 日本aⅴ精品一区二区三区| 欧美精品高清视频| 亚洲福利一区二区三区| 欧亚洲嫩模精品一区三区| 亚洲色图欧洲色图| 91黄色小视频| 亚洲一卡二卡三卡四卡五卡| 欧美无砖专区一中文字| 亚洲成人1区2区| 欧美日韩在线电影| 日韩影视精彩在线| 欧美一区国产二区| 久久狠狠亚洲综合| 久久久久免费观看| va亚洲va日韩不卡在线观看| 亚洲色图欧美偷拍| 欧美欧美欧美欧美| 免费成人在线视频观看| www欧美成人18+| 国产高清精品久久久久| 亚洲欧洲另类国产综合| 91欧美一区二区| 亚洲一区二区三区中文字幕在线| 欧美三级一区二区| 免费不卡在线观看| 国产欧美精品国产国产专区| 成人精品视频一区二区三区尤物| 一区在线观看免费| 欧美日韩国产一二三| 麻豆免费精品视频| 中文在线资源观看网站视频免费不卡| 成人黄色在线网站| 亚洲国产精品嫩草影院| 日韩一区二区三区高清免费看看| 国产在线不卡一区| 亚洲欧洲精品成人久久奇米网| 一本色道综合亚洲| 久久99最新地址| 亚洲视频你懂的| 欧美乱妇23p| 成人动漫一区二区在线| 亚洲一区自拍偷拍| 久久久精品国产免大香伊| 99精品在线免费| 毛片一区二区三区| 最新日韩av在线| 欧美一卡二卡三卡四卡| 成人做爰69片免费看网站| 午夜精品久久久久久不卡8050| 久久久精品天堂| 5566中文字幕一区二区电影| 国产91精品欧美| 日本aⅴ精品一区二区三区| 最新高清无码专区| 日韩精品一区二区三区视频播放| 99re热视频这里只精品| 久久精品99国产国产精| 亚洲韩国精品一区| 中文av一区特黄| 欧美成人欧美edvon| 欧美私模裸体表演在线观看| 从欧美一区二区三区| 蜜臀av一区二区在线观看| 悠悠色在线精品| 国产精品麻豆一区二区| 欧美精品一区二区三区在线| 欧洲一区二区三区免费视频| 国产乱一区二区| 日产国产高清一区二区三区| ●精品国产综合乱码久久久久| 亚洲精品一区二区三区在线观看| 欧美日韩一本到| 在线视频一区二区三区| eeuss鲁片一区二区三区在线看| 久久国产精品无码网站| 日韩精品国产精品| 亚洲午夜在线电影| 亚洲三级在线看| ...中文天堂在线一区| 国产精品亲子乱子伦xxxx裸| 久久精品欧美一区二区三区不卡 | 亚洲精品一区二区三区福利| 欧美裸体bbwbbwbbw| 色天使久久综合网天天| a在线欧美一区| 国产ts人妖一区二区| 国产精品一区免费视频| 国产综合久久久久影院| 久久国内精品自在自线400部| 天天综合色天天综合| 五月激情六月综合| 亚洲成人福利片| 五月激情六月综合| 琪琪一区二区三区| 免费高清在线一区| 国产一区二区成人久久免费影院| 狠狠色丁香久久婷婷综| 国产精品456露脸| 欧美日韩一区二区电影| 欧美三区在线视频| 制服视频三区第一页精品| 欧美精品久久天天躁| 3d动漫精品啪啪| 亚洲精品一区二区三区蜜桃下载 | 制服丝袜亚洲精品中文字幕| 欧美日韩国产123区| 日韩一区二区在线播放| 久久网这里都是精品| 中文字幕欧美三区| 一区二区成人在线| 蜜臀久久99精品久久久久宅男 | 日本不卡免费在线视频| 久久99国产精品久久99| 国产福利一区二区三区在线视频| 波多野结衣中文字幕一区二区三区| 91在线观看视频| 欧美一级免费观看| 国产偷v国产偷v亚洲高清 | 久久久国际精品| 亚洲三级电影网站| 亚洲.国产.中文慕字在线| 黄网站免费久久| 色噜噜狠狠色综合欧洲selulu| 欧美人体做爰大胆视频| 久久精品人人做| 性做久久久久久| 国产精品18久久久| 欧洲一区二区av| 国产日韩综合av| 亚洲国产三级在线| 国产一区在线视频| 欧美日韩另类一区| 国产午夜精品福利| 亚洲va韩国va欧美va| 国产成人av电影在线播放| 欧美性大战久久久久久久| 久久新电视剧免费观看| 亚洲一区二三区| 成人激情av网| 26uuu久久综合| 亚洲大片在线观看| 成人动漫一区二区| 欧美成人精品1314www| 一区二区日韩av| 成人丝袜视频网| 日韩欧美国产电影| 午夜精品国产更新| 91网站在线播放| 国产日韩一级二级三级| 久久精品99久久久| 91精品国产福利| 一区二区三区在线看| 波多野洁衣一区| 久久精品亚洲麻豆av一区二区| 日本怡春院一区二区| 在线一区二区三区四区五区| 国产精品国产自产拍高清av | 亚洲成av人片在www色猫咪| 成人天堂资源www在线| 国产喂奶挤奶一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美亚洲丝袜传媒另类| 亚洲精品日韩一| 99国产精品久久久| 日韩一区有码在线| 成人妖精视频yjsp地址| 久久久激情视频| 国产精品99久久久久久似苏梦涵| 欧美大白屁股肥臀xxxxxx| 日韩精品久久理论片| 欧美日本在线播放| 日本亚洲电影天堂| 日韩欧美一级在线播放| 精品一区二区三区蜜桃| 精品福利一二区| 国产激情一区二区三区桃花岛亚洲| 欧美一区二区三区日韩视频|