GtkAda: a complete Ada95 graphical toolkit



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 GtkAda
If 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.

Ctree widget Editor example Notebook widget Sheet widget



Compatibility

This toolkit has been developed (and tested) with

We have been able to test GtkAda 1.2 it on the following machines. Please let us know if you can use it/port it to other machines. As far as we know, it should work on every target supported by both Gnat and Gtk. GtkAda 1.2 is known to be compatible with Glade 0.5.9 (the Gui builder).

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... :-)


Last modified: Wed Nov 13 12:51:44 CET 2002