GTK+
The GTK+ and GLib libraries provide the foundation for
the user interface of GNOME. The GTK+ user interface
toolkit was originally developed as part of the
GIMP (GNU Image Manipulation Program) project and has
become widely used because of its attractive appearance,
flexible and convenient programming interface and
unrestrictive licensing under the GNU LGPL.
- GLib
-
The GLib library provides functionality which makes C
more pleasant and convenient to use. It is used throughout
the libraries of GTK+ and GNOME as well as in GNOME
programs.
- GDK
-
Instead of directly building on top of the X Window System,
GTK+ introduces an intermediate layer, GDK, which isolates
GTK+ from the details of the windowing system. This
simplifies things for the programmer and increases
portability.
- GTK+ Object System
-
Although GTK+ is written in C, a language without explicit
support for object-oriented programs, the design of
GTK+ is heavily object-oriented. The basis of this
is a layer known as the GTK+ Object System.
In addition to such traditional features as inheritance,
polymorphism and reference counting, the GTK+ Object
System also adds a number of features particularly
adapted for a widget toolkit, including a signal
system for notification and an object attribute system.
- Drag and Drop
-
Moving information via Drag and Drop (DND) is a capability
supported in most modern user interfaces. GTK+ provides
a set of interfaces for supporting drag and drop that
are both easy to use and highly customizable. By writing
to these interfaces, the application can interoperate
with programs supporting either the Motif or Xdnd
Drag and Drop protocols.
- Themes
-
GTK+ provides support for user-interface customization
via themes. Without recompiling either GTK+
or the application, a user can choose a new look for
their applications by installing a new theme. A theme
can either be simply a set of colors and pixmaps used
by the existing drawing code or it can be a complete
replacement of the functions used to draw widgets.
Documentation