GUI Development in Ada

GNAT Pro’s solution for developing 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 95 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

Integral to all our products: Frontline Support


The world’s largest team of Ada experts at your fingertips. Learn More »

GNAT Tracker

Our powerful, secure, customer web server, brings you timely online support. Learn More »

Knowledge Center

Developer Gems    

  • Gem #105: Lady Ada Kisses Python—Part 1

    This series of two Gems explains how to use the GNAT Components Collection to interface your Ada code with Python. The first Gem describes the benefits this could bring to your application as well as the difficulties there would be in interfacing directly to the Python library. The second Gem will show how to get started with GNATCOLL to greatly simplify the interfacing process.

Live Docs

Technical Papers

Code Samples

Press Releases

In the Press