summaryrefslogtreecommitdiffstats
path: root/devel-docs/structure.xml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devel-docs/structure.xml340
1 files changed, 340 insertions, 0 deletions
diff --git a/devel-docs/structure.xml b/devel-docs/structure.xml
new file mode 100644
index 0000000..5ebe524
--- /dev/null
+++ b/devel-docs/structure.xml
@@ -0,0 +1,340 @@
+<?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>
+