Introduction
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.
Screenshots
Here is a screenshot of testgtk running on Mac OS X 10.3.5. Click on
the image for a full resolution version.