Uni OS

GToolKit - Main

v My Homepage
 > Fun & Games
 > Local Documents
 v Projects
  v GToolKit
  > ObjcDoc
  > mfg
  > rtfdtohtml
 > Talks
 > More Links
  Uni Osnabrück
 My FTP-Area

What is GToolKit?

GToolKit is a (relatively) small library that implements a simple and easy to use Objective-C interface to the GTK+ widget set. GTK+, which stands for The Gimp Toolkit, is a library for creating graphical user interfaces for the X Window System and MS Win32 (and maybe BeOS in the future).

There are already a number of different Objective-C interface libraries around and each one has its own features, so you have to decide for yourself which one to try and use.

You can view the README and INSTALL files if you want to learn more. The ChangeLog is available here.

Now, what does it do?

Well, the library in itself does not do very much, of course. It just allows you to write your favourite program in my favourite programming language ;-).

Currently implemented features:

  • wrapper classes for all classes in GTK+-1.2 (but not GDK)
  • builds with GNUstep base or libFoundation library
  • OpenStep-like API naming conventions (example)
  • OpenStep-like Application class (GTKApplication)
  • Application and Window delegates
  • Notifications (ApplicationWillTerminate etc.)
  • can load user interfaces created with Glade
  • works in multi-threaded programs (not well tested)

Go to the resources page for more information on OpenStep and Objective-C in general. The GNUstep project is making some real progress these days...

Show me the Screenshots

Oh, you don't really expect me to take screenshots of a library, do you? Anyway, here are screenshots of some of the example programs using the library:

Take me to the screenshots

(Notice the striking similarity with screenshots of "plain C" GTK programs...)


You can have a look at the test programs that come with the library (in the Examples directory) to get a first impression of how to use it. Don't expect documentation for these test programs, however. Unless you are willing to write some, that is...

Example programs


You can view the class documentation online here. This documentation is extracted/generated from the actual Objective-C source code and header files by a small program called ObjcDoc.

Note however, that most of the library's source files are automagically generated from the GTK+ include files and therefore do not include really useful documentation (hint: tell me how to generate that...).

Online documentation


You can always find the source code of the latest version (and some of the earlier releases) on the download page. There are also binary RPM packages for Linux/i386 now. I do not know how to build Debian packages and do not have Debian packaging tools.

Go to the download page

Currently supported Platforms

Any platform that has a fairly recent Objective-C compiler installed should work (e.g. gcc-2.8 or 2.95), although some of the required support libraries (notably GNUstep-base/libFoundation) may not compile or run everywhere. There have been problems reported using gcc-3.0, so I would recommend using gcc-2.95 instead at the moment.

My development machine is running GNU/Linux, so this is the platform that obviously gets the most testing. Some testing has been done on Solaris-2.x.

It should be possible to get it to work under MS Windows (Win32) using Cygwin, although I haven't tried it (yet). If you are interested in this, you should read this note first.

I think I've found a Bug. What can I do?

If you are bold enough :-), you can fix the problem yourself and send a description of the problem and the patch back to me. Otherwise, just send me a bug report and I will have a look at it.

A bug report should always include:

  • your operating system version and CPU type
  • compiler name (gcc, egcs, etc.) and version
  • version numbers of all support libraries (as listed in the README)
  • information on the problem itself and how to reproduce it (if you can)

Todo List (Future Plans)

  • update the complete library API for GLIB 2.0 and GTK+ 2.0
  • translate functions that take a variable number of arguments?
  • try to include the gtk-doc reference documentation
  • implement cross-compiling with the GNUstep makefile package
If you have any suggestions or comments (or think an important feature is missing), I would be pleased to hear from you.


Copyright © 1998, 1999, 2000, 2001, 2002 Elmar Ludwig.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

07-03-2002  Copyright © Elmar Ludwig <Elmar.Ludwig@uos.de>