Gary, Seems to work ok for me. results of: g_print("%d.%d.%d",GTK_MAJOR_VERSION,GTK_MINOR_VERSION,GTK_MICRO_VERSION);
2.20.0 what version of GTK are you using? any error messages? On Mon, Dec 19, 2011 at 7:46 PM, Gary Kline <kl...@thought.org> wrote: > i thought i would start to put up the standard items on my > topmenu bar: "File". ""Edit", "Help" and so on. but while > the following gtk program compiles:: zip. the window is > empty and there is no menubar at the top. i have use > 'pkg-config' as in my early programs. > > Anybody know what i'm missing? > > > > #include <gtk/gtk.h> > #include <strings.h> > > /* Obligatory basic callback */ > static void print_hello( GtkWidget *w, > gpointer data ) > { > g_message ("Hello, World!\n"); > } > > /* This is the GtkItemFactoryEntry structure used to generate new menus. > Item 1: The menu path. The letter after the underscore indicates an > accelerator key once the menu is open. > Item 2: The accelerator key for the entry > Item 3: The callback function. > Item 4: The callback action. This changes the parameters with > which the function is called. The default is 0. > Item 5: The item type, used to define what kind of an item it is. > Here are the possible values: > > NULL -> "<Item>" > "" -> "<Item>" > "<Title>" -> create a title item > "<Item>" -> create a simple item > "<CheckItem>" -> create a check item > "<ToggleItem>" -> create a toggle item > "<RadioItem>" -> create a radio item > <path> -> path of a radio item to link against > "<Separator>" -> create a separator > "<Branch>" -> create an item to hold sub items (optional) > "<LastBranch>" -> create a right justified branch > */ > > static GtkItemFactoryEntry menu_items[] = { > { "/_File", NULL, NULL, 0, "<Branch>" }, > { "/File/_New", "<control>N", print_hello, 0, NULL }, > { "/File/_Open", "<control>O", print_hello, 0, NULL }, > { "/File/_Save", "<control>S", print_hello, 0, NULL }, > { "/File/Save _As", NULL, NULL, 0, NULL }, > { "/File/sep1", NULL, NULL, 0, "<Separator>" }, > { "/File/Quit", "<control>Q", gtk_main_quit, 0, NULL }, > { "/_Options", NULL, NULL, 0, "<Branch>" }, > { "/Options/Test", NULL, NULL, 0, NULL }, > { "/_Help", NULL, NULL, 0, "<LastBranch>" }, > { "/_Help/About", NULL, NULL, 0, NULL }, > }; > > > void get_main_menu( GtkWidget *window, > GtkWidget **menubar ) > { > GtkItemFactory *item_factory; > GtkAccelGroup *accel_group; > gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); > > accel_group = gtk_accel_group_new (); > > /* This function initializes the item factory. > Param 1: The type of menu - can be GTK_TYPE_MENU_BAR, GTK_TYPE_MENU, > or GTK_TYPE_OPTION_MENU. > Param 2: The path of the menu. > Param 3: A pointer to a gtk_accel_group. The item factory sets up > the accelerator table while generating menus. > */ > > item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", > accel_group); > > /* This function generates the menu items. Pass the item factory, > the number of items in the array, the array itself, and any > callback data for the the menu items. */ > gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, > NULL); > > /* Attach the new accelerator group to the window. */ > gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); > > if (menubar) > /* Finally, return the actual menu bar created by the item factory. */ > *menubar = gtk_item_factory_get_widget (item_factory, "<main>"); > } > > int main( int argc, char *argv[] ) > { > GtkWidget *window; > GtkWidget *main_vbox; > GtkWidget *menubar; > > 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); > > get_main_menu (window, &menubar); > gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, TRUE, 0); > gtk_widget_show (menubar); > > gtk_widget_show (window); > gtk_main (); > > return(0); > } > /* example-end */ > > > -- > Gary Kline kl...@thought.org http://www.thought.org Public Service > Unix > Journey Toward the Dawn, E-Book: http://www.thought.org > The 8.57a release of Jottings: http://jottings.thought.org > Twenty-five years of service to the Unix community. > > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list