On Mon, Dec 19, 2011 at 08:19:08PM -0500, Steve . wrote: > Date: Mon, 19 Dec 2011 20:19:08 -0500 > From: "Steve ." <iteratio...@gmail.com> > Subject: "menu item not showing anything in its window > To: GTK Devel List <gtk-app-devel-list@gnome.org> > > 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? >
oh my zues, i had no clue there were so MANY gtk pacakes. i'm clicking on bunches of missing libraries in my ubuntu 11.10. there must be >> 50. i'll add that test code after i have a cheeseburger and let you know. i'm at least at 2.14 on most versioning. but then ubuntu has its *own* way. they're a bit behind freebsd. but th en FBSD is on the bleeding edge. are there 'button'-type things i should be looking for?? gary > > 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 -- 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