diff options
Diffstat (limited to '')
-rw-r--r-- | devel-docs/structure.xml | 340 |
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> + |