GTK+ program design chapter three