Current Goals of GTK+ development

The longterm goal for the development of GTK+ is to provide a complete platform for the development of GUI applications. In order to achieve this, we have to close some gaps. Some of the commonly used widgets which are currently missing in GTK+ are

Implementations or at least prototypes for some of these widgets are already available somewhere in the Gnome library stack, and just need to be cleaned up and moved to GTK+. For instance, there is an icon list widget called EggIconList in libegg, and an about dialog named GnomeAbout in libgnomeui. In some other cases, the available implementation will have to be reworked more throughly before they can go into GTK+. An example of this is the print dialog. While there is an implemenation in libgnomeprintui, the plan for a print dialog in GTK+ is to first move to Cairo as the main rendering API, and then use the print support in Cairo. There are also several dock widgets available in various parts of the Gnome library stack, which need to be carefully compared to come up with a reasonable scope and feature set for a GTK+ dock widget. One complication of this particular widget is that there may actually be several non-compatible sets of requirements for a dock widget, coming from the use cases of IDEs and office style applications. Finally, some widgets will have to be written from scratch. An example of this is the model-view table widget, although it would be desirable to reuse parts of the tree view widget for it, for instance the cell renderers.

Beyond simply adding more widgets, there are some important features which you would expect in a modern toolkit, which are currently absent from GTK+. Among them are:

User interface design keeps changing. Current trends like breaking up the window metaphor, introducing transparency and animation throughout the UI, will force GTK+ to evolve.

We are confident that we can achieve most of the goals mentioned so far while maintaining binary compatibility with GTK+ 2.x.