Foundations Of Gtk+ Development by Andrew Krause