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
Come join us and work with us on one of the world's most popular toolkits!
We can not directly offer big money, but you get to work on a stable, proven, extensible toolkit,
share experience, code and ideas with hundreds of people minded just like you: loving the free
and open atmosphere, and free, open code!
We are always, but currently very keenly looking for new developers with preferrably present
experience with Gtk+, or another toolkit, firm knowledge of C and a UNIX environment
(development with Gtk+ is possible under Windows, too!), and first and foremost: fresh ideas.
If you think you can contribute to Gtk+, or already have contributed to Gtk+ with a third-party
library and would like to join main development, you can take a look at one of the pages below, or
contact us directly on the Gtk+ Development Mailing List.
Don't hesitate - join now: we are happy to hear from you!
GtkLove - Gtk+ Bug love list (bugs in need of developer attention)
GtkTasks - Sign up for project tasks
GTK+/Meetings - GTK+ Team meetings space
ProjectRidley - An ongoing effort to consolidate chosen external libraries into GTK+.
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
