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

📄 ex23_4.c

📁 linux 高级编程的例子源码,包括了本书上的所有代码
💻 C
字号:
/*filename:ex23_4.c*/
#include <gtk/gtk.h>
void event_handle(GtkWidget *widget,gpointer gdata){     g_print("Event: %s\n",gdata);     return;}gint delete_handle(GtkWidget *widget,gpointer data){ g_print("application quitting ---\n"); gtk_main_quit(); return FALSE;}static GtkItemFactoryEntry menu_items[] = {
  {"/File",         NULL,         NULL, 0, "<Branch>"},
  {"/File/_New",     "<control>N",event_handle,"New",NULL},  {"/File/",NULL,NULL,0,"<Separator>"},
  {"/File/_Exit",    "<control>E",delete_handle,"Exit", NULL},
  {"/Edit",     NULL,     event_handle,"Edit", "<LastBranch>"},
  {"/Edit/_Copy", "<control>C",    event_handle,"Copy", NULL},
  {"/Edit/Cut",  "<control>X",   event_handle,"Cut", NULL},
  {"/Edit/Paste", "<control>V",   event_handle,"Paste", NULL},
};

int main (int argc, char *argv[])
{
    GtkWidget *window;
	GtkItemFactory *item_factory;
    GtkAccelGroup *accel_group;
	GtkWidget *menubar;
	GtkWidget *main_vbox;
	int nmenu_items;

    gtk_init (&argc, &argv);
    
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"Test ItemFactory");
	gtk_widget_set_usize(window,200,240);
	gtk_container_border_width(GTK_CONTAINER(window),0);
	gtk_signal_connect(GTK_OBJECT(window),"delete_event",
		           GTK_SIGNAL_FUNC(delete_handle),NULL);

	main_vbox = gtk_vbox_new(FALSE, 1);
    gtk_container_border_width(GTK_CONTAINER(main_vbox), 1);
    gtk_container_add(GTK_CONTAINER(window), main_vbox);
    
    accel_group = gtk_accel_group_new();
	item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", 
				       accel_group);
    nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
    gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL);
	gtk_accel_group_attach (accel_group, GTK_OBJECT (window));
	menubar = gtk_item_factory_get_widget(item_factory, "<main>");
	gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, FALSE, 0);
    gtk_widget_show(menubar);
    
	gtk_widget_show(main_vbox);

    gtk_widget_show (window);
    
    gtk_main ();
    
	return 0;
}

         

⌨️ 快捷键说明

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