Re: "menu item not showing anything in its window



On Mon, Dec 19, 2011 at 08:19:08PM -0500, Steve . wrote:
Date: Mon, 19 Dec 2011 20:19:08 -0500
From: "Steve ." <iteration69 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 <kline 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  kline 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  kline 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.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]