|
|

楼主 |
发表于 2006-3-31 13:46:42
|
显示全部楼层
我没有用entry这个指针呀
- #include<gtk/gtk.h>
- 2 void on_menu_activate (GtkMenuItem* item,gpointer data);
- 3
- 4 static GtkItemFactoryEntry menu_items[6] = {
- 5 {"/File (_F)",NULL,NULL,0,"<Branch>"}
- 6 /* {"/File (_F)/NEW",NULL,on_menu_activate,"NEW",
- 7 "<StockItem>",GTK_STOCK_NEW},
- 8 {"/File (_F)/OPEN",NULL,on_menu_activate,"OPEN",
- 9 "<StockItem>",GTK_STOCK_OPEN},
- 10 {"/File (_F)/SAVE",NULL,on_menu_activate,"SAVE",
- 11 "<StockItem>",GTK_STOCK_SAVE},
- 12 {"/File (_F)/SAVE as",NULL,on_menu_activate,"SAVEas",
- 13 "<StockItem>",GTK_STOCK_SAVE_AS},
- 14 {"/File (_F)/EXIT",NULL,on_menu_activate,"QUIT",
- 15 "<StockItem>",GTK_STOCK_QUIT}*/
- 16
- 17 };
- 18
- 19 void on_menu_activate(GtkMenuItem* item,gpointer data)
- 20 {
- 21 g_print("Menu item %s is pressed.\n",(gchar*)data);
- 22
- 23 }
- 24
- 25 int main(int argc,char *argv[])
- 26 {
- 27 GtkWidget* window;
- 28 GtkWidget* box;
- 29 GtkWidget* menubar;
- 30 GtkAccelGroup* accel_group;
- 31 GtkItemFactory* item_factory;
- 32 gint n = 15;
- 33 gtk_init(&argc,&argv);
- 34 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- 35 gtk_window_set_title(GTK_WINDOW(window),g_locale_to_utf8("添加菜单的
- 快捷方式",4,NULL,NULL,NULL));
- 36 g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK
- (gtk_main_quit ),NULL);
- 37 accel_group = gtk_accel_group_new();
- 38 box = gtk_vbox_new(FALSE,0);
- 39 gtk_container_add(GTK_CONTAINER(window),box);
- 40 gtk_widget_show(box);
- 41 item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR,"<main>",
- accel_group);
- 42 gtk_item_factory_create_items(item_factory,n,menu_items,NULL);
- 43 gtk_window_add_accel_group(GTK_WINDOW(window),accel_group);
- 44 menubar = gtk_item_factory_get_widget(item_factory,"<main>");
- 45 gtk_box_pack_start(GTK_BOX(box),menubar,FALSE,FALSE,0);
- 46 gtk_widget_show(menubar);
- 47 gtk_widget_show(window);
- 48 gtk_main();
- 49 return FALSE;
- 50
- 51
- 52
- 53 }
复制代码 |
|