forked from openkylin/gimp
341 lines
9.8 KiB
XML
341 lines
9.8 KiB
XML
<?xml version='1.0'?>
|
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
|
|
|
<article id="structure" lang="en">
|
|
<articleinfo>
|
|
<title>
|
|
Directory Structure of the <application>GIMP</application> Source Tree
|
|
</title>
|
|
<author>
|
|
<firstname>Sven</firstname>
|
|
<surname>Neumann</surname>
|
|
</author>
|
|
<date>2003</date>
|
|
<abstract>
|
|
<para>
|
|
This document outlines the directory structure of the
|
|
<application>GIMP</application> source tree. It should help
|
|
people to get started with the <application>GIMP</application> code.
|
|
</para>
|
|
</abstract>
|
|
</articleinfo>
|
|
|
|
<para>
|
|
The <application>GIMP</application> source tree can be divided
|
|
into the core application, libraries, plug-ins, data files and
|
|
some stuff that doesn't fit into these categories. Here is a list
|
|
of top-level directories:
|
|
</para>
|
|
|
|
<informaltable>
|
|
<tgroup cols="2" align="left">
|
|
<tbody>
|
|
<row>
|
|
<entry><filename>app</filename></entry>
|
|
<entry>
|
|
The source code of the core GIMP application.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>build</filename></entry>
|
|
<entry>
|
|
This is a virtual CVS module that is only here to assist in
|
|
building <application>GIMP</application> for Windows.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>cursors</filename></entry>
|
|
<entry>
|
|
Bitmaps that are used to construct cursors used by the various
|
|
<application>GIMP</application> tools.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>data</filename></entry>
|
|
<entry>
|
|
All sorts of data files like brushes, gradients, patterns as well
|
|
as the splash image and files to integrate
|
|
<application>GIMP</application> into the GNOME desktop.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>devel-docs</filename></entry>
|
|
<entry>
|
|
The developers documentation. The file you are looking at (or at
|
|
least the source that was used to generate it) is located here.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>docs</filename></entry>
|
|
<entry>
|
|
Documentation for users. The man-pages which get installed with
|
|
the <application>GIMP</application> as well as reference sheets
|
|
for keybindings and other stuff.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>etc</filename></entry>
|
|
<entry>
|
|
Configuration files that get installed with the
|
|
<application>GIMP</application>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>libgimp</filename></entry>
|
|
<entry>
|
|
The main <application>GIMP</application> library. It provides the
|
|
API to write plug-ins in the C programming
|
|
language. <application>GIMP</application> itself does not link
|
|
against this library.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>libgimpbase</filename></entry>
|
|
<entry>
|
|
Basic functions that are shared by the
|
|
<application>GIMP</application> application and its plug-ins.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>libgimpcolor</filename></entry>
|
|
<entry>
|
|
Color-related functionality that is shared by the
|
|
<application>GIMP</application> application and its plug-ins.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>libgimpmath</filename></entry>
|
|
<entry>
|
|
A basic set of mathematic operations useful for the the
|
|
<application>GIMP</application> application and its plug-ins.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>libgimpmodule</filename></entry>
|
|
<entry>
|
|
A small library that abstracts dynamic loading of modules. This is
|
|
used to implement loadable color selectors and display filters.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>libgimpwidgets</filename></entry>
|
|
<entry>
|
|
User interface elements (widgets) and utility functions that are
|
|
shared by the <application>GIMP</application> application and its
|
|
plug-ins.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>m4macros</filename></entry>
|
|
<entry>
|
|
m4 macros (well, actually just one) which get installed to help
|
|
automake to detect a GIMP installation. Useful for plug-in
|
|
developers.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>modules</filename></entry>
|
|
<entry>
|
|
Color selectors and display filters that can be loaded at
|
|
run-time.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>plug-ins</filename></entry>
|
|
<entry>
|
|
This directory and its sub-directories hold all the
|
|
<application>GIMP</application> plug-ins that are part of the main
|
|
<application>GIMP</application> distribution.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>po</filename></entry>
|
|
<entry>
|
|
Translations of strings used in the main
|
|
<application>GIMP</application> application.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>po-libgimp</filename></entry>
|
|
<entry>
|
|
Translations of strings used in libgimp.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>po-plug-ins</filename></entry>
|
|
<entry>
|
|
Translations of strings used in <application>GIMP</application>
|
|
plug-ins.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>po-script-fu</filename></entry>
|
|
<entry>
|
|
Translations of strings used in Script-Fu scripts.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>regexrepl</filename></entry>
|
|
<entry>
|
|
Code to handle regular expressions in case your C library does not
|
|
support them. These files will not be used for most builds since
|
|
modern libc implementation have offer support for regular
|
|
expressions.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>themes</filename></entry>
|
|
<entry>
|
|
The look of <application>GIMP</application> is themeable to some
|
|
extent. This directory at the moment only holds the default theme
|
|
but more themes might be added in the future.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>tips</filename></entry>
|
|
<entry>
|
|
The helpful tips shown at startup are located here together with
|
|
their translations.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>tools</filename></entry>
|
|
<entry>
|
|
The source code for some <application>GIMP</application>-related
|
|
tools as well as tools used to build the
|
|
<application>GIMP</application> application.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>
|
|
The contents of these directories will be explained in detail in
|
|
the following sections.
|
|
</para>
|
|
|
|
<sect1 id="app">
|
|
<title>The <application>GIMP</application> application</title>
|
|
<para>
|
|
The source code of the core <application>GIMP</application>
|
|
application is found in the <filename>app</filename> directory.
|
|
</para>
|
|
|
|
<informaltable>
|
|
<tgroup cols="2" align="left">
|
|
<tbody>
|
|
<row>
|
|
<entry><filename>app/base</filename></entry>
|
|
<entry>
|
|
base functionality such as pixel regions, tiles etc.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/paint-funcs</filename></entry>
|
|
<entry>
|
|
functions to manipulate pixels, part of the base
|
|
functionality
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/compose</filename></entry>
|
|
<entry>
|
|
new pixel compositing routines that supersede the code
|
|
in <filename>app/paint-funcs</filename>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/config</filename></entry>
|
|
<entry>
|
|
handling of config files, provides the GimpConfig
|
|
interface and the GimpRc object which is used from
|
|
all over of the application; depends on GObject
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/core</filename></entry>
|
|
<entry>
|
|
the core of the GIMP core, makes heavy use of GObject
|
|
but is not GTK+-dependent
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/file</filename></entry>
|
|
<entry>
|
|
file handling routines, part of the core
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/paint</filename></entry>
|
|
<entry>
|
|
paint core that provides different ways to paint strokes
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/plug-in</filename></entry>
|
|
<entry>
|
|
plug-in handling, part of the core
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/pdb</filename></entry>
|
|
<entry>
|
|
core side of the Procedural Database, exposes internal
|
|
functionality by means of the PDB
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/text</filename></entry>
|
|
<entry>
|
|
text handling, part of the core
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/vectors</filename></entry>
|
|
<entry>
|
|
vectors framework, part of the core
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/xcf</filename></entry>
|
|
<entry>
|
|
XCF file handling, part of the core
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/display</filename></entry>
|
|
<entry>
|
|
handles displays (e.g. image windows), part of the GUI
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/tools</filename></entry>
|
|
<entry>
|
|
user interface part of the tools as found in the toolbox.
|
|
The actual tool functionality is in the core
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/widgets</filename></entry>
|
|
<entry>
|
|
a collection of widgets used in the application GUI
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><filename>app/gui</filename></entry>
|
|
<entry>
|
|
the code that puts the user interface together
|
|
</entry>
|
|
</row>
|
|
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
</sect1>
|
|
|
|
</article>
|
|
|