GTK+ 3.0 is a major new version of GTK+, containing far too many changes to list them all here.
The major highlights include:
- Cairo drawing throughout. GDK no longer wraps the antiquated X11 drawing API; we’ve made a clean break and exclusively rely on cairo for all our drawing needs now. This has also enabled us to remove several other X11-centric concepts such as GCs, colormaps and pixmaps.
- Modern input device handling. The input device handling in GDK has long been a sadly neglected area. This has changed; with 3.0, GTK+ steps into the modern world of XI2 with full support for multiple pointers, keyboards and other gizmos.
- A new theming API which sports a familiar CSS syntax for theme configuration and other improvements such as animated state transitions.
- More flexible geometry management, with support for height-for-width, for both widgets and cell renderers.
- Multiple backend support for GDK. With GTK+ 2.x, you had to recompile your application to have it work with a different GDK backend. In GTK+ 3, multiple GDK backends can be built into a single library and selected at runtime.
- Easy application support. With the integration of D-Bus support in GIO, we could finally add a GtkApplication class that handles a lot of the platform integration aspects of writing an application, such as keeping track of open Windows, ensuring uniqueness, exporting actions, etc.
- Of course, there’s some new widgets as well, such as a switch and an application chooser.
GTK+ is the work of hundreds of contributors, far too many to list them all here. But I want to take the time to thank some people who contributed in a major way:
- Carlos Garnacho (Lanedo), for his work on XI2 support and the new theme system
- Benjamin Otte (Red Hat), for his work on GDK and cairo drawing
- Tristan Van Berkom (Openismus), for his work on geometry management
- Colin Walters (Red Hat), for his work on GtkApplication
- Ryan Lortie (Codethink), for his work on dconf, GSettings and GtkApplication
- Javier Jardón, for tireless code, build and documentation cleanup
Nice!