Friday, February 09, 2007

The relationship of several libraries

As is mentioned in the web sites of GTK+ and Gtkmm, there are several packages which are highly related to the topics here. Their relationship is of utmost importance to the understanding of the mechanisms of GTK+ and Gtkmm.

GTK+ is originally GTK, GIMP ToolKit. There are three supportive libraries, GLib, Pango and ATK. GLib provides lots of related functions that GTK+ widgets rely on, such signal system(here the term signal is different from the one Linux OS uses to send to processes). Pango handles layout and rendering texts. And ATK contains interfaces for accessibility.

However, the term GDK, GIMP Drawing Kit, can be found from time to time in the related materials. GDK is simply a wrapper for Xlib and if familiar with Xlib, it is not that essential here.

Gtkmm, a C++ wrapper of GTK+, provides a different developing model. It relies on libsigc++, glibmm. Here libsigc++ is a C++ flavor of realization of signal system.

GNOME project prospers on the GTK+. And based on Gtkmm, there is also a gnomemm library. Glade is a tool for creating GUI of GTK+ and libglade provides an alternative with XML as the GUI descriptor and dynamic creation of GUI. Not surprisingly, there will be a libglademm.

In order to compile several programs listed later, we need several packages:

  • GTK: gtk2, gtk2-devel
  • gtkglext: gtkglext, gtkglext-devel
  • gtkmm: gtkmm24, gtkmm24-devel
  • libglade: libglade, libglade-devel

No comments: