| Our latest release |
Important Note: This page is now mirrored in the United States. Please consider using that mirror if you are located there, since download times will be much shorter.
The official Web page is still in Europe.
GtkAda now has its open mailing list. If you want to subscribe, simply click here.
| GtkAda 2.0 series |
| GtkAda 1.3 series (Win32 only) |
| GtkAda 1.2 series |
| Access to the latest snapshot using CVS |
The GtkAda repository is now accessible read-only by anonymous CVS. Note that you should only use the GtkAda cvs tree if you know what you are doing and if using a development version (with possible instabilities) does not frigthen you. To check it out:
cvs -d :pserver:anoncvs@libre.act-europe.fr:/anoncvs login empty password cvs -d :pserver:anoncvs@libre.act-europe.fr:/anoncvs co GtkAdaIf you would like to contribute, send your patches (contextual or unified diffs) and we will work with you on integrating them. If you have already contributed and would like write access to the tree, please contact us.
You can also browse the GtkAda CVS tree.
| Introduction to Gtk+ and GtkAda |
| What is Gtk+? |
Gtk+ is a wonderful graphic toolkit written in C for X-Window and Win32 that was originally developed as the basis for the gimp.
| What is GtkAda? |
GtkAda is an Ada95 graphical toolkit based on Gtk+, providing the complete set of Gtk+ widgets using the Object-Oriented features of this language. GtkAda currently supports the latest 1.2 & 2.0 stable releases.
Although this is not an obligation, we would really appreciate to hear from any new application using this toolkit. We will publish a list on this page. Hopefully, this will bring new people to this wonderful language that Ada is :-)
| License |
This package is distributed under the GPL license, slightly modified so that you can create proprietary software with this toolkit. The license is actually the same as the GNAT library itself. You should also read the Gtk license itself if you intend to do proprietary software based on gtk and GtkAda.
| Why we chose Gtk+ instead of X/Motif |
There are some Ada bindings available for X and Motif. Gtk is at the same level as Motif (with complex widgets ready to use), but is much easier to use. As opposed to Motif, Gtk was created from the beginning to make it easy to create bindings for languages other than C. There are already bindings for C++, Lisp, Perl, and many more. Most of Motif functions in C can have an indefinite number of arguments which makes it very difficult to have a strong type safety in an Ada binding. Gtk, on the other hand, makes it really easy to provide this, thus allowing most of the programming errors to be caught at compilation time by the compiler, and saving tremendous time in your development cycle.
It is possible to find some commercial port of Motif to Win32. However, the Gtk port is free and is now running on Windows native, without the need of running an X server (it is based directly on the Win32 API). This is probably something you want to keep in mind when choosing a toolkit for your application, as portability is always a very important issue in Ada.
| Status of this toolkit |
| Implementation rationale |
This toolkit tries to map almost all the functions found in gtk and gdk. This is a thick binding, which means that while the functions are mapped on an almost one-to-one basis (a given Ada function is actually mapped to a single C function in most cases), we also tried to add a strong typing mechanism, which is one of the strongest feature of Ada. We are also now providing new features such as dynamic Glade support. The callbacks are mapped as generic packages which try to provide type safety. Along with this toolkit, you will find a lot of examples on how to use it. You will also find a few screenshots below.
| Online Documentation |
| Printable Documentation |
| Latest features available with GtkAda 1.2.12 (1.3.12) |
| Contributing |
We would also definitively appreciate any contribution or bug report from you. We will try to include them whenever possible, but since this project is done on our free time, we can't promise to do anything within ten minutes following your mail. It will take us at least 15 minutes :-)
| Screenshots |
You will find lots of screenshots at the gtk web site. Here are a few extracted from our re-implementation of the testgtk program and the editor example.
| ![]() | ![]() |
|
| Compatibility |
This toolkit has been developed (and tested) with
| Related Web Sites |
The following are some useful related web sites:
| GtkAda material |
| Applications using GtkAda |
More and more applications are being developed using GtkAda. This includes both commercial "proprietary" software and open source projects. Let us know if you have heard of any available application that you think should be included here. Here is a list of some of these applications.
| Authors |
This toolkit has been written by:
and is maintained and supported by ACT Europe.Please report any bug (and patch) directly to the gtkada list if you are not supported. If you are a supported user, please send reports to report@gnat.com. If you are interested in becoming a supported GtkAda user, you should send an email to sales@gnat.com or to sales@act-europe.fr, depending on your geographic location.
Note that the gtkada list is now a regular mailing list. If you want to subscribe, simply click here and follow the instructions, or send a "subscribe" request to gtkada-request.
You can also visit the
GtkAda archives.
| Contributors |
Some persons have been really helpful in testing GtkAda and providing patches, or at least detailled bug reports whenever they have a problem. We are most definitely thankful to them. Keep up the good work guys !
Sorry for those we forgot, let us know and we will add you to this list (don't worry, we kept and read all your emails... :-)