GTK+ 2.18 adds new functionality while maintaining source and binary compatibility with GTK+ 2.16. Highlights of new features and improvements in GTK+ 2.18 are:
GtkInfoBar
A new widget to show a transient ‘message area’ inside a content pane. The API is similar to GtkDialog and supports theming for different message types (warnings, errors, etc)
GtkBuilder
- Scale marks can be specified in builder markup
- GtkAssistant action widgets can be added in builder markup
GtkLabel
GtkLabel can show embedded URLs, much like SexyUrlLabe
GtkEntry
GtkEntry has been refactored to follow the model-view pattern, with GtkEntryBuffer as model. One intended use case for this is to support ‘secure memory’ for password entries
File chooser
- Backup files are hidden by default
- GTK+ remembers the sorting state of the file list
- File sizes are shown by default
- The ‘Create Folder’ button can be disabled with the the ::create-folders property
Printing support
- GTK+ supports authentication against CUPS servers
- A backend for the PAPI printing system has been added
- The file and lpr backends can print multiple pages per sheet
- The file backend can produce svg files
- GTK+ supports printing an application-defined ‘selection’ in addition to the usual page ranges
- The print dialog can optinally include the page setup controls, avoiding the need for a separate page setup dialog in many situations
Theming support
- The bullet character used in invisible entries can be set by themes with the ::invisible-char style property
- The file chooser can show different icons for xdg user dirs. The icon names are folder-documents, folder-download, folder-music, folder-pictures, folder-publicshare, folder-templates and folder-video
- The GtkInfoBar uses symbolic colors for theming its background color depending on the message type. The color names are info_fg_color, info_bg_color, warning_fg_color”, warning_bg_color, etc.
GDK changes
GDK has been rewritten to use ‘client-side windows’. This means that GDK maintains its own window hierarchy and only uses X windows where it is necessary or explicitly requested. Some of the benefits of this change are
- Reduced flicker
- The ability to do transformed and animated rendering of widgets
- Easier embedding of GTK+ widgets, e.g. into Clutter scene graphs
See gdk-demo for some simple examples of client-side windows in action. See the documentation for information about possible problems when moving to client-side windows.
For more details and lists of fixed bugs, see the
announcements for the 2.17.x development releases: 2.17.0, 2.17.1, 2.17.2, 2.17.3, 2.17.4, 2.17.5, 2.17.6, 2.17.8, 2.17.9, 2.17.10, 2.17.11