Next Previous Contents

1. Introduction

GTK (GIMP Toolkit) is a library for creating graphical user interfaces. It is licensed using the LGPL license, so you can develop open software, free software, or even commercial non-free software using GTK without having to spend anything for licenses or royalties.

It's called the GIMP toolkit because it was originally written for developing the General Image Manipulation Program (GIMP), but GTK has now been used in a large number of software projects, including the GNU Network Object Model Environment (GNOME) project. GTK is built on top of GDK (GIMP Drawing Kit) which is basically a wrapper around the low-level functions for accessing the underlying windowing functions (Xlib in the case of X windows). The primary authors of GTK are:

GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions).

There is also a third component called glib which contains a few replacements for some standard calls, as well as some additional functions for handling linked lists etc. The replacement functions are used to increase GTK's portability, as some of the functions implemented here are not available or are nonstandard on other unixes such as g_strerror(). Some also contain enhancements to the libc versions, such as g_malloc that has enhanced debugging utilities.

VEGTK (VisualEiffel GTK bindings) is a wrapper library for GTK. It is licensed using the Eiffel Forum Freeware License.

This tutorial describes the Eiffel interface to GTK. Most of the functions are obviouse for GTK users, and if you are familiar with GTK you won't have any problems using VEGTK.

There are GTK bindings for many other languages including C++, Guile, Perl, Python,TOM, Ada95, Objective C, Free Pascal.

There are also other Eiffel-GTK bindings libraries

This document is a 'work in progress'. Please look for updates on http://www.object-tools.com/ http://www.object-tools.com/.

I would very much like to hear of any problems you have learning VEGTK from this document, and would appreciate input as to how it may be improved. Please see the section on Contributing for further information.


Next Previous Contents