📄 ex23_4.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 + -