Prerequisites

Since the core GNOME libraries are written in C, you'll want to know how to read C code. All the code examples in this book are in C. GNOME covers quite a lot of ground, and we have only so much space in which to talk about it, so we won't be able to go into the beginner's basics of C coding, or even shell scripting. Check your local book store or library for books dedicated to this topic. A full book will do a much better job of explaining it than I would by trying to slip it into the margins.

Although not critical, some knowledge of the GTK+ widget library will help. We'll cover the conceptual basics of GTK+ as we go, and the online doc- umentation is very good, so even if you're not familiar with GTK+, you should be able to follow along without problems.

If you're a Win32 programmer interested in writing a GNOME application, this book has all you need to get started. Chapter 1 provides you with high- level conceptual discussions about UNIX and the X Window System. Chapter 10 covers the fundamentals of the graphics subsystem.

You will need GNOME installed on your system. For the most part, the techniques and API covered in this book will apply equally to the GNOME 1.0 and GNOME 1.2 releases; furthermore, even though the GNOME 2.0 release will bring about many fundamental changes, it will still support backward compatibility. So even though GNOME 2.0 may encourage a different way of doing things, your old 1.x applications should compile just fine under 2.0 (possibly with minor modifications).

This book was written according to GTK+ 1.2.7, gnome-libs 1.2.0, and gdk- pixbuf 0.7.0, as well as autoconf 2.13, automake 1.4, libtool 1.3.2, and gettext 0.10.35. If your software is different from the above snapshot, you may or may not experience subtle differences from the presentation here. Generally speak- ing, though, if your libraries are newer than these, you should be fine.

Aside from the technical essentials, you'll need patience, dedication, and curiosity. A little stubborn drive won't hurt, either. GNOME has a pretty steep learning curve at first, but the journey is well worth it. GNOME has great power, and even greater potential; you'll be happy you stuck with it to the end.