CRI Radio

Apr 23, 2007

Glade

image Glade - a User Interface Designer for GTK+ and GNOME

http://glade.gnome.org/

Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolkit and the GNOME desktop environment, released under the GNU GPL License.

The user interfaces designed in Glade are saved as XML, and by using the libglade library these can be loaded by applications dynamically as needed.

By using libglade, Glade XML files can be used in numerous programming languages including C, C++, Java, Perl, Python, C#, Pike, Ruby, Haskell, Objective Caml and Scheme. Adding support for other languages is easy too.

About Glade-3

This version of Glade (Glade-3) is a complete rewrite of the original Glade codebase.

One of the main differences from glade-2 is that C code generation has been removed from glade-3: this has been done on purpose, since using generated code is deprecated; the preferred way to use glade files is with libglade (if code generation is needed, this can be provided as another tool or plugin, code generation is simply not a part of the glade-3 project).
Another main difference is that glade-3 was designed to make maximal use of GObject introspection, thus easing the integration of external toolkits and handling widgets, signals and properties genericly; thus making it easier to write fancy features in the future (toolkits such as gtk+ itself, gnome, gnome-db and any others are implemented externaly as widget catalogs with optional support libraries, thus catalogs may be distributed seperatly; possibly along with their libglade support modules).

It has a few useful new features such as stacked Undo/Redo and Multiple Project supportand respects the same XML format as glade-2.

You can find Glade 2 tarballs at http://ftp.gnome.org/pub/GNOME/sources/glade/


Glade Future Plans

Glade status and planning

Glade will be following the odd = unstable / even = stable release cycle scheme that is common among some gnome modules, so 3.0.x is current stable and 3.1.x is current the development version - we plan on a massive UI redisign for 3.2 including embedded windows and alot of refactoring related to the embedded window paradigm that will essentially reduce alot of bugs.

After that the next major milestone will be to release a GtkBuilder supporting version of Glade targetting a gtk+-2.12'ish release date (that would essentially be Glade 3.4)

We are also trying to become more time-based in our release cycles, we will now be maintaining a global TODO list of the more major tasks and will be maintaining them here - if a feature is developed and ready by release time - then we will include it.

Glade wants you

Given that the Glade user base is mostly made of developers it would be great if you could help with it: work on Glade may be a great learning experience since the difficulty of things you can work on range from basic GTK+ GUI programming to the deep secrets of the GObject system.

If you don't have the time to help with programming; testing and reporting bugs would still be greatly appreciated.

For a list of things that need doing, check out the bugs in bugzilla.

Feedback

For bug reports, comments, feature requests, questions and patches you can write to the glade-devel list.

You can also file bugreports in bugzilla.

Glade Screenshots

Basic Glade Screenshot


image



Glade DevHelp integration


image

Glade embedded in Anjuta


image

Glade on Windows


image

Prototype of Glade with embedded project widgets


image

Glade Links

Programming Languages

Note that even if a language doesn't appear here it may have support for GTK+ and libglade. You can check for a GTK+ binding on the GTK+ Language Bindings Page.

  • C - The libglade library is also available. It creates the user interface at runtime by loading the XML files generated by Glade.

GNOME Platform Bindings

These have stable bindings for GTK+ and GNOME:

  • C++ - the Gtkmm C++ bindings for GTK+ include support for libglade. Alternatively Glade-- can be used to generate C++ code.
  • Java - the Java-GNOME bindings include support for libglade.
  • Perl - the Gtk-Perl bindings include support for libglade. Alternatively Glade-Perl can generate Perl code (though this may not support recent GTK+ features).
  • Python - the PyGtk python bindings for GTK+ include support for libglade.

Other Bindings

  • C# - the Gtk# bindings include support for libglade.
  • Ada - the GtkAda bindings for GTK+ includes support for generating Ada code.
  • Pike - the Pike binding for GTK+ includes support for libglade in the GTK.GladeXML class.
  • Eiffel - eGlade can generate Eiffel code.
  • Ruby - there are Ruby bindings for libglade.
  • Haskell - the Gtk2Hs Haskell bindings include support for libglade.
  • Objective Caml - the LablGTK Objective Caml bindings support libglade.
  • Scheme - the guile-gnome bindings include support for libglade.

General

  • Anjuta: an Integrated Development Environment for GTK+ and GNOME.