|
Table 1. GNOME Libraries
| Library Name
|
Function
|
| libaudiofile
|
Reads common audio file formats
|
| libgdk_imlib
|
Loads and manipulates image formats
|
| libgtk
|
GIMP Toolkit, widget used in GNOME
|
| libgnome
|
GNOME utility functions
|
| libgnomeui
|
GNOME UI utility functions
|
| libglib
|
String functions, hashes, lists, etc
|
| libgdk
|
Lower level drawing toolkit
|
| libesd
|
Client interface to esound daemon
|
Modern desktop applications demand a wide variety of services from
the underlying application framework. In addition to the
expectations of a widget set, programmers need tools to access
and display audio and image information as well.
libaudiofile.
The libaudiofile library can read a wide
variety of audio file formats (AIFF, AIFC, WAV, and NeXT/Sun
au). Once samples have been loaded using
libaudiofile, libesd
routines are available to play these samples via the Esound
sound daemon. The Esound sound daemon allows several
processes to access the sound hardware simultaneously. Esound
is required because the Linux kernel does not allow multiple
process access. Esound also supports sound over a
network. Sound samples can be preloaded into Esound for later
playback, which signifcantly reduces latency on network
connections since the sample does not have to be repeatedly sent
over the wire.
libgdk_imlib.
GUI applications require extensive use of images to create a
friendly and comfortable user interface. Traditionally it has
been difficult to load all the common graphic file formats
into X11 applications. The libbgdk_imlib
library addresses this issue by providing convenient and
powerful functions to load multiple file formats (JPEG, GIF,
TIFF, PNG, XPM, PPM, PGM, PBM, and BMP). These files are
converted to an internal 24 bit RGB representation, and
utility functions exist to scale as well as render from 24 bit
RGB to a variety of other color depths (with dithering if
desired). Input image files are cached internally by
libbgdk_imlib to improve performance in
applications which repeatedly use images.
libgtk.
The libgtk library is the GIMP toolkit
library. It is a professional quality widget set which, in
many ways, is superior to other widget sets. GNOME
applications are written entirely using
libgtk for all GUI elements (buttons,
menus, scrollbars, etc).
libgnome.
The libgnome library provides many
utility routines related to the GNOME desktop environment.
Among the capabilities provided are config file support for
applications to store persistent data, support for metadata
(data attached to file objects, like the icon to display for a
particular file type), and support for loading help documents
into the GNOME help browser. An interface is also provided so
GNOME applications can talk to the GNOME session manager. Finally,
routines exist to configure how different mime-types are handled
by GNOME and the GNOME file manager.
libgnomeui.
GNOME applications use the libgnomeui
library extensively. This library contains toolkit extensions
to the GTK+ widget set. Users can easily create dialog boxes,
and message boxes, as well as menubars, toolbars, and status
lines. An extensive array of stock icons is provided for the
programmer's use in dialogs, menu entries, and buttons.
Because all GNOME applications will use
libgnomeui to create these common GUI
elements, visual consistency is guaranteed. Another important
capability provided is the GNOME canvas, which allows painless
creation of complex interfaces. Similar in many ways to the Tk
canvas, the GNOME canvas provides a framework to create
address books, calendar applications, and spreadsheets.
|