I'm more of a command line kind of guy, but there are things better done in a graphical treatment. When this is true, I often resort to HTML, but that isn't always suitable either. Most of what I've read about GUI programming has left me feeling daunted by the learning curve, and the writing itself has mostly been difficult to read and unsatisfying
This book was a delightful exception. As its introduction promises, the content "lies somewhere between a tutorial and a reference". The code examples are often just the kind of things you would write yourself to test-drive your understanding; no unnecessary fluff. There are complete programs also, and these are downloadable from the No Starch web site.
Matthias Warkus has a real knack for explaining complex subjects. I particularly liked his way of explaining object inheritance, which is completely upside down from the way it is usually presented, and thereby makes a much more understandable case for using OO code.
The first chapter is an overview of GLib capabilies. I was quite surprised at the things GLib includes: I come from the days when you needed to buy commercial libraries to get features like memory management, linked lists, B-trees, etc. The second chapter covers GObject, which adds Object Oriented capability to standard C programming. That's an important aspect of Gnome: it is plain vanilla C with the OO stuff added on through the GObject library. For those of us who have yet to be entranced by C++, that's important.
Chapters three and four explain GTK+ and the Gnome libraries, the overlap between them, and when you'd use either. Chapter five is a lucid introduction to Glade, the interactive development tool for Gnome. I was interested to note that Glade produces XML files that your programs references through calls to Glade libraries.
The rest of the book is miscellaneous coverage that wasn't covered elsewhere; compiling issues, configuration helpers like Gconf. I had ben previously unaware of the GnomeVFS discussed in chapter eight which allows your program to transparently access remote web servers and archive formats like PKzipped files.
All in all, this looks like a very good intro to Gnome GUI development.
Got something to add? Send me email.
More Articles by Tony Lawrence © 2009-11-07 Tony Lawrence
If we define Futurism as an exploration beyond accepted limits, then the nature of limiting systems becomes the first object of exploration. (Frank Herbert)