gltk is a C++ Widget library built on GLUT. The API of gltk is modeled after gtkmm, the C++ interface of the GTK+ library. The implementation of gltk was inspired by GLUI. By building on GLUT, the library is readily ported to platforms where GLUT (or FreeGLUT) is available. These include Linux, Windows, and Mac OS X.
A loose goal of gltk is to be API compatible with gtkmm, where people can, ideally, replace the
Gtk namespace by
gltk and have their programs compile and run on platforms where gtkmm is not available. Under the limitation of GLUT, such goal can only be filled partially. In reality, this project only aims for a close approximation to the most commonly used part of the API, so the author does not have to rewrite his existing gtkmm codes to make his programs portable with GLUT.
Following gtkmm, the communication between objects in the library is provided by the signal-slot API of libsigc++. While libsigc++ is readily ported to a wide range of platforms, to minimize the prerequisites of gltk, a very limited, in-house substitute of libsigc++, under the same
sigc namespace, is provided in the header
sigc.hh with the aim of making it source-compatible with libsigc++. The users of the library may replace
sigc.hh with the real libsigc++ when it's available to gain flexibility and performance.