The GNOME Panel Libraries
<<< Previous Page | Home | Up | Next Page >>>

# Advanced Menu Stuff

It is also possible to have submenus, remove menus and use gnome-stock icons on the menus.

## Submenus

To do submenus, you have to first call applet_widget_register_callback_dir, which only takes the callback name and the menu text. The callback name should end with '/'. The callback name works as a "path" for the submenus.

So to add a submenu "Foo" and in item "Bar" (into the submenu "Foo") you would do:

Example 5. Adding a Submenu

    applet_widget_register_callback_dir (APPLET_WIDGET (applet),
                                         "foo",
                                         _("Foo"));
    applet_widget_register_callback (APPLET_WIDGET (applet),
                                     "foo/bar",
                                     _("Bar"),
                                     bar_callback,
                                     NULL);

## Deleting

To delete a menu item, just call applet_widget_unregister_callback or applet_widget_unregister_callback_dir, with the proper callback name.

## Stock Icons

You use the _stock derivatives of the callback functions and pass an extra argument with the GNOME_STOCK_MENU_* type. For example to add an about menu item:

Example 6. Adding Items with Stock Pixmaps

    applet_widget_register_stock_callback(APPLET_WIDGET(applet),
                                          "about",
                                          GNOME_STOCK_MENU_ABOUT,
                                          _("About..."),
                                          about_cb,
                                          NULL);

<<< Previous Page | Home | Up | Next Page >>>
The Applet's Context Menu | Session Saving