GTK+-Cocoa Logo


Gtk+-Cocoa is a native port of  Gtk+ 1.2 to Mac OS X. It maps Gtk+ widgets and calls to the corresponding Cocoa controls. GTK+-Cocoa doesn't need X and retains the Aqua look and feel. Notice that  this is not a port of gdk, so applications that draw their own widgets will have to be rewritten.

Why Gtk+-Cocoa?

The Gtk+ toolkit is a great tool for developing cross-platform GUI applications. It is well documented and supported. A Windows version is also available. Unfortunately, the only Mac OS X version available requires X to run, making it difficult to use for distributing applications to the end user. Furthermore, the X based port does not look like the standard Mac OS X GUI, giving the applications an unprofessional look.Gtk+-Cocoa was developed to port a commercial application for Linux and Windows to Mac OS X, with only minor modifications.

Using Gtk+-Cocoa

Gtk+-Cocoa is distributed as a Framework. Gtk-based applications can be linked directly to it, as long as they do not use gdk. Since Gtk uses glib, you will need to link to it as well. Glib can be easily compiled for Mac OS X, so it is not included in the framework.
Gtk+-Cocoa is written in C and Objective C, but Gtk applications are typically written in C. There is no need to use Objective C on the application side.

Current Status

At present, Gtk+-Cocoa is functional but incomplete. Because of the approach chosen for the port, each Gtk widget had to be mapped to  the corresponding Cocoa  control. Given the number of Gtk widgets, many of them have not been mapped yet or only provide partial functionality. Furthermore, some Gtk capabilities are not supported by Cocoa. When possible, those capabilities have been implemented, but in some cases they simply don't make sense in the Cocoa environment and are not supported.


Here is a screenshot of testgtk running on Mac OS X 10.3.5. Click on the image for a full resolution version.
testgtk screenshot Logo