For portable, efficient GUI-driven applications in Ada

GtkAda provides comprehensive bindings to:

  • Gtk+, the high-level GUI library
  • Glib, a collection of utilities
  • Cairo, an advanced 2D graphics library
  • Pango, a font-manipulation library

In addition, GtkAda provides a set of high-level level widgets including a Multiple-Document Interface, a 2D canvas, and various utility functions.

All of the bindings and widgets present a high-level Ada 2012 interface, improving on the C functionalities by providing type safety and natural object-oriented programming. Numerous examples and comprehensive documentation are provided helping new users quickly learn how to use the API effectively.

GtkAda includes the Glade-3 GUI builder which provides a point-and-click interface for designing windows and dialogs. These can then be used from an Ada application without having to generate or recompile any code. With this approach, the job of designing the GUI can be carried out independently to that of programming the application.

GtkAda technology relies at the lowest level on Win32 or X11 primitives (depending on the platform) to draw its widgets, guaranteeing very efficient native execution. It has a pluggable look-and-feel, so you can decide whether you would like your application to reflect the native platform’s appearance.

AdaCore uses GtkAda as the graphical toolkit for the implementation of its GUI-based tools, most notably the GPS IDE.

To browse online documentation, please click here.

Key Features

  • Platform Independent Provides native solutions for Unix & Windows, has a pluggable look-and-feel and allows for portable, and low-level drawing primitives.
  • More than 100 Widgets Extensible widget set including notebook, text widget, tree widget, various containers, toolbar, tooltips, progress bar, and printing support.
  • Object-oriented API  Full tagged-type hierarchy providing dynamic dispatching, inheritance, extensibility and type safety through the use of generic callbacks.
  • GUI Builder GUI Builder generating XML GUI descriptions that are read at runtime by the application.
  • Integration with Other Tool Kits Ability to mix motif-based GUIs with GtkAda-based GUIs and provides support for OpenGL (OpenGL code can be reused as is).
  • Seamless Integration into GPS, the GNAT Pro IDE
  • Thread Safety