Linux.conf.au 2003 | Abstracts

EggMenu

James Henstridge

BiographyBioPaperPaper AudioAudioOther filesOther files (eg source code)

In the GNOME 2.0 development platform, there is currently at four different ways to build up the menus and toolbars, each of them depending on a different set of platform libraries. This is a pain for application developers, as they may find themselves needing to rewrite parts of their UI if they choose to use parts of the GNOME platform such as Bonobo.

In order to solve this issue, a new menu API that contains the best features of the existing APIs, but at the same time can be included in GTK+ so that all applications can use it. The new API is currently in prototype form, and is scheduled for inclusion in GTK+ 2.4.

Some benefits of the new menu system include:

  • actions that a user can make are represented as objects that can have any number of menu items and toolbars associated with them.
  • for "toggle" style actions, the appearance of all tool and menu items are kept in sync.
  • Layout of menus and toolbars can be stored in an external XML file, and multiple UI descriptions can be merged together (useful for compound documents).

The new API is designed to scale from large productivity applications down to small programs, while still being easy to use. It is also easy to extend in order to add new types of actions (which will probably be required for bonobo), and easy to wrap for language bindings.

The talk will also go over the new RFP procedure that is being adopted in GNOME to handle introduction of features such as the new menu API.


The original Tux penguin is copyright by Larry Ewing.
Linux is a trademark of Linus Torvalds.
© 2002 Linux Australia.