Developing with Gnome

In C, C++, Perl, and Python

Version 1.50

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.

As an exception to the conditions of the Open Publication License (OPL), I authorize the Board of Directors of the Gnome Foundation to redistribute this tutorial, in whole or in part, under free/open source licenses of their choosing. Since such an exemption to the OPL does not fall under the terms of the OPL, authors of derivative works of this tutorial are not required (though they are encouraged) to do likewise. There are multiple reasons for doing so.


Dedication

To Whom It May Concern

Table of Contents

Preface
1. Getting Started
Things You Do Not Need To Learn Yet
Joining The Gnome Community
General Tools
Important Websites
2. Programming Tutorials
Glade
Libglade
Basics
Language bindings
Learning more
GConf
Background
Using the GConf library
Language bindings
Learning more
3. Debugging
GDB
Example program
Basic usage
Getting more information
Walking through the program
More on setting breakpoints
Learning more
strace
Basics
Examples
Learning more
Valgrind (Memcheck)
Capabilities
Basics
Examples
Disadvantages
Learning more
Important option summary
4. Building Gnome from CVS
Basic Instructions
General tips on resolving CVS build issues
Specific examples of resolving CVS build issues
Launching your new Gnome
5. What in the World is That?!?
Overview of Gnome (and Related) Libraries
Tools Gnome Uses
Common Filenames and Filetypes
6. Other Advanced and Specific Guides
A. Rationale on Licensing
B. Glade Examples
C. Libglade Examples
Example 1
Example 2
Example 3
Example 4
Alternative form of examples
D. GConf Examples
Example 1
Example 2
E. Sample programs for debugging tools
GDB Example
Valgrind Example