tray.c

来自「LINUX下的DICT.CN的客户端,C语言实现.」· C语言 代码 · 共 73 行

C
73
字号
/* tray.c * Vincent.Silent * vincent.siletn@gmail.com * 2008-04 */#include "tray.h"#include <string.h>TrayIcon * create_tray_icon(gpointer data){	GtkStatusIcon * trayicon;	GtkMenu * menu;	GtkImageMenuItem * menuitem;	GtkImage * image;		trayicon = gtk_status_icon_new();	menu = GTK_MENU(gtk_menu_new());	menuitem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label(ABOUT_MENU_ITEM));	image = GTK_IMAGE(gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU));	gtk_image_menu_item_set_image(menuitem, GTK_WIDGET(image));	gtk_menu_append(menu, GTK_WIDGET(menuitem));	g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(tray_menu_item_on_activate), (gpointer)(1));	menuitem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label(QUIT_MENU_ITEM));	image = GTK_IMAGE(gtk_image_new_from_stock(GTK_STOCK_QUIT, GTK_ICON_SIZE_MENU));	gtk_image_menu_item_set_image(menuitem, GTK_WIDGET(image));	gtk_menu_append(menu, GTK_WIDGET(menuitem));	g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(tray_menu_item_on_activate), 0);	g_signal_connect(G_OBJECT(trayicon), "activate", G_CALLBACK(tray_icon_on_activate), data);	g_signal_connect(G_OBJECT(trayicon), "popup-menu", G_CALLBACK(tray_icon_on_menu), menu);	extern gchar app_path[256];	gchar path[256];	strcpy(path, app_path);	strcat(path, DICT_ICON_PATH);	gtk_status_icon_set_from_file(trayicon, path);	gtk_status_icon_set_tooltip(trayicon, DICT_WIN_TITLE);	gtk_status_icon_set_visible(trayicon, TRUE);	return trayicon;}/* signal functions */void tray_icon_on_activate(GtkStatusIcon * status_icon, gpointer data){	GtkWidget * win = GTK_WIDGET(data);	if(win)	  gtk_widget_show(win);}void tray_icon_on_menu(GtkStatusIcon * status_icon, guint button,						guint activate_time, gpointer data){	GtkMenu * menu = (GtkMenu*)(data);	gtk_widget_show_all(GTK_WIDGET(menu));	gtk_menu_popup(menu, NULL, NULL, NULL, NULL, button, activate_time);}void tray_menu_item_on_activate(GtkMenuItem * menuitem, gpointer data){	if(data == 0)	{		dict_win_quit();	}	else	{		gnome_url_show(ABOUT_URL, NULL);	}}

⌨️ 快捷键说明

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