[gimp] app: Get rid of config -> display module dependency
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Get rid of config -> display module dependency
- Date: Mon, 1 Feb 2010 20:56:59 +0000 (UTC)
commit ed2d178da359fc68f33dbefff1a42c8060747f0b
Author: Martin Nordholts <martinn src gnome org>
Date: Mon Feb 1 21:55:18 2010 +0100
app: Get rid of config -> display module dependency
In order to make a clear separation between the core modules and the
UI modules, move the necessary enums from display-enums.h and
widgets-enums.h to config-enums.h and the files
gimpdisplayoptions.[ch] from the display to the config module. This
removes the config -> display dependency.
This change has three main benefits
* It lets us remove includes of display files from the config module
* We don't have to link gimp-console and test-config with a subset of
object files from the display module
* It is reflected in devel-docs/gimp-module-dependencies.svg that the
application is made up of core modules and UI modules and that no
core module depends on any UI module
app/Makefile.am | 3 -
app/actions/view-actions.c | 2 +-
app/actions/view-commands.c | 2 +-
app/config/Makefile.am | 38 ++-
app/config/config-enums.c | 226 ++++++++++
app/config/config-enums.h | 105 +++++
app/config/config-types.h | 7 +-
app/config/gimpdisplayconfig.c | 9 +-
app/config/gimpdisplayconfig.h | 2 -
app/{display => config}/gimpdisplayoptions.c | 5 +-
app/{display => config}/gimpdisplayoptions.h | 0
app/config/gimpguiconfig.h | 2 -
app/config/gimppluginconfig.h | 2 -
app/core/core-types.h | 3 -
app/display/Makefile.am | 2 -
app/display/display-enums.c | 124 -----
app/display/display-enums.h | 49 --
app/display/gimpdisplayshell-appearance.c | 3 +-
app/display/gimpdisplayshell-handlers.c | 2 +-
app/display/gimpdisplayshell.c | 2 +-
app/widgets/widgets-enums.c | 89 ----
app/widgets/widgets-enums.h | 34 --
devel-docs/gimp-module-dependencies.svg | 618 +++++++++++++-------------
po/POTFILES.in | 4 +-
24 files changed, 695 insertions(+), 638 deletions(-)
---
diff --git a/app/Makefile.am b/app/Makefile.am
index 3654e79..dd5ef21 100644
--- a/app/Makefile.am
+++ b/app/Makefile.am
@@ -142,9 +142,6 @@ AM_LDFLAGS = \
$(workaround_that_file_depends_on_plug_in)
gimpconsoleldadd = \
- display/gimpdisplayoptions.o \
- display/display-enums.o \
- widgets/widgets-enums.o \
xcf/libappxcf.a \
pdb/libappinternal-procs.a \
pdb/libapppdb.a \
diff --git a/app/actions/view-actions.c b/app/actions/view-actions.c
index d83312b..b245653 100644
--- a/app/actions/view-actions.c
+++ b/app/actions/view-actions.c
@@ -26,6 +26,7 @@
#include "actions-types.h"
+#include "config/gimpdisplayoptions.h"
#include "config/gimpguiconfig.h"
#include "core/gimp.h"
@@ -39,7 +40,6 @@
#include "widgets/gimpwidgets-utils.h"
#include "display/gimpdisplay.h"
-#include "display/gimpdisplayoptions.h"
#include "display/gimpdisplayshell.h"
#include "display/gimpdisplayshell-appearance.h"
#include "display/gimpdisplayshell-scale.h"
diff --git a/app/actions/view-commands.c b/app/actions/view-commands.c
index cacdd16..ace7806 100644
--- a/app/actions/view-commands.c
+++ b/app/actions/view-commands.c
@@ -25,6 +25,7 @@
#include "actions-types.h"
+#include "config/gimpdisplayoptions.h"
#include "config/gimpguiconfig.h"
#include "core/gimp.h"
@@ -35,7 +36,6 @@
#include "display/gimpdisplay.h"
#include "display/gimpdisplay-foreach.h"
-#include "display/gimpdisplayoptions.h"
#include "display/gimpdisplayshell.h"
#include "display/gimpdisplayshell-appearance.h"
#include "display/gimpdisplayshell-filter-dialog.h"
diff --git a/app/config/Makefile.am b/app/config/Makefile.am
index c3ad7c5..968c37c 100644
--- a/app/config/Makefile.am
+++ b/app/config/Makefile.am
@@ -21,7 +21,8 @@ INCLUDES = \
noinst_LIBRARIES = libappconfig.a
-libappconfig_a_SOURCES = \
+libappconfig_a_sources = \
+ config-enums.h \
config-types.h \
gimpconfig-dump.c \
gimpconfig-dump.h \
@@ -35,6 +36,8 @@ libappconfig_a_SOURCES = \
gimpcoreconfig.h \
gimpdisplayconfig.c \
gimpdisplayconfig.h \
+ gimpdisplayoptions.c \
+ gimpdisplayoptions.h \
gimpguiconfig.c \
gimpguiconfig.h \
gimppluginconfig.c \
@@ -51,6 +54,14 @@ libappconfig_a_SOURCES = \
gimpxmlparser.c \
gimpxmlparser.h
+libappconfig_a_built_sources = \
+ config-enums.c
+
+libappconfig_a_SOURCES = \
+ $(libappconfig_a_built_sources) \
+ $(libappconfig_a_sources)
+
+
EXTRA_PROGRAMS = test-config
EXTRA_DIST = makefile.msc
@@ -77,9 +88,6 @@ test_config_LDFLAGS = \
-u $(SYMPREFIX)gimp_image_map_config_get_type
test_config_LDADD = \
- ../display/gimpdisplayoptions.o \
- ../display/display-enums.o \
- ../widgets/widgets-enums.o \
../xcf/libappxcf.a \
../pdb/libappinternal-procs.a \
../pdb/libapppdb.a \
@@ -107,3 +115,25 @@ test_config_LDADD = \
$(GLIB_LIBS)
CLEANFILES = $(EXTRA_PROGRAMS) foorc
+
+#
+# rules to generate built sources
+#
+# setup autogeneration dependencies
+gen_sources = xgen-dec
+CLEANFILES += $(gen_sources)
+
+config-enums.c: $(srcdir)/config-enums.h $(GIMP_MKENUMS)
+ $(GIMP_MKENUMS) \
+ --fhead "#include \"config.h\"\n#include <glib-object.h>\n#include \"libgimpbase/gimpbase.h\"\n#include \"config-enums.h\"\n#include\"gimp-intl.h\"" \
+ --fprod "\n/* enumerations from \"@filename \" */" \
+ --vhead "GType\n enum_name@_get_type (void)\n{\n static const G Type@Value values[] =\n {" \
+ --vprod " { @VALUENAME@, \"@VALUENAME \", \"@valuenick \" }," \
+ --vtail " { 0, NULL, NULL }\n };\n" \
+ --dhead " static const Gimp Type@Desc descs[] =\n {" \
+ --dprod " { @VALUENAME@, @valuedesc@, @valuehelp@ }," \
+ --dtail " { 0, NULL, NULL }\n };\n\n static GType type = 0;\n\n if (G_UNLIKELY (! type))\n {\n type = g_ type@_register_static (\"@EnumName \", values);\n gimp_type_set_translation_context (type, \"@enumnick \");\n gimp_ type@_set_value_descriptions (type, descs);\n }\n\n return type;\n}\n" \
+ $(srcdir)/config-enums.h > xgen-dec \
+ && cp xgen-dec $(@F) \
+ && rm -f xgen-dec
+
diff --git a/app/config/config-enums.c b/app/config/config-enums.c
new file mode 100644
index 0000000..4844f87
--- /dev/null
+++ b/app/config/config-enums.c
@@ -0,0 +1,226 @@
+
+/* Generated data (by gimp-mkenums) */
+
+#include "config.h"
+#include <glib-object.h>
+#include "libgimpbase/gimpbase.h"
+#include "config-enums.h"
+#include"gimp-intl.h"
+
+/* enumerations from "./config-enums.h" */
+GType
+gimp_cursor_mode_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_CURSOR_MODE_TOOL_ICON, "GIMP_CURSOR_MODE_TOOL_ICON", "tool-icon" },
+ { GIMP_CURSOR_MODE_TOOL_CROSSHAIR, "GIMP_CURSOR_MODE_TOOL_CROSSHAIR", "tool-crosshair" },
+ { GIMP_CURSOR_MODE_CROSSHAIR, "GIMP_CURSOR_MODE_CROSSHAIR", "crosshair" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_CURSOR_MODE_TOOL_ICON, NC_("cursor-mode", "Tool icon"), NULL },
+ { GIMP_CURSOR_MODE_TOOL_CROSSHAIR, NC_("cursor-mode", "Tool icon with crosshair"), NULL },
+ { GIMP_CURSOR_MODE_CROSSHAIR, NC_("cursor-mode", "Crosshair only"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpCursorMode", values);
+ gimp_type_set_translation_context (type, "cursor-mode");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+GType
+gimp_canvas_padding_mode_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_CANVAS_PADDING_MODE_DEFAULT, "GIMP_CANVAS_PADDING_MODE_DEFAULT", "default" },
+ { GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, "GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK", "light-check" },
+ { GIMP_CANVAS_PADDING_MODE_DARK_CHECK, "GIMP_CANVAS_PADDING_MODE_DARK_CHECK", "dark-check" },
+ { GIMP_CANVAS_PADDING_MODE_CUSTOM, "GIMP_CANVAS_PADDING_MODE_CUSTOM", "custom" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_CANVAS_PADDING_MODE_DEFAULT, NC_("canvas-padding-mode", "From theme"), NULL },
+ { GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, NC_("canvas-padding-mode", "Light check color"), NULL },
+ { GIMP_CANVAS_PADDING_MODE_DARK_CHECK, NC_("canvas-padding-mode", "Dark check color"), NULL },
+ { GIMP_CANVAS_PADDING_MODE_CUSTOM, NC_("canvas-padding-mode", "Custom color"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpCanvasPaddingMode", values);
+ gimp_type_set_translation_context (type, "canvas-padding-mode");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+GType
+gimp_space_bar_action_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_SPACE_BAR_ACTION_NONE, "GIMP_SPACE_BAR_ACTION_NONE", "none" },
+ { GIMP_SPACE_BAR_ACTION_PAN, "GIMP_SPACE_BAR_ACTION_PAN", "pan" },
+ { GIMP_SPACE_BAR_ACTION_MOVE, "GIMP_SPACE_BAR_ACTION_MOVE", "move" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_SPACE_BAR_ACTION_NONE, NC_("space-bar-action", "No action"), NULL },
+ { GIMP_SPACE_BAR_ACTION_PAN, NC_("space-bar-action", "Pan view"), NULL },
+ { GIMP_SPACE_BAR_ACTION_MOVE, NC_("space-bar-action", "Switch to Move tool"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpSpaceBarAction", values);
+ gimp_type_set_translation_context (type, "space-bar-action");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+GType
+gimp_zoom_quality_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_ZOOM_QUALITY_LOW, "GIMP_ZOOM_QUALITY_LOW", "low" },
+ { GIMP_ZOOM_QUALITY_HIGH, "GIMP_ZOOM_QUALITY_HIGH", "high" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_ZOOM_QUALITY_LOW, NC_("zoom-quality", "Low"), NULL },
+ { GIMP_ZOOM_QUALITY_HIGH, NC_("zoom-quality", "High"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpZoomQuality", values);
+ gimp_type_set_translation_context (type, "zoom-quality");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+GType
+gimp_help_browser_type_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_HELP_BROWSER_GIMP, "GIMP_HELP_BROWSER_GIMP", "gimp" },
+ { GIMP_HELP_BROWSER_WEB_BROWSER, "GIMP_HELP_BROWSER_WEB_BROWSER", "web-browser" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_HELP_BROWSER_GIMP, NC_("help-browser-type", "GIMP help browser"), NULL },
+ { GIMP_HELP_BROWSER_WEB_BROWSER, NC_("help-browser-type", "Web browser"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpHelpBrowserType", values);
+ gimp_type_set_translation_context (type, "help-browser-type");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+GType
+gimp_window_hint_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_WINDOW_HINT_NORMAL, "GIMP_WINDOW_HINT_NORMAL", "normal" },
+ { GIMP_WINDOW_HINT_UTILITY, "GIMP_WINDOW_HINT_UTILITY", "utility" },
+ { GIMP_WINDOW_HINT_KEEP_ABOVE, "GIMP_WINDOW_HINT_KEEP_ABOVE", "keep-above" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_WINDOW_HINT_NORMAL, NC_("window-hint", "Normal window"), NULL },
+ { GIMP_WINDOW_HINT_UTILITY, NC_("window-hint", "Utility window"), NULL },
+ { GIMP_WINDOW_HINT_KEEP_ABOVE, NC_("window-hint", "Keep above"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpWindowHint", values);
+ gimp_type_set_translation_context (type, "window-hint");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+GType
+gimp_cursor_format_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_CURSOR_FORMAT_BITMAP, "GIMP_CURSOR_FORMAT_BITMAP", "bitmap" },
+ { GIMP_CURSOR_FORMAT_PIXBUF, "GIMP_CURSOR_FORMAT_PIXBUF", "pixbuf" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_CURSOR_FORMAT_BITMAP, NC_("cursor-format", "Black & white"), NULL },
+ { GIMP_CURSOR_FORMAT_PIXBUF, NC_("cursor-format", "Fancy"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpCursorFormat", values);
+ gimp_type_set_translation_context (type, "cursor-format");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
+
+/* Generated data ends here */
+
diff --git a/app/config/config-enums.h b/app/config/config-enums.h
new file mode 100644
index 0000000..0bb4778
--- /dev/null
+++ b/app/config/config-enums.h
@@ -0,0 +1,105 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995 Spencer Kimball and Peter Mattis
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __CONFIG_ENUMS_H__
+#define __CONFIG_ENUMS_H__
+
+
+#define GIMP_TYPE_CURSOR_MODE (gimp_cursor_mode_get_type ())
+
+GType gimp_cursor_mode_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_CURSOR_MODE_TOOL_ICON, /*< desc="Tool icon" >*/
+ GIMP_CURSOR_MODE_TOOL_CROSSHAIR, /*< desc="Tool icon with crosshair" >*/
+ GIMP_CURSOR_MODE_CROSSHAIR /*< desc="Crosshair only" >*/
+} GimpCursorMode;
+
+
+#define GIMP_TYPE_CANVAS_PADDING_MODE (gimp_canvas_padding_mode_get_type ())
+
+GType gimp_canvas_padding_mode_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_CANVAS_PADDING_MODE_DEFAULT, /*< desc="From theme" >*/
+ GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, /*< desc="Light check color" >*/
+ GIMP_CANVAS_PADDING_MODE_DARK_CHECK, /*< desc="Dark check color" >*/
+ GIMP_CANVAS_PADDING_MODE_CUSTOM, /*< desc="Custom color" >*/
+ GIMP_CANVAS_PADDING_MODE_RESET = -1 /*< skip >*/
+} GimpCanvasPaddingMode;
+
+
+#define GIMP_TYPE_SPACE_BAR_ACTION (gimp_space_bar_action_get_type ())
+
+GType gimp_space_bar_action_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_SPACE_BAR_ACTION_NONE, /*< desc="No action" >*/
+ GIMP_SPACE_BAR_ACTION_PAN, /*< desc="Pan view" >*/
+ GIMP_SPACE_BAR_ACTION_MOVE /*< desc="Switch to Move tool" >*/
+} GimpSpaceBarAction;
+
+
+#define GIMP_TYPE_ZOOM_QUALITY (gimp_zoom_quality_get_type ())
+
+GType gimp_zoom_quality_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_ZOOM_QUALITY_LOW, /*< desc="Low" >*/
+ GIMP_ZOOM_QUALITY_HIGH /*< desc="High" >*/
+} GimpZoomQuality;
+
+
+#define GIMP_TYPE_HELP_BROWSER_TYPE (gimp_help_browser_type_get_type ())
+
+GType gimp_help_browser_type_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_HELP_BROWSER_GIMP, /*< desc="GIMP help browser" >*/
+ GIMP_HELP_BROWSER_WEB_BROWSER /*< desc="Web browser" >*/
+} GimpHelpBrowserType;
+
+
+#define GIMP_TYPE_WINDOW_HINT (gimp_window_hint_get_type ())
+
+GType gimp_window_hint_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_WINDOW_HINT_NORMAL, /*< desc="Normal window" >*/
+ GIMP_WINDOW_HINT_UTILITY, /*< desc="Utility window" >*/
+ GIMP_WINDOW_HINT_KEEP_ABOVE /*< desc="Keep above" >*/
+} GimpWindowHint;
+
+
+#define GIMP_TYPE_CURSOR_FORMAT (gimp_cursor_format_get_type ())
+
+GType gimp_cursor_format_get_type (void) G_GNUC_CONST;
+
+typedef enum
+{
+ GIMP_CURSOR_FORMAT_BITMAP, /*< desc="Black & white" >*/
+ GIMP_CURSOR_FORMAT_PIXBUF /*< desc="Fancy" >*/
+} GimpCursorFormat;
+
+
+#endif /* __CONFIG_ENUMS_H__ */
diff --git a/app/config/config-types.h b/app/config/config-types.h
index 97fa63c..eed275d 100644
--- a/app/config/config-types.h
+++ b/app/config/config-types.h
@@ -24,6 +24,12 @@
#include "libgimpconfig/gimpconfigtypes.h"
+#include "config/config-enums.h"
+
+
+#define GIMP_OPACITY_TRANSPARENT 0.0
+#define GIMP_OPACITY_OPAQUE 1.0
+
typedef struct _GimpBaseConfig GimpBaseConfig;
typedef struct _GimpCoreConfig GimpCoreConfig;
@@ -34,7 +40,6 @@ typedef struct _GimpRc GimpRc;
typedef struct _GimpXmlParser GimpXmlParser;
-/* should be in display/display-types.h */
typedef struct _GimpDisplayOptions GimpDisplayOptions;
/* should be in core/core-types.h */
diff --git a/app/config/gimpdisplayconfig.c b/app/config/gimpdisplayconfig.c
index e2f0697..5ce6399 100644
--- a/app/config/gimpdisplayconfig.c
+++ b/app/config/gimpdisplayconfig.c
@@ -28,16 +28,9 @@
#include "config-types.h"
-/* FIXME: If we can get rid of this dependency to the display module,
- * we will greatly improve the module dependencies in the core, see
- * devel-docs/gimp-module-dependencies.svg. In particular, we will get
- * rid of the (transitive) dependency from the core to the UI code
- */
-#include "display/display-enums.h"
-#include "display/gimpdisplayoptions.h"
-
#include "gimprc-blurbs.h"
#include "gimpdisplayconfig.h"
+#include "gimpdisplayoptions.h"
#include "gimp-intl.h"
diff --git a/app/config/gimpdisplayconfig.h b/app/config/gimpdisplayconfig.h
index ca184f4..cfdbdf2 100644
--- a/app/config/gimpdisplayconfig.h
+++ b/app/config/gimpdisplayconfig.h
@@ -21,8 +21,6 @@
#ifndef __GIMP_DISPLAY_CONFIG_H__
#define __GIMP_DISPLAY_CONFIG_H__
-#include "display/display-enums.h"
-
#include "config/gimpcoreconfig.h"
diff --git a/app/display/gimpdisplayoptions.c b/app/config/gimpdisplayoptions.c
similarity index 99%
rename from app/display/gimpdisplayoptions.c
rename to app/config/gimpdisplayoptions.c
index 5cff716..82eb388 100644
--- a/app/display/gimpdisplayoptions.c
+++ b/app/config/gimpdisplayoptions.c
@@ -27,10 +27,9 @@
#include "libgimpcolor/gimpcolor.h"
#include "libgimpconfig/gimpconfig.h"
-#include "core/core-types.h"
-#include "display-enums.h"
+#include "config-types.h"
-#include "config/gimprc-blurbs.h"
+#include "gimprc-blurbs.h"
#include "gimpdisplayoptions.h"
diff --git a/app/display/gimpdisplayoptions.h b/app/config/gimpdisplayoptions.h
similarity index 100%
rename from app/display/gimpdisplayoptions.h
rename to app/config/gimpdisplayoptions.h
diff --git a/app/config/gimpguiconfig.h b/app/config/gimpguiconfig.h
index 6963d74..1e6d7f7 100644
--- a/app/config/gimpguiconfig.h
+++ b/app/config/gimpguiconfig.h
@@ -21,8 +21,6 @@
#ifndef __GIMP_GUI_CONFIG_H__
#define __GIMP_GUI_CONFIG_H__
-#include "widgets/widgets-enums.h"
-
#include "config/gimpdisplayconfig.h"
diff --git a/app/config/gimppluginconfig.h b/app/config/gimppluginconfig.h
index 3f27fd5..bf34fd9 100644
--- a/app/config/gimppluginconfig.h
+++ b/app/config/gimppluginconfig.h
@@ -21,8 +21,6 @@
#ifndef __GIMP_PLUGIN_CONFIG_H__
#define __GIMP_PLUGIN_CONFIG_H__
-#include "widgets/widgets-enums.h"
-
#include "config/gimpguiconfig.h"
diff --git a/app/core/core-types.h b/app/core/core-types.h
index ae01983..eea2ac2 100644
--- a/app/core/core-types.h
+++ b/app/core/core-types.h
@@ -29,9 +29,6 @@
/* defines */
-#define GIMP_OPACITY_TRANSPARENT 0.0
-#define GIMP_OPACITY_OPAQUE 1.0
-
#define GIMP_COORDS_MIN_PRESSURE 0.0
#define GIMP_COORDS_MAX_PRESSURE 1.0
#define GIMP_COORDS_DEFAULT_PRESSURE 1.0
diff --git a/app/display/Makefile.am b/app/display/Makefile.am
index 031ec42..987c995 100644
--- a/app/display/Makefile.am
+++ b/app/display/Makefile.am
@@ -23,8 +23,6 @@ libappdisplay_a_sources = \
gimpcursorview.h \
gimpdisplay.c \
gimpdisplay.h \
- gimpdisplayoptions.c \
- gimpdisplayoptions.h \
gimpdisplay-foreach.c \
gimpdisplay-foreach.h \
gimpdisplay-handlers.c \
diff --git a/app/display/display-enums.c b/app/display/display-enums.c
index 7e48a1e..0db113e 100644
--- a/app/display/display-enums.c
+++ b/app/display/display-enums.c
@@ -9,37 +9,6 @@
/* enumerations from "./display-enums.h" */
GType
-gimp_cursor_mode_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_CURSOR_MODE_TOOL_ICON, "GIMP_CURSOR_MODE_TOOL_ICON", "tool-icon" },
- { GIMP_CURSOR_MODE_TOOL_CROSSHAIR, "GIMP_CURSOR_MODE_TOOL_CROSSHAIR", "tool-crosshair" },
- { GIMP_CURSOR_MODE_CROSSHAIR, "GIMP_CURSOR_MODE_CROSSHAIR", "crosshair" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_CURSOR_MODE_TOOL_ICON, NC_("cursor-mode", "Tool icon"), NULL },
- { GIMP_CURSOR_MODE_TOOL_CROSSHAIR, NC_("cursor-mode", "Tool icon with crosshair"), NULL },
- { GIMP_CURSOR_MODE_CROSSHAIR, NC_("cursor-mode", "Crosshair only"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpCursorMode", values);
- gimp_type_set_translation_context (type, "cursor-mode");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
-GType
gimp_cursor_precision_get_type (void)
{
static const GEnumValue values[] =
@@ -71,99 +40,6 @@ gimp_cursor_precision_get_type (void)
}
GType
-gimp_canvas_padding_mode_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_CANVAS_PADDING_MODE_DEFAULT, "GIMP_CANVAS_PADDING_MODE_DEFAULT", "default" },
- { GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, "GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK", "light-check" },
- { GIMP_CANVAS_PADDING_MODE_DARK_CHECK, "GIMP_CANVAS_PADDING_MODE_DARK_CHECK", "dark-check" },
- { GIMP_CANVAS_PADDING_MODE_CUSTOM, "GIMP_CANVAS_PADDING_MODE_CUSTOM", "custom" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_CANVAS_PADDING_MODE_DEFAULT, NC_("canvas-padding-mode", "From theme"), NULL },
- { GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, NC_("canvas-padding-mode", "Light check color"), NULL },
- { GIMP_CANVAS_PADDING_MODE_DARK_CHECK, NC_("canvas-padding-mode", "Dark check color"), NULL },
- { GIMP_CANVAS_PADDING_MODE_CUSTOM, NC_("canvas-padding-mode", "Custom color"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpCanvasPaddingMode", values);
- gimp_type_set_translation_context (type, "canvas-padding-mode");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
-GType
-gimp_space_bar_action_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_SPACE_BAR_ACTION_NONE, "GIMP_SPACE_BAR_ACTION_NONE", "none" },
- { GIMP_SPACE_BAR_ACTION_PAN, "GIMP_SPACE_BAR_ACTION_PAN", "pan" },
- { GIMP_SPACE_BAR_ACTION_MOVE, "GIMP_SPACE_BAR_ACTION_MOVE", "move" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_SPACE_BAR_ACTION_NONE, NC_("space-bar-action", "No action"), NULL },
- { GIMP_SPACE_BAR_ACTION_PAN, NC_("space-bar-action", "Pan view"), NULL },
- { GIMP_SPACE_BAR_ACTION_MOVE, NC_("space-bar-action", "Switch to Move tool"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpSpaceBarAction", values);
- gimp_type_set_translation_context (type, "space-bar-action");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
-GType
-gimp_zoom_quality_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_ZOOM_QUALITY_LOW, "GIMP_ZOOM_QUALITY_LOW", "low" },
- { GIMP_ZOOM_QUALITY_HIGH, "GIMP_ZOOM_QUALITY_HIGH", "high" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_ZOOM_QUALITY_LOW, NC_("zoom-quality", "Low"), NULL },
- { GIMP_ZOOM_QUALITY_HIGH, NC_("zoom-quality", "High"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpZoomQuality", values);
- gimp_type_set_translation_context (type, "zoom-quality");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
-GType
gimp_zoom_focus_get_type (void)
{
static const GEnumValue values[] =
diff --git a/app/display/display-enums.h b/app/display/display-enums.h
index 9455ace..28a1ae1 100644
--- a/app/display/display-enums.h
+++ b/app/display/display-enums.h
@@ -19,18 +19,6 @@
#define __DISPLAY_ENUMS_H__
-#define GIMP_TYPE_CURSOR_MODE (gimp_cursor_mode_get_type ())
-
-GType gimp_cursor_mode_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_CURSOR_MODE_TOOL_ICON, /*< desc="Tool icon" >*/
- GIMP_CURSOR_MODE_TOOL_CROSSHAIR, /*< desc="Tool icon with crosshair" >*/
- GIMP_CURSOR_MODE_CROSSHAIR /*< desc="Crosshair only" >*/
-} GimpCursorMode;
-
-
#define GIMP_TYPE_CURSOR_PRECISION (gimp_cursor_precision_get_type ())
GType gimp_cursor_precision_get_type (void) G_GNUC_CONST;
@@ -43,43 +31,6 @@ typedef enum
} GimpCursorPrecision;
-#define GIMP_TYPE_CANVAS_PADDING_MODE (gimp_canvas_padding_mode_get_type ())
-
-GType gimp_canvas_padding_mode_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_CANVAS_PADDING_MODE_DEFAULT, /*< desc="From theme" >*/
- GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK, /*< desc="Light check color" >*/
- GIMP_CANVAS_PADDING_MODE_DARK_CHECK, /*< desc="Dark check color" >*/
- GIMP_CANVAS_PADDING_MODE_CUSTOM, /*< desc="Custom color" >*/
- GIMP_CANVAS_PADDING_MODE_RESET = -1 /*< skip >*/
-} GimpCanvasPaddingMode;
-
-
-#define GIMP_TYPE_SPACE_BAR_ACTION (gimp_space_bar_action_get_type ())
-
-GType gimp_space_bar_action_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_SPACE_BAR_ACTION_NONE, /*< desc="No action" >*/
- GIMP_SPACE_BAR_ACTION_PAN, /*< desc="Pan view" >*/
- GIMP_SPACE_BAR_ACTION_MOVE /*< desc="Switch to Move tool" >*/
-} GimpSpaceBarAction;
-
-
-#define GIMP_TYPE_ZOOM_QUALITY (gimp_zoom_quality_get_type ())
-
-GType gimp_zoom_quality_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_ZOOM_QUALITY_LOW, /*< desc="Low" >*/
- GIMP_ZOOM_QUALITY_HIGH /*< desc="High" >*/
-} GimpZoomQuality;
-
-
#define GIMP_TYPE_ZOOM_FOCUS (gimp_zoom_focus_get_type ())
GType gimp_zoom_focus_get_type (void) G_GNUC_CONST;
diff --git a/app/display/gimpdisplayshell-appearance.c b/app/display/gimpdisplayshell-appearance.c
index 3bc5bbd..269d3d9 100644
--- a/app/display/gimpdisplayshell-appearance.c
+++ b/app/display/gimpdisplayshell-appearance.c
@@ -25,6 +25,8 @@
#include "display-types.h"
+#include "config/gimpdisplayoptions.h"
+
#include "core/gimp.h"
#include "core/gimpcontext.h"
#include "core/gimpimage.h"
@@ -39,7 +41,6 @@
#include "gimpcanvas.h"
#include "gimpdisplay.h"
-#include "gimpdisplayoptions.h"
#include "gimpdisplayshell.h"
#include "gimpdisplayshell-appearance.h"
#include "gimpdisplayshell-expose.h"
diff --git a/app/display/gimpdisplayshell-handlers.c b/app/display/gimpdisplayshell-handlers.c
index 79e77d4..58b8cb8 100644
--- a/app/display/gimpdisplayshell-handlers.c
+++ b/app/display/gimpdisplayshell-handlers.c
@@ -27,6 +27,7 @@
#include "display-types.h"
#include "config/gimpdisplayconfig.h"
+#include "config/gimpdisplayoptions.h"
#include "core/gimp.h"
#include "core/gimpcontainer.h"
@@ -39,7 +40,6 @@
#include "widgets/gimpwidgets-utils.h"
#include "gimpdisplay.h"
-#include "gimpdisplayoptions.h"
#include "gimpdisplayshell.h"
#include "gimpdisplayshell-appearance.h"
#include "gimpdisplayshell-callbacks.h"
diff --git a/app/display/gimpdisplayshell.c b/app/display/gimpdisplayshell.c
index dddca53..e6c9d31 100644
--- a/app/display/gimpdisplayshell.c
+++ b/app/display/gimpdisplayshell.c
@@ -33,6 +33,7 @@
#include "config/gimpcoreconfig.h"
#include "config/gimpdisplayconfig.h"
+#include "config/gimpdisplayoptions.h"
#include "core/gimp.h"
#include "core/gimpchannel.h"
@@ -53,7 +54,6 @@
#include "gimpcanvas.h"
#include "gimpdisplay.h"
-#include "gimpdisplayoptions.h"
#include "gimpdisplayshell.h"
#include "gimpdisplayshell-appearance.h"
#include "gimpdisplayshell-callbacks.h"
diff --git a/app/widgets/widgets-enums.c b/app/widgets/widgets-enums.c
index e56215b..826edb1 100644
--- a/app/widgets/widgets-enums.c
+++ b/app/widgets/widgets-enums.c
@@ -164,64 +164,6 @@ gimp_color_pick_state_get_type (void)
}
GType
-gimp_cursor_format_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_CURSOR_FORMAT_BITMAP, "GIMP_CURSOR_FORMAT_BITMAP", "bitmap" },
- { GIMP_CURSOR_FORMAT_PIXBUF, "GIMP_CURSOR_FORMAT_PIXBUF", "pixbuf" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_CURSOR_FORMAT_BITMAP, NC_("cursor-format", "Black & white"), NULL },
- { GIMP_CURSOR_FORMAT_PIXBUF, NC_("cursor-format", "Fancy"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpCursorFormat", values);
- gimp_type_set_translation_context (type, "cursor-format");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
-GType
-gimp_help_browser_type_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_HELP_BROWSER_GIMP, "GIMP_HELP_BROWSER_GIMP", "gimp" },
- { GIMP_HELP_BROWSER_WEB_BROWSER, "GIMP_HELP_BROWSER_WEB_BROWSER", "web-browser" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_HELP_BROWSER_GIMP, NC_("help-browser-type", "GIMP help browser"), NULL },
- { GIMP_HELP_BROWSER_WEB_BROWSER, NC_("help-browser-type", "Web browser"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpHelpBrowserType", values);
- gimp_type_set_translation_context (type, "help-browser-type");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
-GType
gimp_histogram_scale_get_type (void)
{
static const GEnumValue values[] =
@@ -320,37 +262,6 @@ gimp_tag_entry_mode_get_type (void)
return type;
}
-GType
-gimp_window_hint_get_type (void)
-{
- static const GEnumValue values[] =
- {
- { GIMP_WINDOW_HINT_NORMAL, "GIMP_WINDOW_HINT_NORMAL", "normal" },
- { GIMP_WINDOW_HINT_UTILITY, "GIMP_WINDOW_HINT_UTILITY", "utility" },
- { GIMP_WINDOW_HINT_KEEP_ABOVE, "GIMP_WINDOW_HINT_KEEP_ABOVE", "keep-above" },
- { 0, NULL, NULL }
- };
-
- static const GimpEnumDesc descs[] =
- {
- { GIMP_WINDOW_HINT_NORMAL, NC_("window-hint", "Normal window"), NULL },
- { GIMP_WINDOW_HINT_UTILITY, NC_("window-hint", "Utility window"), NULL },
- { GIMP_WINDOW_HINT_KEEP_ABOVE, NC_("window-hint", "Keep above"), NULL },
- { 0, NULL, NULL }
- };
-
- static GType type = 0;
-
- if (G_UNLIKELY (! type))
- {
- type = g_enum_register_static ("GimpWindowHint", values);
- gimp_type_set_translation_context (type, "window-hint");
- gimp_enum_set_value_descriptions (type, descs);
- }
-
- return type;
-}
-
/* Generated data ends here */
diff --git a/app/widgets/widgets-enums.h b/app/widgets/widgets-enums.h
index 13df471..8404478 100644
--- a/app/widgets/widgets-enums.h
+++ b/app/widgets/widgets-enums.h
@@ -83,28 +83,6 @@ typedef enum
} GimpColorPickState;
-#define GIMP_TYPE_CURSOR_FORMAT (gimp_cursor_format_get_type ())
-
-GType gimp_cursor_format_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_CURSOR_FORMAT_BITMAP, /*< desc="Black & white" >*/
- GIMP_CURSOR_FORMAT_PIXBUF /*< desc="Fancy" >*/
-} GimpCursorFormat;
-
-
-#define GIMP_TYPE_HELP_BROWSER_TYPE (gimp_help_browser_type_get_type ())
-
-GType gimp_help_browser_type_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_HELP_BROWSER_GIMP, /*< desc="GIMP help browser" >*/
- GIMP_HELP_BROWSER_WEB_BROWSER /*< desc="Web browser" >*/
-} GimpHelpBrowserType;
-
-
#define GIMP_TYPE_HISTOGRAM_SCALE (gimp_histogram_scale_get_type ())
GType gimp_histogram_scale_get_type (void) G_GNUC_CONST;
@@ -144,18 +122,6 @@ typedef enum
} GimpTagEntryMode;
-#define GIMP_TYPE_WINDOW_HINT (gimp_window_hint_get_type ())
-
-GType gimp_window_hint_get_type (void) G_GNUC_CONST;
-
-typedef enum
-{
- GIMP_WINDOW_HINT_NORMAL, /*< desc="Normal window" >*/
- GIMP_WINDOW_HINT_UTILITY, /*< desc="Utility window" >*/
- GIMP_WINDOW_HINT_KEEP_ABOVE /*< desc="Keep above" >*/
-} GimpWindowHint;
-
-
/*
* non-registered enums; register them if needed
*/
diff --git a/devel-docs/gimp-module-dependencies.svg b/devel-docs/gimp-module-dependencies.svg
index 9778ed8..f0a36e1 100644
--- a/devel-docs/gimp-module-dependencies.svg
+++ b/devel-docs/gimp-module-dependencies.svg
@@ -1,385 +1,393 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
-]>
-<!-- Generated by Graphviz version 2.20.2 (Wed Dec 30 22:01:07 UTC 2009)
- For user: (martin) Martin Nordholts,,, -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
<!-- Title: _anonymous_0 Pages: 1 -->
-<svg width="738pt" height="1628pt"
- viewBox="0.00 0.00 738.00 1628.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1624)">
+<svg width="862pt" height="1008pt"
+ viewBox="0.00 0.00 862.00 1008.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 1004)">
<title>_anonymous_0</title>
-<polygon style="fill:white;stroke:white;" points="-4,4 -4,-1624 734,-1624 734,4 -4,4"/>
-<!-- app/tests -->
-<g id="node1" class="node"><title>app/tests</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="125" cy="-1602" rx="54.8957" ry="18"/>
-<text text-anchor="middle" x="125" y="-1597.9" style="font-family:Times New Roman;font-size:14.00;">app/tests</text>
-</g>
-<!-- app/vectors -->
-<g id="node2" class="node"><title>app/vectors</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="125" cy="-1530" rx="66.2071" ry="18"/>
-<text text-anchor="middle" x="125" y="-1525.9" style="font-family:Times New Roman;font-size:14.00;">app/vectors</text>
+<polygon fill="white" stroke="white" points="-4,5 -4,-1004 859,-1004 859,5 -4,5"/>
+<!-- app/plug-in -->
+<g id="node1" class="node"><title>app/plug-in</title>
+<ellipse fill="lawngreen" stroke="black" cx="128" cy="-981" rx="55.8614" ry="19.0919"/>
+<text text-anchor="middle" x="128" y="-977.9" font-family="Times Roman,serif" font-size="14.00">app/plug-in</text>
</g>
-<!-- app/tests->app/vectors -->
-<g id="edge2" class="edge"><title>app/tests->app/vectors</title>
-<path style="fill:none;stroke:black;" d="M125,-1584C125,-1576 125,-1567 125,-1558"/>
-<polygon style="fill:black;stroke:black;" points="128.5,-1558 125,-1548 121.5,-1558 128.5,-1558"/>
+<!-- app/composite -->
+<g id="node2" class="node"><title>app/composite</title>
+<ellipse fill="lawngreen" stroke="black" cx="176" cy="-907" rx="67.8823" ry="19.0919"/>
+<text text-anchor="middle" x="176" y="-903.9" font-family="Times Roman,serif" font-size="14.00">app/composite</text>
</g>
-<!-- app/core -->
-<g id="node4" class="node"><title>app/core</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="176" cy="-1458" rx="52.1162" ry="18"/>
-<text text-anchor="middle" x="176" y="-1453.9" style="font-family:Times New Roman;font-size:14.00;">app/core</text>
+<!-- app/plug-in->app/composite -->
+<g id="edge2" class="edge"><title>app/plug-in->app/composite</title>
+<path fill="none" stroke="black" d="M140.112,-962.327C145.585,-953.891 152.16,-943.754 158.178,-934.475"/>
+<polygon fill="black" stroke="black" points="161.219,-936.219 163.724,-925.925 155.346,-932.41 161.219,-936.219"/>
</g>
-<!-- app/vectors->app/core -->
-<g id="edge4" class="edge"><title>app/vectors->app/core</title>
-<path style="fill:none;stroke:black;" d="M138,-1512C144,-1504 151,-1493 158,-1484"/>
-<polygon style="fill:black;stroke:black;" points="160.8,-1486.1 164,-1476 155.2,-1481.9 160.8,-1486.1"/>
+<!-- app/base -->
+<g id="node4" class="node"><title>app/base</title>
+<ellipse fill="lawngreen" stroke="black" cx="285" cy="-833" rx="44.7575" ry="19.0919"/>
+<text text-anchor="middle" x="285" y="-829.9" font-family="Times Roman,serif" font-size="14.00">app/base</text>
</g>
-<!-- app/xcf -->
-<g id="node6" class="node"><title>app/xcf</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="328" cy="-1386" rx="45.1673" ry="18"/>
-<text text-anchor="middle" x="328" y="-1381.9" style="font-family:Times New Roman;font-size:14.00;">app/xcf</text>
+<!-- app/composite->app/base -->
+<g id="edge4" class="edge"><title>app/composite->app/base</title>
+<path fill="none" stroke="black" d="M202.108,-889.275C217.2,-879.029 236.322,-866.047 252.396,-855.135"/>
+<polygon fill="black" stroke="black" points="254.66,-857.828 260.968,-849.315 250.728,-852.037 254.66,-857.828"/>
</g>
-<!-- app/core->app/xcf -->
-<g id="edge6" class="edge"><title>app/core->app/xcf</title>
-<path style="fill:none;stroke:black;" d="M207,-1443C231,-1431 264,-1416 290,-1404"/>
-<polygon style="fill:black;stroke:black;" points="291.283,-1407.26 299,-1400 288.44,-1400.86 291.283,-1407.26"/>
+<!-- app/config -->
+<g id="node11" class="node"><title>app/config</title>
+<ellipse fill="lawngreen" stroke="black" cx="311" cy="-759" rx="51.8276" ry="19.0919"/>
+<text text-anchor="middle" x="311" y="-755.9" font-family="Times Roman,serif" font-size="14.00">app/config</text>
</g>
-<!-- Cairo -->
-<g id="node8" class="node"><title>Cairo</title>
-<ellipse style="fill:lightblue;stroke:black;" cx="198" cy="-1386" rx="36.1339" ry="18"/>
-<text text-anchor="middle" x="198" y="-1381.9" style="font-family:Times New Roman;font-size:14.00;">Cairo</text>
+<!-- app/base->app/config -->
+<g id="edge10" class="edge"><title>app/base->app/config</title>
+<path fill="none" stroke="black" d="M291.696,-813.943C294.516,-805.916 297.859,-796.402 300.964,-787.565"/>
+<polygon fill="black" stroke="black" points="304.314,-788.587 304.327,-777.992 297.71,-786.267 304.314,-788.587"/>
</g>
-<!-- app/core->Cairo -->
-<g id="edge8" class="edge"><title>app/core->Cairo</title>
-<path style="fill:none;stroke:black;" d="M182,-1440C184,-1432 187,-1422 190,-1414"/>
-<polygon style="fill:black;stroke:black;" points="193.479,-1414.58 193,-1404 186.774,-1412.57 193.479,-1414.58"/>
+<!-- libgimpcolor -->
+<g id="node6" class="node"><title>libgimpcolor</title>
+<ellipse fill="#ff7256" stroke="black" cx="418" cy="-167" rx="61.0181" ry="19.0919"/>
+<text text-anchor="middle" x="418" y="-163.9" font-family="Times Roman,serif" font-size="14.00">libgimpcolor</text>
</g>
-<!-- app/plug-in -->
-<g id="node17" class="node"><title>app/plug-in</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-1314" rx="64.1231" ry="18"/>
-<text text-anchor="middle" x="359" y="-1309.9" style="font-family:Times New Roman;font-size:14.00;">app/plug-in</text>
+<!-- libgimpmath -->
+<g id="node7" class="node"><title>libgimpmath</title>
+<ellipse fill="#ff7256" stroke="black" cx="418" cy="-93" rx="61.0181" ry="19.0919"/>
+<text text-anchor="middle" x="418" y="-89.9" font-family="Times Roman,serif" font-size="14.00">libgimpmath</text>
</g>
-<!-- app/xcf->app/plug-in -->
-<g id="edge20" class="edge"><title>app/xcf->app/plug-in</title>
-<path style="fill:none;stroke:black;" d="M336,-1368C340,-1360 344,-1350 347,-1342"/>
-<polygon style="fill:black;stroke:black;" points="350.536,-1342.58 351,-1332 344.036,-1339.98 350.536,-1342.58"/>
+<!-- libgimpcolor->libgimpmath -->
+<g id="edge6" class="edge"><title>libgimpcolor->libgimpmath</title>
+<path fill="none" stroke="black" d="M418,-147.943C418,-140.149 418,-130.954 418,-122.338"/>
+<polygon fill="black" stroke="black" points="421.5,-122.249 418,-112.249 414.5,-122.249 421.5,-122.249"/>
</g>
-<!-- app/widgets -->
-<g id="node10" class="node"><title>app/widgets</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="516" cy="-738" rx="68.7933" ry="18"/>
-<text text-anchor="middle" x="516" y="-733.9" style="font-family:Times New Roman;font-size:14.00;">app/widgets</text>
+<!-- GLib -->
+<g id="node9" class="node"><title>GLib</title>
+<ellipse fill="lightblue" stroke="black" cx="418" cy="-19" rx="31.8198" ry="19.0919"/>
+<text text-anchor="middle" x="418" y="-15.9" font-family="Times Roman,serif" font-size="14.00">GLib</text>
</g>
-<!-- app/dialogs -->
-<g id="node11" class="node"><title>app/dialogs</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="516" cy="-666" rx="64.1231" ry="18"/>
-<text text-anchor="middle" x="516" y="-661.9" style="font-family:Times New Roman;font-size:14.00;">app/dialogs</text>
+<!-- libgimpmath->GLib -->
+<g id="edge8" class="edge"><title>libgimpmath->GLib</title>
+<path fill="none" stroke="black" d="M418,-73.9432C418,-66.1493 418,-56.9538 418,-48.3381"/>
+<polygon fill="black" stroke="black" points="421.5,-48.2494 418,-38.2495 414.5,-48.2495 421.5,-48.2494"/>
</g>
-<!-- app/widgets->app/dialogs -->
-<g id="edge10" class="edge"><title>app/widgets->app/dialogs</title>
-<path style="fill:none;stroke:black;" d="M516,-720C516,-712 516,-703 516,-694"/>
-<polygon style="fill:black;stroke:black;" points="519.5,-694 516,-684 512.5,-694 519.5,-694"/>
+<!-- app/core -->
+<g id="node14" class="node"><title>app/core</title>
+<ellipse fill="lawngreen" stroke="black" cx="336" cy="-685" rx="44.0472" ry="19.0919"/>
+<text text-anchor="middle" x="336" y="-681.9" font-family="Times Roman,serif" font-size="14.00">app/core</text>
</g>
-<!-- libgimpmodule -->
-<g id="node13" class="node"><title>libgimpmodule</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="580" cy="-378" rx="79.9115" ry="18"/>
-<text text-anchor="middle" x="580" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">libgimpmodule</text>
+<!-- app/config->app/core -->
+<g id="edge26" class="edge"><title>app/config->app/core</title>
+<path fill="none" stroke="black" d="M317.438,-739.943C320.15,-731.916 323.364,-722.402 326.35,-713.565"/>
+<polygon fill="black" stroke="black" points="329.699,-714.586 329.584,-703.992 323.067,-712.346 329.699,-714.586"/>
</g>
-<!-- app/dialogs->libgimpmodule -->
-<g id="edge12" class="edge"><title>app/dialogs->libgimpmodule</title>
-<path style="fill:none;stroke:black;" d="M527,-648C533,-638 540,-624 544,-612 567,-540 576,-451 578,-406"/>
-<polygon style="fill:black;stroke:black;" points="581.488,-406.299 579,-396 574.522,-405.602 581.488,-406.299"/>
+<!-- GEGL -->
+<g id="node13" class="node"><title>GEGL</title>
+<ellipse fill="lightblue" stroke="black" cx="339" cy="-315" rx="36.977" ry="19.0919"/>
+<text text-anchor="middle" x="339" y="-311.9" font-family="Times Roman,serif" font-size="14.00">GEGL</text>
</g>
-<!-- app/gui -->
-<g id="node15" class="node"><title>app/gui</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="489" cy="-594" rx="45.8622" ry="18"/>
-<text text-anchor="middle" x="489" y="-589.9" style="font-family:Times New Roman;font-size:14.00;">app/gui</text>
+<!-- app/pdb -->
+<g id="node15" class="node"><title>app/pdb</title>
+<ellipse fill="lawngreen" stroke="black" cx="232" cy="-611" rx="41.9273" ry="19.0919"/>
+<text text-anchor="middle" x="232" y="-607.9" font-family="Times Roman,serif" font-size="14.00">app/pdb</text>
</g>
-<!-- app/dialogs->app/gui -->
-<g id="edge14" class="edge"><title>app/dialogs->app/gui</title>
-<path style="fill:none;stroke:black;" d="M509,-648C506,-640 503,-630 499,-622"/>
-<polygon style="fill:black;stroke:black;" points="502.226,-620.573 496,-612 495.521,-622.584 502.226,-620.573"/>
+<!-- app/core->app/pdb -->
+<g id="edge12" class="edge"><title>app/core->app/pdb</title>
+<path fill="none" stroke="black" d="M312.919,-668.577C298.276,-658.158 279.148,-644.548 263.166,-633.176"/>
+<polygon fill="black" stroke="black" points="264.836,-630.068 254.659,-627.122 260.777,-635.772 264.836,-630.068"/>
</g>
-<!-- libgimpbase -->
-<g id="node28" class="node"><title>libgimpbase</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="472" cy="-234" rx="66.2071" ry="18"/>
-<text text-anchor="middle" x="472" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">libgimpbase</text>
+<!-- app/gegl -->
+<g id="node17" class="node"><title>app/gegl</title>
+<ellipse fill="lawngreen" stroke="black" cx="336" cy="-611" rx="44.0472" ry="19.0919"/>
+<text text-anchor="middle" x="336" y="-607.9" font-family="Times Roman,serif" font-size="14.00">app/gegl</text>
</g>
-<!-- libgimpmodule->libgimpbase -->
-<g id="edge28" class="edge"><title>libgimpmodule->libgimpbase</title>
-<path style="fill:none;stroke:black;" d="M567,-360C548,-335 513,-289 491,-260"/>
-<polygon style="fill:black;stroke:black;" points="493.8,-257.9 485,-252 488.2,-262.1 493.8,-257.9"/>
+<!-- app/core->app/gegl -->
+<g id="edge14" class="edge"><title>app/core->app/gegl</title>
+<path fill="none" stroke="black" d="M330.012,-665.943C329.288,-658.088 329.08,-648.81 329.387,-640.136"/>
+<polygon fill="black" stroke="black" points="332.891,-640.19 330.018,-629.992 325.904,-639.756 332.891,-640.19"/>
</g>
-<!-- app/actions -->
-<g id="node34" class="node"><title>app/actions</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="477" cy="-522" rx="64.8203" ry="18"/>
-<text text-anchor="middle" x="477" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">app/actions</text>
+<!-- app/xcf -->
+<g id="node19" class="node"><title>app/xcf</title>
+<ellipse fill="lawngreen" stroke="black" cx="438" cy="-611" rx="39.8075" ry="19.0919"/>
+<text text-anchor="middle" x="438" y="-607.9" font-family="Times Roman,serif" font-size="14.00">app/xcf</text>
</g>
-<!-- app/gui->app/actions -->
-<g id="edge30" class="edge"><title>app/gui->app/actions</title>
-<path style="fill:none;stroke:black;" d="M486,-576C485,-568 483,-559 482,-550"/>
-<polygon style="fill:black;stroke:black;" points="485.393,-549.119 480,-540 478.529,-550.492 485.393,-549.119"/>
+<!-- app/core->app/xcf -->
+<g id="edge16" class="edge"><title>app/core->app/xcf</title>
+<path fill="none" stroke="black" d="M358.637,-668.577C372.998,-658.158 391.759,-644.548 407.434,-633.176"/>
+<polygon fill="black" stroke="black" points="409.738,-635.828 415.777,-627.122 405.628,-630.162 409.738,-635.828"/>
</g>
<!-- app/file -->
-<g id="node18" class="node"><title>app/file</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-1242" rx="45.8622" ry="18"/>
-<text text-anchor="middle" x="359" y="-1237.9" style="font-family:Times New Roman;font-size:14.00;">app/file</text>
+<g id="node21" class="node"><title>app/file</title>
+<ellipse fill="lawngreen" stroke="black" cx="80" cy="-537" rx="41.0122" ry="19.0919"/>
+<text text-anchor="middle" x="80" y="-533.9" font-family="Times Roman,serif" font-size="14.00">app/file</text>
</g>
-<!-- app/plug-in->app/file -->
-<g id="edge16" class="edge"><title>app/plug-in->app/file</title>
-<path style="fill:none;stroke:black;" d="M359,-1296C359,-1288 359,-1279 359,-1270"/>
-<polygon style="fill:black;stroke:black;" points="362.5,-1270 359,-1260 355.5,-1270 362.5,-1270"/>
+<!-- app/pdb->app/file -->
+<g id="edge18" class="edge"><title>app/pdb->app/file</title>
+<path fill="none" stroke="black" d="M203.41,-597.081C179.101,-585.246 144.017,-568.166 117.466,-555.24"/>
+<polygon fill="black" stroke="black" points="118.985,-552.087 108.462,-550.856 115.921,-558.381 118.985,-552.087"/>
</g>
-<!-- app/pdb -->
-<g id="node20" class="node"><title>app/pdb</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-1170" rx="48.1403" ry="18"/>
-<text text-anchor="middle" x="359" y="-1165.9" style="font-family:Times New Roman;font-size:14.00;">app/pdb</text>
-</g>
-<!-- app/file->app/pdb -->
-<g id="edge18" class="edge"><title>app/file->app/pdb</title>
-<path style="fill:none;stroke:black;" d="M359,-1224C359,-1216 359,-1207 359,-1198"/>
-<polygon style="fill:black;stroke:black;" points="362.5,-1198 359,-1188 355.5,-1198 362.5,-1198"/>
-</g>
-<!-- app/paint -->
-<g id="node25" class="node"><title>app/paint</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-1098" rx="55.7874" ry="18"/>
-<text text-anchor="middle" x="359" y="-1093.9" style="font-family:Times New Roman;font-size:14.00;">app/paint</text>
-</g>
-<!-- app/pdb->app/paint -->
-<g id="edge22" class="edge"><title>app/pdb->app/paint</title>
-<path style="fill:none;stroke:black;" d="M359,-1152C359,-1144 359,-1135 359,-1126"/>
-<polygon style="fill:black;stroke:black;" points="362.5,-1126 359,-1116 355.5,-1126 362.5,-1126"/>
+<!-- libgimpmodule -->
+<g id="node23" class="node"><title>libgimpmodule</title>
+<ellipse fill="#ff7256" stroke="black" cx="413" cy="-537" rx="70.9184" ry="19.0919"/>
+<text text-anchor="middle" x="413" y="-533.9" font-family="Times Roman,serif" font-size="14.00">libgimpmodule</text>
</g>
-<!-- GTK+ -->
-<g id="node23" class="node"><title>GTK+</title>
-<ellipse style="fill:lightblue;stroke:black;" cx="241" cy="-306" rx="39.1069" ry="18"/>
-<text text-anchor="middle" x="241" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">GTK+</text>
+<!-- app/pdb->libgimpmodule -->
+<g id="edge20" class="edge"><title>app/pdb->libgimpmodule</title>
+<path fill="none" stroke="black" d="M263.528,-598.11C291.34,-586.739 332.313,-569.988 364.331,-556.898"/>
+<polygon fill="black" stroke="black" points="366.024,-559.987 373.955,-552.963 363.375,-553.508 366.024,-559.987"/>
</g>
-<!-- GEGL -->
-<g id="node24" class="node"><title>GEGL</title>
-<ellipse style="fill:lightblue;stroke:black;" cx="145" cy="-306" rx="38.9134" ry="18"/>
-<text text-anchor="middle" x="145" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">GEGL</text>
+<!-- app/gegl->app/core -->
+<g id="edge22" class="edge"><title>app/gegl->app/core</title>
+<path fill="none" stroke="black" d="M341.982,-629.992C342.709,-637.839 342.92,-647.115 342.615,-655.792"/>
+<polygon fill="black" stroke="black" points="339.111,-655.746 341.988,-665.943 346.098,-656.178 339.111,-655.746"/>
</g>
-<!-- app/paint-funcs -->
-<g id="node38" class="node"><title>app/paint-funcs</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-1026" rx="84.7756" ry="18"/>
-<text text-anchor="middle" x="359" y="-1021.9" style="font-family:Times New Roman;font-size:14.00;">app/paint-funcs</text>
+<!-- app/text -->
+<g id="node26" class="node"><title>app/text</title>
+<ellipse fill="lawngreen" stroke="black" cx="282" cy="-537" rx="41.9273" ry="19.0919"/>
+<text text-anchor="middle" x="282" y="-533.9" font-family="Times Roman,serif" font-size="14.00">app/text</text>
</g>
-<!-- app/paint->app/paint-funcs -->
-<g id="edge34" class="edge"><title>app/paint->app/paint-funcs</title>
-<path style="fill:none;stroke:black;" d="M359,-1080C359,-1072 359,-1063 359,-1054"/>
-<polygon style="fill:black;stroke:black;" points="362.5,-1054 359,-1044 355.5,-1054 362.5,-1054"/>
+<!-- app/xcf->app/text -->
+<g id="edge24" class="edge"><title>app/xcf->app/text</title>
+<path fill="none" stroke="black" d="M409.387,-597.427C384.444,-585.595 348.056,-568.334 320.55,-555.287"/>
+<polygon fill="black" stroke="black" points="321.76,-551.987 311.225,-550.863 318.76,-558.311 321.76,-551.987"/>
</g>
-<!-- GLib -->
-<g id="node27" class="node"><title>GLib</title>
-<ellipse style="fill:lightblue;stroke:black;" cx="472" cy="-18" rx="32.8565" ry="18"/>
-<text text-anchor="middle" x="472" y="-13.9" style="font-family:Times New Roman;font-size:14.00;">GLib</text>
+<!-- app/file->app/plug-in -->
+<g id="edge32" class="edge"><title>app/file->app/plug-in</title>
+<path fill="none" stroke="black" d="M80,-556.158C80,-584.37 80,-638.75 80,-685 80,-833 80,-833 80,-833 80,-875.187 84.7969,-886.276 99,-926 102.309,-935.256 106.934,-944.886 111.519,-953.453"/>
+<polygon fill="black" stroke="black" points="108.498,-955.223 116.415,-962.264 114.617,-951.823 108.498,-955.223"/>
</g>
-<!-- libgimpcolor -->
-<g id="node29" class="node"><title>libgimpcolor</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="472" cy="-162" rx="68.0985" ry="18"/>
-<text text-anchor="middle" x="472" y="-157.9" style="font-family:Times New Roman;font-size:14.00;">libgimpcolor</text>
+<!-- libgimpthumb -->
+<g id="node34" class="node"><title>libgimpthumb</title>
+<ellipse fill="#ff7256" stroke="black" cx="67" cy="-389" rx="67.1751" ry="19.0919"/>
+<text text-anchor="middle" x="67" y="-385.9" font-family="Times Roman,serif" font-size="14.00">libgimpthumb</text>
</g>
-<!-- libgimpbase->libgimpcolor -->
-<g id="edge24" class="edge"><title>libgimpbase->libgimpcolor</title>
-<path style="fill:none;stroke:black;" d="M472,-216C472,-208 472,-199 472,-190"/>
-<polygon style="fill:black;stroke:black;" points="475.5,-190 472,-180 468.5,-190 475.5,-190"/>
+<!-- app/file->libgimpthumb -->
+<g id="edge34" class="edge"><title>app/file->libgimpthumb</title>
+<path fill="none" stroke="black" d="M78.3271,-517.955C76.1162,-492.784 72.1982,-448.18 69.5998,-418.598"/>
+<polygon fill="black" stroke="black" points="73.0694,-418.098 68.7078,-408.442 66.0963,-418.71 73.0694,-418.098"/>
</g>
-<!-- libgimpmath -->
-<g id="node31" class="node"><title>libgimpmath</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="472" cy="-90" rx="70.1831" ry="18"/>
-<text text-anchor="middle" x="472" y="-85.9" style="font-family:Times New Roman;font-size:14.00;">libgimpmath</text>
+<!-- libgimpbase -->
+<g id="node29" class="node"><title>libgimpbase</title>
+<ellipse fill="#ff7256" stroke="black" cx="418" cy="-241" rx="58.1882" ry="19.0919"/>
+<text text-anchor="middle" x="418" y="-237.9" font-family="Times Roman,serif" font-size="14.00">libgimpbase</text>
</g>
-<!-- libgimpcolor->libgimpmath -->
-<g id="edge26" class="edge"><title>libgimpcolor->libgimpmath</title>
-<path style="fill:none;stroke:black;" d="M472,-144C472,-136 472,-127 472,-118"/>
-<polygon style="fill:black;stroke:black;" points="475.5,-118 472,-108 468.5,-118 475.5,-118"/>
+<!-- libgimpmodule->libgimpbase -->
+<g id="edge36" class="edge"><title>libgimpmodule->libgimpbase</title>
+<path fill="none" stroke="black" d="M413.328,-517.579C414.183,-466.967 416.483,-330.777 417.503,-270.452"/>
+<polygon fill="black" stroke="black" points="421.008,-270.166 417.677,-260.108 414.009,-270.048 421.008,-270.166"/>
</g>
-<!-- libgimpmath->GLib -->
-<g id="edge48" class="edge"><title>libgimpmath->GLib</title>
-<path style="fill:none;stroke:black;" d="M472,-72C472,-64 472,-55 472,-46"/>
-<polygon style="fill:black;stroke:black;" points="475.5,-46 472,-36 468.5,-46 475.5,-46"/>
+<!-- app/vectors -->
+<g id="node56" class="node"><title>app/vectors</title>
+<ellipse fill="lawngreen" stroke="black" cx="334" cy="-463" rx="55.8614" ry="19.0919"/>
+<text text-anchor="middle" x="334" y="-459.9" font-family="Times Roman,serif" font-size="14.00">app/vectors</text>
</g>
-<!-- libgimpthumb -->
-<g id="node55" class="node"><title>libgimpthumb</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="472" cy="-450" rx="75.9375" ry="18"/>
-<text text-anchor="middle" x="472" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">libgimpthumb</text>
+<!-- app/text->app/vectors -->
+<g id="edge76" class="edge"><title>app/text->app/vectors</title>
+<path fill="none" stroke="black" d="M294.854,-518.708C300.933,-510.057 308.313,-499.554 315.02,-490.01"/>
+<polygon fill="black" stroke="black" points="318.047,-491.79 320.933,-481.596 312.32,-487.765 318.047,-491.79"/>
</g>
-<!-- app/actions->libgimpthumb -->
-<g id="edge54" class="edge"><title>app/actions->libgimpthumb</title>
-<path style="fill:none;stroke:black;" d="M476,-504C475,-496 475,-487 474,-478"/>
-<polygon style="fill:black;stroke:black;" points="477.478,-477.602 473,-468 470.512,-478.299 477.478,-477.602"/>
+<!-- Pango -->
+<g id="node70" class="node"><title>Pango</title>
+<ellipse fill="lightblue" stroke="black" cx="225" cy="-463" rx="34.8574" ry="19.0919"/>
+<text text-anchor="middle" x="225" y="-459.9" font-family="Times Roman,serif" font-size="14.00">Pango</text>
</g>
-<!-- app/menus -->
-<g id="node57" class="node"><title>app/menus</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="667" cy="-450" rx="63.2343" ry="18"/>
-<text text-anchor="middle" x="667" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">app/menus</text>
+<!-- app/text->Pango -->
+<g id="edge78" class="edge"><title>app/text->Pango</title>
+<path fill="none" stroke="black" d="M267.91,-518.708C260.905,-509.613 252.323,-498.471 244.679,-488.549"/>
+<polygon fill="black" stroke="black" points="247.41,-486.359 238.535,-480.572 241.865,-490.63 247.41,-486.359"/>
</g>
-<!-- app/actions->app/menus -->
-<g id="edge56" class="edge"><title>app/actions->app/menus</title>
-<path style="fill:none;stroke:black;" d="M515,-507C545,-496 587,-480 619,-468"/>
-<polygon style="fill:black;stroke:black;" points="621.015,-470.964 629,-464 618.415,-464.464 621.015,-470.964"/>
+<!-- libgimpbase->libgimpcolor -->
+<g id="edge28" class="edge"><title>libgimpbase->libgimpcolor</title>
+<path fill="none" stroke="black" d="M418,-221.943C418,-214.149 418,-204.954 418,-196.338"/>
+<polygon fill="black" stroke="black" points="421.5,-196.249 418,-186.249 414.5,-196.249 421.5,-196.249"/>
</g>
-<!-- app/tools -->
-<g id="node59" class="node"><title>app/tools</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="216" cy="-450" rx="54.2008" ry="18"/>
-<text text-anchor="middle" x="216" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">app/tools</text>
+<!-- libgimpconfig -->
+<g id="node31" class="node"><title>libgimpconfig</title>
+<ellipse fill="#ff7256" stroke="black" cx="512" cy="-315" rx="65.9683" ry="19.0919"/>
+<text text-anchor="middle" x="512" y="-311.9" font-family="Times Roman,serif" font-size="14.00">libgimpconfig</text>
</g>
-<!-- app/actions->app/tools -->
-<g id="edge58" class="edge"><title>app/actions->app/tools</title>
-<path style="fill:none;stroke:black;" d="M431,-509C390,-498 331,-482 279,-468 275,-467 271,-466 267,-465"/>
-<polygon style="fill:black;stroke:black;" points="267.584,-461.521 257,-462 265.573,-468.226 267.584,-461.521"/>
+<!-- libgimpconfig->libgimpbase -->
+<g id="edge30" class="edge"><title>libgimpconfig->libgimpbase</title>
+<path fill="none" stroke="black" d="M489.245,-297.087C477.006,-287.452 461.747,-275.439 448.493,-265.005"/>
+<polygon fill="black" stroke="black" points="450.568,-262.184 440.545,-258.748 446.238,-267.684 450.568,-262.184"/>
</g>
-<!-- app/display -->
-<g id="node36" class="node"><title>app/display</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="516" cy="-810" rx="64.1231" ry="18"/>
-<text text-anchor="middle" x="516" y="-805.9" style="font-family:Times New Roman;font-size:14.00;">app/display</text>
+<!-- libgimpthumb->libgimpbase -->
+<g id="edge38" class="edge"><title>libgimpthumb->libgimpbase</title>
+<path fill="none" stroke="black" d="M72.6671,-369.993C80.1177,-348.474 95.3615,-314.069 121,-296 157.281,-270.43 275.454,-254.627 351.346,-246.855"/>
+<polygon fill="black" stroke="black" points="352.16,-250.291 361.761,-245.811 351.462,-243.326 352.16,-250.291"/>
</g>
-<!-- app/display->app/widgets -->
-<g id="edge32" class="edge"><title>app/display->app/widgets</title>
-<path style="fill:none;stroke:black;" d="M516,-792C516,-784 516,-775 516,-766"/>
-<polygon style="fill:black;stroke:black;" points="519.5,-766 516,-756 512.5,-766 519.5,-766"/>
+<!-- Cairo -->
+<g id="node38" class="node"><title>Cairo</title>
+<ellipse fill="lightblue" stroke="black" cx="241" cy="-389" rx="33.234" ry="19.0919"/>
+<text text-anchor="middle" x="241" y="-385.9" font-family="Times Roman,serif" font-size="14.00">Cairo</text>
</g>
-<!-- app/base -->
-<g id="node40" class="node"><title>app/base</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-954" rx="53.0059" ry="18"/>
-<text text-anchor="middle" x="359" y="-949.9" style="font-family:Times New Roman;font-size:14.00;">app/base</text>
+<!-- app/actions -->
+<g id="node39" class="node"><title>app/actions</title>
+<ellipse fill="lawngreen" stroke="black" cx="799" cy="-315" rx="55.1543" ry="19.0919"/>
+<text text-anchor="middle" x="799" y="-311.9" font-family="Times Roman,serif" font-size="14.00">app/actions</text>
</g>
-<!-- app/paint-funcs->app/base -->
-<g id="edge36" class="edge"><title>app/paint-funcs->app/base</title>
-<path style="fill:none;stroke:black;" d="M359,-1008C359,-1000 359,-991 359,-982"/>
-<polygon style="fill:black;stroke:black;" points="362.5,-982 359,-972 355.5,-982 362.5,-982"/>
+<!-- app/dialogs -->
+<g id="node40" class="node"><title>app/dialogs</title>
+<ellipse fill="lawngreen" stroke="black" cx="756" cy="-685" rx="55.8614" ry="19.0919"/>
+<text text-anchor="middle" x="756" y="-681.9" font-family="Times Roman,serif" font-size="14.00">app/dialogs</text>
</g>
-<!-- app/config -->
-<g id="node42" class="node"><title>app/config</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="516" cy="-882" rx="59.7599" ry="18"/>
-<text text-anchor="middle" x="516" y="-877.9" style="font-family:Times New Roman;font-size:14.00;">app/config</text>
+<!-- app/actions->app/dialogs -->
+<g id="edge40" class="edge"><title>app/actions->app/dialogs</title>
+<path fill="none" stroke="black" d="M807.896,-334.161C819.955,-361.932 840,-415.275 840,-463 840,-537 840,-537 840,-537 840,-581.164 827.852,-592.208 805,-630 798.654,-640.495 790.185,-650.846 782.075,-659.688"/>
+<polygon fill="black" stroke="black" points="779.448,-657.372 775.103,-667.035 784.526,-662.19 779.448,-657.372"/>
</g>
-<!-- app/base->app/config -->
-<g id="edge38" class="edge"><title>app/base->app/config</title>
-<path style="fill:none;stroke:black;" d="M391,-939C415,-928 448,-913 474,-901"/>
-<polygon style="fill:black;stroke:black;" points="475.283,-904.26 483,-897 472.44,-897.863 475.283,-904.26"/>
+<!-- app/gui -->
+<g id="node42" class="node"><title>app/gui</title>
+<ellipse fill="lawngreen" stroke="black" cx="756" cy="-611" rx="39.8075" ry="19.0919"/>
+<text text-anchor="middle" x="756" y="-607.9" font-family="Times Roman,serif" font-size="14.00">app/gui</text>
</g>
-<!-- app/composite -->
-<g id="node44" class="node"><title>app/composite</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="359" cy="-882" rx="79.2166" ry="18"/>
-<text text-anchor="middle" x="359" y="-877.9" style="font-family:Times New Roman;font-size:14.00;">app/composite</text>
+<!-- app/dialogs->app/gui -->
+<g id="edge42" class="edge"><title>app/dialogs->app/gui</title>
+<path fill="none" stroke="black" d="M756,-665.943C756,-658.149 756,-648.954 756,-640.338"/>
+<polygon fill="black" stroke="black" points="759.5,-640.249 756,-630.249 752.5,-640.249 759.5,-640.249"/>
</g>
-<!-- app/base->app/composite -->
-<g id="edge40" class="edge"><title>app/base->app/composite</title>
-<path style="fill:none;stroke:black;" d="M353,-936C352,-928 352,-919 352,-910"/>
-<polygon style="fill:black;stroke:black;" points="355.488,-910.299 353,-900 348.522,-909.602 355.488,-910.299"/>
+<!-- app/display -->
+<g id="node44" class="node"><title>app/display</title>
+<ellipse fill="lawngreen" stroke="black" cx="756" cy="-537" rx="55.8614" ry="19.0919"/>
+<text text-anchor="middle" x="756" y="-533.9" font-family="Times Roman,serif" font-size="14.00">app/display</text>
</g>
-<!-- app/config->app/display -->
-<g id="edge42" class="edge"><title>app/config->app/display</title>
-<path style="fill:none;stroke:black;" d="M516,-864C516,-856 516,-847 516,-838"/>
-<polygon style="fill:black;stroke:black;" points="519.5,-838 516,-828 512.5,-838 519.5,-838"/>
+<!-- app/gui->app/display -->
+<g id="edge44" class="edge"><title>app/gui->app/display</title>
+<path fill="none" stroke="black" d="M756,-591.943C756,-584.149 756,-574.954 756,-566.338"/>
+<polygon fill="black" stroke="black" points="759.5,-566.249 756,-556.249 752.5,-566.249 759.5,-566.249"/>
</g>
-<!-- app/composite->app/base -->
-<g id="edge44" class="edge"><title>app/composite->app/base</title>
-<path style="fill:none;stroke:black;" d="M365,-900C366,-908 366,-917 366,-926"/>
-<polygon style="fill:black;stroke:black;" points="362.512,-925.701 365,-936 369.478,-926.398 362.512,-925.701"/>
+<!-- app/widgets -->
+<g id="node50" class="node"><title>app/widgets</title>
+<ellipse fill="lawngreen" stroke="black" cx="754" cy="-463" rx="57.9828" ry="19.0919"/>
+<text text-anchor="middle" x="754" y="-459.9" font-family="Times Roman,serif" font-size="14.00">app/widgets</text>
</g>
-<!-- libgimpconfig -->
-<g id="node48" class="node"><title>libgimpconfig</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="371" cy="-306" rx="72.9626" ry="18"/>
-<text text-anchor="middle" x="371" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">libgimpconfig</text>
+<!-- app/display->app/widgets -->
+<g id="edge50" class="edge"><title>app/display->app/widgets</title>
+<path fill="none" stroke="black" d="M755.485,-517.943C755.274,-510.149 755.026,-500.954 754.793,-492.338"/>
+<polygon fill="black" stroke="black" points="758.289,-492.151 754.52,-482.249 751.292,-492.34 758.289,-492.151"/>
</g>
-<!-- libgimpconfig->libgimpbase -->
-<g id="edge46" class="edge"><title>libgimpconfig->libgimpbase</title>
-<path style="fill:none;stroke:black;" d="M395,-289C408,-280 425,-268 440,-257"/>
-<polygon style="fill:black;stroke:black;" points="442.1,-259.8 448,-251 437.9,-254.2 442.1,-259.8"/>
+<!-- libgimpwidgets -->
+<g id="node46" class="node"><title>libgimpwidgets</title>
+<ellipse fill="#ff7256" stroke="black" cx="573" cy="-537" rx="70.9184" ry="19.0919"/>
+<text text-anchor="middle" x="573" y="-533.9" font-family="Times Roman,serif" font-size="14.00">libgimpwidgets</text>
</g>
-<!-- app/text -->
-<g id="node51" class="node"><title>app/text</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="51" cy="-378" rx="50.9221" ry="18"/>
-<text text-anchor="middle" x="51" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">app/text</text>
+<!-- libgimpwidgets->libgimpconfig -->
+<g id="edge46" class="edge"><title>libgimpwidgets->libgimpconfig</title>
+<path fill="none" stroke="black" d="M554.592,-518.249C545.949,-508.295 536.384,-495.374 531,-482 512.661,-436.447 510.223,-378.617 510.704,-344.337"/>
+<polygon fill="black" stroke="black" points="514.209,-344.16 510.947,-334.08 507.211,-343.994 514.209,-344.16"/>
</g>
-<!-- app/text->app/vectors -->
-<g id="edge50" class="edge"><title>app/text->app/vectors</title>
-<path style="fill:none;stroke:black;" d="M56,-396C63,-423 75,-476 75,-522 75,-1386 75,-1386 75,-1386 75,-1428 95,-1474 109,-1503"/>
-<polygon style="fill:black;stroke:black;" points="106.084,-1504.96 114,-1512 112.203,-1501.56 106.084,-1504.96"/>
+<!-- GTK+ -->
+<g id="node48" class="node"><title>GTK+</title>
+<ellipse fill="lightblue" stroke="black" cx="577" cy="-463" rx="36.977" ry="19.0919"/>
+<text text-anchor="middle" x="577" y="-459.9" font-family="Times Roman,serif" font-size="14.00">GTK+</text>
</g>
-<!-- Pango -->
-<g id="node53" class="node"><title>Pango</title>
-<ellipse style="fill:lightblue;stroke:black;" cx="48" cy="-306" rx="39.8056" ry="18"/>
-<text text-anchor="middle" x="48" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">Pango</text>
+<!-- libgimpwidgets->GTK+ -->
+<g id="edge48" class="edge"><title>libgimpwidgets->GTK+</title>
+<path fill="none" stroke="black" d="M574.03,-517.943C574.451,-510.149 574.948,-500.954 575.414,-492.338"/>
+<polygon fill="black" stroke="black" points="578.915,-492.424 575.959,-482.249 571.925,-492.046 578.915,-492.424"/>
</g>
-<!-- app/text->Pango -->
-<g id="edge52" class="edge"><title>app/text->Pango</title>
-<path style="fill:none;stroke:black;" d="M50,-360C49,-352 49,-343 49,-334"/>
-<polygon style="fill:black;stroke:black;" points="52.5001,-334 49,-324 45.5001,-334 52.5001,-334"/>
+<!-- app/menus -->
+<g id="node52" class="node"><title>app/menus</title>
+<ellipse fill="lawngreen" stroke="black" cx="756" cy="-389" rx="53.2379" ry="19.0919"/>
+<text text-anchor="middle" x="756" y="-385.9" font-family="Times Roman,serif" font-size="14.00">app/menus</text>
</g>
-<!-- libgimpthumb->libgimpbase -->
-<g id="edge60" class="edge"><title>libgimpthumb->libgimpbase</title>
-<path style="fill:none;stroke:black;" d="M472,-432C472,-394 472,-307 472,-262"/>
-<polygon style="fill:black;stroke:black;" points="475.5,-262 472,-252 468.5,-262 475.5,-262"/>
+<!-- app/widgets->app/menus -->
+<g id="edge52" class="edge"><title>app/widgets->app/menus</title>
+<path fill="none" stroke="black" d="M754.515,-443.943C754.726,-436.149 754.974,-426.954 755.207,-418.338"/>
+<polygon fill="black" stroke="black" points="758.708,-418.34 755.48,-408.249 751.711,-418.151 758.708,-418.34"/>
</g>
-<!-- app/menus->app/plug-in -->
-<g id="edge62" class="edge"><title>app/menus->app/plug-in</title>
-<path style="fill:none;stroke:black;" d="M661,-468C653,-495 640,-548 640,-594 640,-1170 640,-1170 640,-1170 640,-1263 514,-1296 431,-1308"/>
-<polygon style="fill:black;stroke:black;" points="430.602,-1304.52 421,-1309 431.299,-1311.49 430.602,-1304.52"/>
+<!-- app/tools -->
+<g id="node54" class="node"><title>app/tools</title>
+<ellipse fill="lawngreen" stroke="black" cx="641" cy="-759" rx="46.1672" ry="19.0919"/>
+<text text-anchor="middle" x="641" y="-755.9" font-family="Times Roman,serif" font-size="14.00">app/tools</text>
+</g>
+<!-- app/widgets->app/tools -->
+<g id="edge54" class="edge"><title>app/widgets->app/tools</title>
+<path fill="none" stroke="black" d="M727.313,-480.099C714.423,-489.715 699.864,-502.832 691,-518 651.098,-586.285 642.758,-681.803 641.199,-729.484"/>
+<polygon fill="black" stroke="black" points="637.694,-729.637 640.946,-739.72 644.692,-729.81 637.694,-729.637"/>
+</g>
+<!-- app/menus->app/actions -->
+<g id="edge66" class="edge"><title>app/menus->app/actions</title>
+<path fill="none" stroke="black" d="M766.851,-370.327C771.74,-361.913 777.611,-351.809 782.991,-342.55"/>
+<polygon fill="black" stroke="black" points="786.155,-344.072 788.153,-333.667 780.102,-340.555 786.155,-344.072"/>
+</g>
+<!-- app/tools->app/core -->
+<g id="edge68" class="edge"><title>app/tools->app/core</title>
+<path fill="none" stroke="black" d="M601.127,-749.326C545.412,-735.808 444.384,-711.296 384.418,-696.747"/>
+<polygon fill="black" stroke="black" points="384.983,-693.283 374.44,-694.326 383.333,-700.086 384.983,-693.283"/>
+</g>
+<!-- app/tools->app/dialogs -->
+<g id="edge70" class="edge"><title>app/tools->app/dialogs</title>
+<path fill="none" stroke="black" d="M665.953,-742.943C682.076,-732.569 703.289,-718.918 721.076,-707.473"/>
+<polygon fill="black" stroke="black" points="722.979,-710.41 729.495,-702.055 719.191,-704.524 722.979,-710.41"/>
</g>
-<!-- app/tools->app/text -->
-<g id="edge64" class="edge"><title>app/tools->app/text</title>
-<path style="fill:none;stroke:black;" d="M183,-436C157,-424 120,-409 92,-396"/>
-<polygon style="fill:black;stroke:black;" points="93.5596,-392.863 83,-392 90.7166,-399.26 93.5596,-392.863"/>
+<!-- app/tools->libgimpwidgets -->
+<g id="edge72" class="edge"><title>app/tools->libgimpwidgets</title>
+<path fill="none" stroke="black" d="M638.418,-739.973C633.758,-708.448 622.562,-643.73 603,-592 599.525,-582.81 594.767,-573.258 590.065,-564.744"/>
+<polygon fill="black" stroke="black" points="593.052,-562.918 585.047,-555.978 586.977,-566.395 593.052,-562.918"/>
</g>
-<!-- app/gegl -->
-<g id="node64" class="node"><title>app/gegl</title>
-<ellipse style="fill:lawngreen;stroke:black;" cx="171" cy="-378" rx="50.9221" ry="18"/>
-<text text-anchor="middle" x="171" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">app/gegl</text>
+<!-- app/vectors->Cairo -->
+<g id="edge56" class="edge"><title>app/vectors->Cairo</title>
+<path fill="none" stroke="black" d="M311.96,-445.463C298.849,-435.031 282.111,-421.712 268.184,-410.63"/>
+<polygon fill="black" stroke="black" points="270.362,-407.891 260.358,-404.403 266.004,-413.368 270.362,-407.891"/>
</g>
-<!-- app/tools->app/gegl -->
-<g id="edge66" class="edge"><title>app/tools->app/gegl</title>
-<path style="fill:none;stroke:black;" d="M205,-432C200,-424 193,-414 187,-404"/>
-<polygon style="fill:black;stroke:black;" points="190.268,-402.625 182,-396 184.332,-406.335 190.268,-402.625"/>
+<!-- app/paint -->
+<g id="node58" class="node"><title>app/paint</title>
+<ellipse fill="lawngreen" stroke="black" cx="339" cy="-389" rx="46.8775" ry="19.0919"/>
+<text text-anchor="middle" x="339" y="-385.9" font-family="Times Roman,serif" font-size="14.00">app/paint</text>
</g>
-<!-- libgimpwidgets -->
-<g id="node66" class="node"><title>libgimpwidgets</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="329" cy="-378" rx="82.1898" ry="18"/>
-<text text-anchor="middle" x="329" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">libgimpwidgets</text>
+<!-- app/vectors->app/paint -->
+<g id="edge58" class="edge"><title>app/vectors->app/paint</title>
+<path fill="none" stroke="black" d="M335.288,-443.943C335.814,-436.149 336.436,-426.954 337.018,-418.338"/>
+<polygon fill="black" stroke="black" points="340.517,-418.463 337.699,-408.249 333.533,-417.991 340.517,-418.463"/>
</g>
-<!-- app/tools->libgimpwidgets -->
-<g id="edge68" class="edge"><title>app/tools->libgimpwidgets</title>
-<path style="fill:none;stroke:black;" d="M241,-434C256,-425 276,-412 293,-401"/>
-<polygon style="fill:black;stroke:black;" points="295.621,-403.459 302,-395 291.738,-397.635 295.621,-403.459"/>
+<!-- app/paint->GEGL -->
+<g id="edge60" class="edge"><title>app/paint->GEGL</title>
+<path fill="none" stroke="black" d="M339,-369.943C339,-362.149 339,-352.954 339,-344.338"/>
+<polygon fill="black" stroke="black" points="342.5,-344.249 339,-334.249 335.5,-344.249 342.5,-344.249"/>
</g>
-<!-- app/gegl->app/core -->
-<g id="edge70" class="edge"><title>app/gegl->app/core</title>
-<path style="fill:none;stroke:black;" d="M163,-396C152,-423 134,-475 134,-522 134,-1314 134,-1314 134,-1314 134,-1356 151,-1402 163,-1431"/>
-<polygon style="fill:black;stroke:black;" points="159.74,-1432.28 167,-1440 166.137,-1429.44 159.74,-1432.28"/>
+<!-- app/paint->libgimpconfig -->
+<g id="edge62" class="edge"><title>app/paint->libgimpconfig</title>
+<path fill="none" stroke="black" d="M371.54,-375.081C398.124,-363.71 436.03,-347.496 465.765,-334.777"/>
+<polygon fill="black" stroke="black" points="467.29,-337.931 475.108,-330.781 464.537,-331.495 467.29,-337.931"/>
</g>
-<!-- app/gegl->GEGL -->
-<g id="edge72" class="edge"><title>app/gegl->GEGL</title>
-<path style="fill:none;stroke:black;" d="M164,-360C161,-352 158,-343 155,-334"/>
-<polygon style="fill:black;stroke:black;" points="158.226,-332.573 152,-324 151.521,-334.584 158.226,-332.573"/>
+<!-- app/paint-funcs -->
+<g id="node62" class="node"><title>app/paint-funcs</title>
+<ellipse fill="lawngreen" stroke="black" cx="201" cy="-315" rx="70.9184" ry="19.0919"/>
+<text text-anchor="middle" x="201" y="-311.9" font-family="Times Roman,serif" font-size="14.00">app/paint-funcs</text>
</g>
-<!-- libgimpwidgets->GTK+ -->
-<g id="edge74" class="edge"><title>libgimpwidgets->GTK+</title>
-<path style="fill:none;stroke:black;" d="M308,-361C296,-351 281,-338 268,-328"/>
-<polygon style="fill:black;stroke:black;" points="270.1,-325.2 260,-322 265.9,-330.8 270.1,-325.2"/>
+<!-- app/paint->app/paint-funcs -->
+<g id="edge64" class="edge"><title>app/paint->app/paint-funcs</title>
+<path fill="none" stroke="black" d="M310.406,-373.667C290.562,-363.026 263.832,-348.692 241.761,-336.857"/>
+<polygon fill="black" stroke="black" points="243.401,-333.765 232.934,-332.124 240.092,-339.934 243.401,-333.765"/>
</g>
-<!-- libgimpwidgets->libgimpconfig -->
-<g id="edge76" class="edge"><title>libgimpwidgets->libgimpconfig</title>
-<path style="fill:none;stroke:black;" d="M340,-360C344,-352 350,-342 356,-333"/>
-<polygon style="fill:black;stroke:black;" points="359.203,-334.441 361,-324 353.084,-331.042 359.203,-334.441"/>
+<!-- app/paint-funcs->app/composite -->
+<g id="edge74" class="edge"><title>app/paint-funcs->app/composite</title>
+<path fill="none" stroke="black" d="M192.538,-334.205C181.067,-362.03 162,-415.437 162,-463 162,-759 162,-759 162,-759 162,-800.375 167.49,-847.969 171.594,-877.768"/>
+<polygon fill="black" stroke="black" points="168.161,-878.487 173.031,-887.896 175.092,-877.504 168.161,-878.487"/>
</g>
<!-- libgimp -->
<g id="node72" class="node"><title>libgimp</title>
-<ellipse style="fill:#ff7256;stroke:black;" cx="333" cy="-450" rx="45.1673" ry="18"/>
-<text text-anchor="middle" x="333" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">libgimp</text>
+<ellipse fill="#ff7256" stroke="black" cx="553" cy="-611" rx="41.2167" ry="19.0919"/>
+<text text-anchor="middle" x="553" y="-607.9" font-family="Times Roman,serif" font-size="14.00">libgimp</text>
</g>
<!-- libgimp->libgimpmodule -->
-<g id="edge78" class="edge"><title>libgimp->libgimpmodule</title>
-<path style="fill:none;stroke:black;" d="M367,-438C374,-436 381,-434 387,-432 430,-418 479,-404 517,-395"/>
-<polygon style="fill:black;stroke:black;" points="518.427,-398.226 527,-392 516.416,-391.521 518.427,-398.226"/>
+<g id="edge80" class="edge"><title>libgimp->libgimpmodule</title>
+<path fill="none" stroke="black" d="M525.674,-596.556C505.302,-585.788 477.131,-570.898 454.054,-558.7"/>
+<polygon fill="black" stroke="black" points="455.641,-555.58 445.164,-554.001 452.369,-561.768 455.641,-555.58"/>
</g>
<!-- libgimp->libgimpwidgets -->
-<g id="edge80" class="edge"><title>libgimp->libgimpwidgets</title>
-<path style="fill:none;stroke:black;" d="M332,-432C331,-424 331,-415 331,-406"/>
-<polygon style="fill:black;stroke:black;" points="334.478,-405.602 330,-396 327.512,-406.299 334.478,-405.602"/>
+<g id="edge82" class="edge"><title>libgimp->libgimpwidgets</title>
+<path fill="none" stroke="black" d="M558.15,-591.943C560.297,-584.002 562.836,-574.606 565.203,-565.851"/>
+<polygon fill="black" stroke="black" points="568.637,-566.559 567.867,-555.992 561.879,-564.733 568.637,-566.559"/>
+</g>
+<!-- app/tests -->
+<g id="node75" class="node"><title>app/tests</title>
+<ellipse fill="lawngreen" stroke="black" cx="756" cy="-759" rx="44.7575" ry="19.0919"/>
+<text text-anchor="middle" x="756" y="-755.9" font-family="Times Roman,serif" font-size="14.00">app/tests</text>
+</g>
+<!-- app/tests->app/dialogs -->
+<g id="edge84" class="edge"><title>app/tests->app/dialogs</title>
+<path fill="none" stroke="black" d="M756,-739.943C756,-732.149 756,-722.954 756,-714.338"/>
+<polygon fill="black" stroke="black" points="759.5,-714.249 756,-704.249 752.5,-714.249 759.5,-714.249"/>
</g>
</g>
</svg>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 17a3f01..9e856a3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -81,7 +81,9 @@ app/actions/windows-actions.c
app/base/base-enums.c
app/base/tile-swap.c
+app/config/config-enums.c
app/config/gimpconfig-file.c
+app/config/gimpdisplayoptions.c
app/config/gimprc.c
app/config/gimprc-blurbs.h
app/config/gimprc-deserialize.c
@@ -204,11 +206,9 @@ app/dialogs/vectors-export-dialog.c
app/dialogs/vectors-import-dialog.c
app/dialogs/vectors-options-dialog.c
-app/display/display-enums.c
app/display/gimpcursorview.c
app/display/gimpdisplay.c
app/display/gimpdisplay-handlers.c
-app/display/gimpdisplayoptions.c
app/display/gimpdisplayshell.c
app/display/gimpdisplayshell-callbacks.c
app/display/gimpdisplayshell-close.c
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]