Almost all Gnome applications should support a common set
of features. This checklist summarizes the most important
ones. Always remember: Gnome is a direct response to the
problem of application heterogeneity in the X environment,
and one of the most important goals of any Gnome
application should be look-and-feel consistent with other
Gnome applications, starting with the source code seen by
programmers and ending with the spiffy GUI you present to
users.
-
Create a standards-compliant source tree. Use the Gnome
autoconf macros, or the
gnome-config script, to
reliably locate the Gnome libraries and header files.
-
Include a README describing
the package.
-
Include the standard INSTALL
file describing how to compile and install the package;
change the standard file to reflect anything specific
to your application.
-
Include a copyright, in a file called COPYING.
-
Internationalize your application with GNU gettext and the standard C library
functions.
-
Include the intl directory
with your application, so users can build the
application without having
gettext. Include intl in
your header file search path.
-
Define the G_LOG_DOMAIN
preprocessor symbol to identify the origin of glib
error messages.
-
Define the GNOMELOCALEDIR
preprocessor symbol so Gnome can find translation
files.
-
Install a .desktop file so
your application will appear on the Gnome desktop's
menus.
-
Install help files along with
topic.dat files so the Gnome help browser can
locate them.
-
Be sure the make distcheck
target works; this is will catch many common makefile
errors.
-
Set up a popt argument
parser; at a minimum, you will probably want to support
a --geometry option.
-
All configuration should be possible via the GUI; the
easiest way to achieve this is with the Gnome
configuration library.
-
Your application should support session management; at
a minimum, it should save and restore the currently
open documents.
-
If appropriate, use the
GnomeApp for your main document windows; this
widget gives Gnome applications a consistent
look-and-feel.
-
Call gtk_window_set_wmclass()
to set the class hint on your windows, so users can
customize how window managers treat them.
-
Use GnomeUIInfo to
create menus and toolbars; when appropriate, use the
Gnome macros for standard menu items.
-
Add a status bar to display hints for the menu items,
and any other status your application has to report.
-
Use GnomeDialog and its
subclasses for your dialogs.
-
Add online help, including tooltips and documentation
for display in the help browser.
-
Keep a ChangeLog detailing
changes to your source code. This will help other
people understand the evolution of the application, and
help you understand why you made certain changes years
later.