The GNOME Project

The GNOME ( GNU[53] Network Object Model Environment) open source project is a highly ambitious project that owes much to the legacy of the X Windows System. GNOME started exclusively as a Linux project, but, as we’ll describe later in this chapter, ports are underway for other operating systems. The purpose of GNOME is twofold:

  • To build a completely free, easy to use, graphical desktop for end users (along the lines of the Macintosh and Windows models)

  • At the same time, to build a powerful GUI application framework for those on the development side who are building desktop applications

Some people think of GNOME as being simply a window manager. But the GNOME Project is really a whole group of projects under one vast umbrella, including many sophisticated and technically interesting projects that make extensive use of XML. GNOME started up as a discrete project around 1997, with an initial call for participation by Miguel de Icaza. Since then, many excellent developers have joined forces under the GNOME umbrella.

The GNOME development framework focuses on GTK+ (the GIMP Toolkit) and GDK (the GIMP Drawing Kit); we’ll describe these in the following sections. Many applications have already been developed for GNOME, including an image-manipulation tool, an image viewer, a word processor, various types of audio players, and various database applications. For information about these database applications—in particular, the excellent Orasoft applications suite—see Chapter 10.

GNOME

As we mentioned, GNOME is a window manager, but it’s also an entire framework within which you can build your own GUI applications. GNOME uses an object model based on CORBA (Common Object Request Broker Architecture) that allows distributed objects to communicate with one another. This capability allows GNOME to integrate its applications with the desktop and synchronize their activities in some very sophisticated ways.

GNOME’s capabilities include the following:

GNOME Desktop

The desktop provides various control panels, including the control center shown in Figure 9-1 and the desktop itself, which offers drag-and-drop functionality, support for icons, copy and paste between applications, and more.

Standard look-and-feel

This is implemented via themes, providing commonality across applications with a consistent set of buttons, menus, and various other design elements. GNOME’s standard look-and-feel also means that you can build applications that have common menus for consistency across applications, something Mac users are familiar with.

Multi-language support

Applications using GNOME can be written with different language bindings.

Robust session management

This feature allows the state of desktop applications to be saved and restored.

The main web site for GNOME is:

http://www.gnome.org
Displaying the GNOME Control Center

Figure 9-1. Displaying the GNOME Control Center

GTK+

GTK+ is the main widget library for GNOME, and it’s the heart of the GNOME application development framework. GTK stands for the GIMP (GNU Image Manipulation Program) Toolkit. The original toolkit, GTK, got its name because it was developed as a widget toolkit for the GIMP project (described in the next section). Peter Mattis and Spencer Kimball, who also developed GIMP, developed the original version of GTK. Josh McDonald developed a newer version, which was dubbed GTK+ to distinguish it from the earlier version. Although developed originally for use with GIMP, GTK+ is now used by many different types of applications, including the Oracle applications described in Chapter 10.

For information on GTK+, see the following sites:

http://www.gtk.org

The main web site for GTK+

ftp://ftp.gtk.org/pub/gtk/

The GTK+ tutorial, which provides a step-by-step tour of GTK+ with an introduction to widgets, datatypes, signal handlers, and more

http://www.gtk.org/tutorial/

The main download site for GTK+

GIMP

The GIMP is a GTK+-based application that was developed by Peter Mattis and Spencer Kimball (the original authors of GTK+). The GIMP is mainly an image manipulation program, although its many plug-ins allow it to perform a wide variety of functions, such as photo retouching, image composition, and image authoring. The goal of the GIMP project is to develop an open source alternative to Adobe’s commercial Photoshop product. Figure 9-2 shows the GIMP’s welcome screen.

The GIMP’s welcome screen

Figure 9-2. The GIMP’s welcome screen

For more information on the GIMP, see the following sites:

http://www.gimp.org

The main web site for the GIMP

http://www.gimp.org/download.html

The main download site for the GIMP

http://manual.gimp.org

http://gimp-savvy.com/BOOK/index.html

Online access to a comprehensive GIMP tutorial and to another popular alternative

http://www.adobe.com/products/photoshop/main.html

For more information on Photoshop, which the GIMP seeks to supplant

Installing Gnome/GTK+

If you’re running on a system without GNOME already installed, you’ll need to get a copy. The recommended, and by far the simplest and quickest, way to get up and running is to install from binaries. If you’re running any of the systems listed here, you can find precompiled binaries at this site:

http://www.ximian.com/download

Follow the specific directions for your platform:

  • Solaris 2.7 on UltraSparc

  • LinuxPPC 2000

  • Debian GNU/Linux 2.3 (Woody)

  • TurboLinux 6.0

  • Yellow Dog Linux Champion Server 1.2

  • RedHat Linux 6.0, 6.1, or 6.2

  • SuSE Linux 6.3 or 6.4

  • Linux Mandrake 6.1, 7.0, or 7.1

  • Caldera OpenLinux eDesktop 2.4

The more ambitious can certainly choose to install from source; the GNOME web site has a page designed just for you. Find out all about installing from source at:

http://www.gnome.org/start/source.html

Using GNOME/GTK+

You can use the extensive set of widgets available in the GTK+ library when you build GNOME GUI applications. If you write a program using GTK+, it will have the consistent look and feel of all GNOME applications; for example, your buttons, scroll bars, and pop-up menus will have a consistent, standard look. The GNOME Desktop itself was built using the GTK+ library, and through the GNOME Control Center shown earlier in Figure 9-1, you can set such properties as screensaver, background image, themes, desktop sound events, and URL handlers.

You don’t even have to be limited by GNOME’s standard look and feel. Take a look at the XMMS application in Figure 9-3. XMMS is an audio player that lets its users play CDs and MP3 files. As you can see, its Preferences dialog looks like fairly standard GTK+ widgets, but its main window is reminiscent of a Macintosh application.

GNOME and GTK+ also provide your applications with capabilities that extend beyond widgets. If you’re using GNOME as your desktop environment, you’ll be able to control all of your GNOME applications in quite remarkable ways. You’ll be able to change the “theme” of your desktop and have all GNOME applications listen to those commands and respond accordingly. Figure 9-1 shows the “Theme Selector” option currently selected; that demonstrates a scrolling listbox, radio buttons, checkboxes, and so on.

GNOME does a fine job of synchronizing application activities and integrating them with desktop operations. For example, when you use GNOME as your window manager, your desktop applications will be able to respond to GNOME when you attempt to shut down your machine, log out, or restart your PC. Each application, in turn, will be sent a message to quit and take appropriate action. In some cases, your application will die gracefully; in other cases, the application will ask the user if it should save changes to a document. The point is that the window manager has knowledge of all your applications and can coordinate their activities.

Tip

This behavior may not seem so impressive, but back before GNOME, window managers (whether twm, fvwm, or mwm) knew nothing of the programs that were running. Shutting down the X Windows System would simply pull the rug out from under a user’s applications without prompting her to save changes, possibly causing the loss of data. So GNOME’s behavior represents a significant leap in the direction of a consistent platform on which to develop coordinated applications.

XMMS, showing a nonstandard GTK+ user interface

Figure 9-3. XMMS, showing a nonstandard GTK+ user interface

Figure 9-4 shows a snapshot of a Linux desktop running some of the great GTK+-based applications that are currently available. From the upper left corner, running roughly clockwise, you’ll find these applications:

gkrellm

A CPU, disk, and Ethernet monitoring tool that provides constant feedback about the performance of your machine

abiword

A word-processing program capable of reading all your old Word documents (and you thought you were chained to Windows forever?)

everybuddy

AOL Instant Messenger, IRC, and Yahoo!, all rolled into one client

gzilla

A GTK+ and Gnome-compliant browser

gnumeric

A GTK+ and Gnome-compliant spreadsheet

Gnome Mines

You guessed it . . . the excellent game

xmms

An MP3, CD, and general audio player

gnomecc

The Gnome Control Center, showing the screen saver (see Figure 9-1 for more)

Electric Eyes

An image editor for when you fancy a change from the GIMP

Color Selector

Finally, an easy way to pick colors under Unix

File Manager

A way to list files, drag and drop to folders, and perform related functions

The world of GTK+ applications

Figure 9-4. The world of GTK+ applications

What more could you want? The free world of GNOME is evolving so rapidly that you’ll soon have no excuses left for sticking with your Win32 PC. For now, you’re limited to Linux, but in a very short time, you’ll be in a far wider world, as we’ll describe in the next few sections. And, as more applications are ported, and more commercial vendors start using GNOME and GTK+, support for these products will surely grow until GNOME/GTK+ is viewed as being a complete, stable, and high-performing desktop solution.

And, of course, if you’re thinking of developing your own Oracle GTK+ applications, you have a chance to do so before the rest of the market catches on. You too could become part of this exponential growth. See Section 9.3 later in this chapter, and see Chapter 10 for examples of the first generation of GTK+ applications for Oracle.

GTK+ on Windows

Despite its Linux roots, GTK+ is currently being ported to the Win32 platform. The project is spearheaded by Tor Lillqvist. Tor had trouble getting a Minolta Slide Scanner to work under Linux, so he decided that the solution was to port the GIMP to Windows. Before getting the GIMP to work, however, he had to move the foundation—the GTK+ library—to Windows. Work on the port is proceeding well. To keep up with progress on the Windows port, check out this site:

http://user.sgic.fi/~tml/gimp/win32/

GTK+ on BeOS

As if a Windows port of GTK+ isn’t exciting enough, the GTK+ folks are also tackling a port to the BeOS operating system.

BeOS is a very interesting operating system, especially appropriate for those doing broadband digital media work. If you are interested in storing audio and video files directly in an Oracle database and then pumping them out to the Internet, BeOS provides an excellent operating environment. Once the GTK+ port is ready for general release, you’ll be able to take advantage of the various open source applications built on GTK+. We describe a number of these, including the excellent Orasoft suite of applications, in Chapter 10.

The BeOS project is apparently much further along than the Windows project, and the GTK+ port was in alpha release as we went to press. To find out more about the status of the GTK+ port for BeOS, check out this site:

http://www.gtk.org/beos/

For complete information about BeOS and to obtain a free download, go to the Be web site:

http://www.be.com


[53] GNU, of course, stands recursively for “Gnu’s Not Unix,” but you knew that already from Chapter 1!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset