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

📄 itemfactory.c

📁 《Linux程序设计权威指南》源代码
💻 C
字号:
	/* File: itemfactory.c */	#include <gtk/gtk.h>	#include <strings.h>	static void print_hello( GtkWidget *w, gpointer   data )	{		g_message ("Hello, World!\n");	}	static GtkItemFactoryEntry menu_items[] = {		{ "/文件(_F)",         NULL,         NULL, 0, "<Branch>" },		{ "/文件(_F)/新的(_N)","<control>N", print_hello, 0, NULL },		{ "/文件(_F)/打开(_O)","<control>O", print_hello, 0, NULL },		{ "/文件(_F)/保存(_S)","<control>S", print_hello, 0, NULL },		{ "/文件(_F)/保存为(_A)", NULL,      NULL, 0, NULL },		{ "/文件(_F)/sep1",    NULL,         NULL, 0, "<Separator>" },		{ "/文件(_F)/退出",    "<control>Q", gtk_main_quit, 0, NULL },		{ "/选项(_O)",         NULL,         NULL, 0, "<Branch>" },		{ "/选项(_O)/测试1",    NULL,        NULL, 0, "<Branch>" },		{ "/选项(_O)/测试1/Item 1-1",        NULL, NULL, 0, NULL },		{ "/选项(_O)/测试1/Item 1-2",        NULL, NULL, 0, NULL },		{ "/选项(_O)/测试2",    NULL,        NULL, 0, "<Branch>" },		{ "/选项(_O)/测试2/Item 2-1",        NULL, NULL, 0, NULL },		{ "/选项(_O)/测试2/Item 2-2",        NULL, NULL, 0, NULL },		{ "/选项(_O)/测试2/Item 2-3",        NULL, NULL, 0, NULL },		{ "/帮助(_H)",         NULL,         NULL, 0, "<LastBranch>" },		{ "/帮助(_H)/关于...", NULL,         NULL, 0, NULL },	};	GtkWidget *get_main_menu( GtkWidget  *window)	{		GtkItemFactory *item_factory;		GtkAccelGroup *accel_group;		gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]);		//加速组		accel_group = gtk_accel_group_new ();		//初始化 item_factory		item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, 			"<main>", accel_group);		//建立菜单		gtk_item_factory_create_items (item_factory, 			nmenu_items, menu_items, NULL);		//把加速组放到窗口中		gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);		//返回菜单条		return gtk_item_factory_get_widget (item_factory, "<main>");	}	int main( int argc, char *argv[] )	{		GtkWidget *window;		GtkWidget *main_vbox;		GtkWidget *menubar;   		//初始化		gtk_set_locale();		gtk_init (&argc, &argv);   		window = gtk_window_new (GTK_WINDOW_TOPLEVEL);		gtk_signal_connect (GTK_OBJECT (window), "destroy", 			GTK_SIGNAL_FUNC (gtk_main_quit), "WM destroy");		gtk_window_set_title (GTK_WINDOW(window), "Item Factory");		gtk_widget_set_usize (GTK_WIDGET(window), 300, 200);   		//垂直容器		main_vbox = gtk_vbox_new (FALSE, 1);		gtk_container_border_width (GTK_CONTAINER (main_vbox), 1);		gtk_container_add (GTK_CONTAINER (window), main_vbox);		gtk_widget_show (main_vbox);		//建立菜单		menubar = get_main_menu (window);		gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, TRUE, 0);		gtk_widget_show(menubar);   		gtk_widget_show (window);		gtk_main ();   		return(0);	}

⌨️ 快捷键说明

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