int main(int argc, char *argv[]) { GtkWidget *app; GnomeAppBar *bar; GtkWidget *frame; //初始化 //setlocale(LC_ALL, ""); gnome_init(PACKAGE, "1.0", argc, argv); bindtextdomain( PACKAGE, "/usr/share/locale"); textdomain( PACKAGE ); //建立主窗口 app = gnome_app_new (PACKAGE, "GNOME Style Programming"); gtk_signal_connect (GTK_OBJECT (app), "delete_event", GTK_SIGNAL_FUNC (quit_cb), NULL); //建立菜单 gnome_app_create_menus (GNOME_APP (app), helper_main_menu); //建立按钮 gnome_app_create_toolbar (GNOME_APP (app), helper_toolbar); //建立状态条 bar = GNOME_APPBAR( gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER)); gnome_app_set_statusbar(GNOME_APP(app), GTK_WIDGET(bar)); //在状态条上显示菜单提示 gnome_app_install_appbar_menu_hints(GNOME_APPBAR(bar), helper_main_menu); //---- 主要工作区域 --------------------------- frame = gtk_frame_new (_("Main Work Area")); gtk_widget_set_usize(frame, 640, 480); gtk_widget_show (frame); //------------------------------- //加入组件 gnome_app_set_contents ( GNOME_APP (app), frame); //显示组件 gtk_widget_show (app); gtk_main (); return 0; }
static void create_app_helper (GtkWidget *widget, gpointer data) { GtkWidget *app; GtkWidget *vbox; GtkWidget *frame; GtkWidget *vbox2; GtkWidget *w; GtkWidget *popup; GnomeAppBar *bar; GnomeCanvasItem *item; app = gnome_app_new ("testGNOME", "GnomeAppHelper test"); gnome_app_create_menus (GNOME_APP (app), helper_main_menu); gnome_app_create_toolbar (GNOME_APP (app), helper_toolbar); bar = GNOME_APPBAR(gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER)); gnome_app_set_statusbar(GNOME_APP(app), GTK_WIDGET(bar)); gnome_app_install_appbar_menu_hints(GNOME_APPBAR(bar), helper_main_menu); vbox = gtk_vbox_new (FALSE, GNOME_PAD_SMALL); gtk_container_set_border_width (GTK_CONTAINER (vbox), GNOME_PAD_SMALL); /* Shared popup menu */ popup = gnome_popup_menu_new (helper_shared_popup); frame = gtk_frame_new ("Shared popup menu"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); vbox2 = gtk_vbox_new (FALSE, GNOME_PAD_SMALL); gtk_container_set_border_width (GTK_CONTAINER (vbox2), GNOME_PAD_SMALL); gtk_container_add (GTK_CONTAINER (frame), vbox2); gtk_widget_show (vbox2); w = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox2), w, FALSE, FALSE, 0); gtk_widget_show (w); gnome_popup_menu_attach (popup, w, w); w = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox2), w, FALSE, FALSE, 0); gtk_widget_show (w); gnome_popup_menu_attach (popup, w, w); /* Popup menu explicitly popped */ popup = gnome_popup_menu_new (helper_explicit_popup); frame = gtk_frame_new ("Explicit popup menu"); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); gtk_widget_show (frame); w = gnome_canvas_new (); gtk_widget_set_size_request ((w), 200, 100); gnome_canvas_set_scroll_region (GNOME_CANVAS (w), 0.0, 0.0, 200.0, 100.0); gtk_container_add (GTK_CONTAINER (frame), w); gtk_widget_show (w); g_signal_connect (w, "destroy", G_CALLBACK (delete_event), popup); item = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (w)), gnome_canvas_ellipse_get_type (), "x1", 5.0, "y1", 5.0, "x2", 95.0, "y2", 95.0, "fill_color", "white", "outline_color", "black", NULL); g_signal_connect (item, "event", G_CALLBACK (item_event), popup); item = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (w)), gnome_canvas_ellipse_get_type (), "x1", 105.0, "y1", 0.0, "x2", 195.0, "y2", 95.0, "fill_color", "white", "outline_color", "black", NULL); g_signal_connect (item, "event", G_CALLBACK (item_event), popup); gnome_app_set_contents (GNOME_APP (app), vbox); gtk_widget_show (app); }