GTK+ workspace
Things that can live here:
- Draft documentation to be included later in the GTK+ docs
- Design documents
- Proposed API discussions
Other sections discussing Gtk+:
RoadMap/GtkPlus - Gtk+ inquiries regarding GNOME Roadmap planning
Maemo - Pages around maemo.org, covering maemo-glib and maemo-gtk
Contributing
Gtk+ is a large project and always needs help:
GtkLove - Gtk+ Bug love list (bugs in need of developer attention)
GtkTasks - Sign up for miscellaneous project tasks
GTK+/Meetings - GTK+ Team meetings space
Git repositories with full svn mirrors
API discussion
Draft documentation
- Libglade into Gtk+ (is unfortunately on two different pages):
Building cross-platform GTK+ applications with MinGW and C/C++
- GTK+ Architecture Slides.
- Hacking GTK+ Slides
- Checklist of things to do when writing a widget
Chain up to the correct parent handlers for GtkWidget methods (which ones?)
Handle GtkWidget::style_set.
Handle GtkWidget::screen_changed.
Handle GtkWidget::focus if you have focusable sub-parts.
- Make widgets usable with the keyboard.
- Add accessibility support (out of the scope of this document).
Use GtkBindingSet
When displaying an animation, or doing a button-repeat timeout like e.g. GtkSpinButton, make sure you stop it when necessary: when getting grab-shadowed, when becoming insensitive, when unmapped.
- When working with pointer or keyboard grabs, handle the grab-broken events. This is also true for implicit pointer grabs established by button presses: if you need to do any cleanup in your button-released handler, do the same cleanups in the grab_broken handler.
Books on GTK+
Andrew Krause wrote another book, dedicated to GTK+ 2 development.
{en} Foundations of GTK+ Development
Matthias Warkus wrote a book covering the GNOME 2 desktop environment.
{en} The Official GNOME 2 Developer's Guide
{de} GNOME 2.0: Das Entwickler-Handbuch
