summaryrefslogtreecommitdiffstats
path: root/app/core/core-types.h
diff options
context:
space:
mode:
Diffstat (limited to 'app/core/core-types.h')
-rw-r--r--app/core/core-types.h303
1 files changed, 303 insertions, 0 deletions
diff --git a/app/core/core-types.h b/app/core/core-types.h
new file mode 100644
index 0000000..bc331b4
--- /dev/null
+++ b/app/core/core-types.h
@@ -0,0 +1,303 @@
+/* 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 <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef __CORE_TYPES_H__
+#define __CORE_TYPES_H__
+
+
+#include "libgimpbase/gimpbasetypes.h"
+#include "libgimpmath/gimpmathtypes.h"
+#include "libgimpcolor/gimpcolortypes.h"
+#include "libgimpmodule/gimpmoduletypes.h"
+#include "libgimpthumb/gimpthumb-types.h"
+
+#include "config/config-types.h"
+
+#include "core/core-enums.h"
+
+
+/* former base/ defines */
+
+#define MAX_CHANNELS 4
+
+#define RED 0
+#define GREEN 1
+#define BLUE 2
+#define ALPHA 3
+
+#define GRAY 0
+#define ALPHA_G 1
+
+#define INDEXED 0
+#define ALPHA_I 1
+
+
+/* defines */
+
+#define GIMP_COORDS_MIN_PRESSURE 0.0
+#define GIMP_COORDS_MAX_PRESSURE 1.0
+#define GIMP_COORDS_DEFAULT_PRESSURE 1.0
+
+#define GIMP_COORDS_MIN_TILT -1.0
+#define GIMP_COORDS_MAX_TILT 1.0
+#define GIMP_COORDS_DEFAULT_TILT 0.0
+
+#define GIMP_COORDS_MIN_WHEEL 0.0
+#define GIMP_COORDS_MAX_WHEEL 1.0
+#define GIMP_COORDS_DEFAULT_WHEEL 0.5
+
+#define GIMP_COORDS_DEFAULT_VELOCITY 0.0
+
+#define GIMP_COORDS_DEFAULT_DIRECTION 0.0
+
+#define GIMP_COORDS_DEFAULT_XSCALE 1.0
+#define GIMP_COORDS_DEFAULT_YSCALE 1.0
+
+#define GIMP_COORDS_DEFAULT_VALUES { 0.0, 0.0, \
+ GIMP_COORDS_DEFAULT_PRESSURE, \
+ GIMP_COORDS_DEFAULT_TILT, \
+ GIMP_COORDS_DEFAULT_TILT, \
+ GIMP_COORDS_DEFAULT_WHEEL, \
+ GIMP_COORDS_DEFAULT_VELOCITY, \
+ GIMP_COORDS_DEFAULT_DIRECTION,\
+ GIMP_COORDS_DEFAULT_XSCALE, \
+ GIMP_COORDS_DEFAULT_YSCALE }
+
+
+/* base classes */
+
+typedef struct _GimpObject GimpObject;
+typedef struct _GimpViewable GimpViewable;
+typedef struct _GimpFilter GimpFilter;
+typedef struct _GimpItem GimpItem;
+typedef struct _GimpAuxItem GimpAuxItem;
+
+typedef struct _Gimp Gimp;
+typedef struct _GimpImage GimpImage;
+
+
+/* containers */
+
+typedef struct _GimpContainer GimpContainer;
+typedef struct _GimpList GimpList;
+typedef struct _GimpDocumentList GimpDocumentList;
+typedef struct _GimpDrawableStack GimpDrawableStack;
+typedef struct _GimpFilteredContainer GimpFilteredContainer;
+typedef struct _GimpFilterStack GimpFilterStack;
+typedef struct _GimpItemStack GimpItemStack;
+typedef struct _GimpLayerStack GimpLayerStack;
+typedef struct _GimpTaggedContainer GimpTaggedContainer;
+typedef struct _GimpTreeProxy GimpTreeProxy;
+
+
+/* not really a container */
+
+typedef struct _GimpItemTree GimpItemTree;
+
+
+/* context objects */
+
+typedef struct _GimpContext GimpContext;
+typedef struct _GimpFillOptions GimpFillOptions;
+typedef struct _GimpStrokeOptions GimpStrokeOptions;
+typedef struct _GimpToolOptions GimpToolOptions;
+
+
+/* info objects */
+
+typedef struct _GimpPaintInfo GimpPaintInfo;
+typedef struct _GimpToolGroup GimpToolGroup;
+typedef struct _GimpToolInfo GimpToolInfo;
+typedef struct _GimpToolItem GimpToolItem;
+
+
+/* data objects */
+
+typedef struct _GimpDataFactory GimpDataFactory;
+typedef struct _GimpDataLoaderFactory GimpDataLoaderFactory;
+typedef struct _GimpData GimpData;
+typedef struct _GimpBrush GimpBrush;
+typedef struct _GimpBrushCache GimpBrushCache;
+typedef struct _GimpBrushClipboard GimpBrushClipboard;
+typedef struct _GimpBrushGenerated GimpBrushGenerated;
+typedef struct _GimpBrushPipe GimpBrushPipe;
+typedef struct _GimpCurve GimpCurve;
+typedef struct _GimpDynamics GimpDynamics;
+typedef struct _GimpDynamicsOutput GimpDynamicsOutput;
+typedef struct _GimpGradient GimpGradient;
+typedef struct _GimpMybrush GimpMybrush;
+typedef struct _GimpPalette GimpPalette;
+typedef struct _GimpPaletteMru GimpPaletteMru;
+typedef struct _GimpPattern GimpPattern;
+typedef struct _GimpPatternClipboard GimpPatternClipboard;
+typedef struct _GimpToolPreset GimpToolPreset;
+typedef struct _GimpTagCache GimpTagCache;
+
+
+/* drawable objects */
+
+typedef struct _GimpDrawable GimpDrawable;
+typedef struct _GimpChannel GimpChannel;
+typedef struct _GimpLayerMask GimpLayerMask;
+typedef struct _GimpSelection GimpSelection;
+typedef struct _GimpLayer GimpLayer;
+typedef struct _GimpGroupLayer GimpGroupLayer;
+
+
+/* auxillary image items */
+
+typedef struct _GimpGuide GimpGuide;
+typedef struct _GimpSamplePoint GimpSamplePoint;
+
+
+/* undo objects */
+
+typedef struct _GimpUndo GimpUndo;
+typedef struct _GimpUndoStack GimpUndoStack;
+typedef struct _GimpUndoAccumulator GimpUndoAccumulator;
+
+
+/* Symmetry transformations */
+
+typedef struct _GimpSymmetry GimpSymmetry;
+typedef struct _GimpMirror GimpMirror;
+typedef struct _GimpTiling GimpTiling;
+typedef struct _GimpMandala GimpMandala;
+
+
+/* misc objects */
+
+typedef struct _GimpAsync GimpAsync;
+typedef struct _GimpAsyncSet GimpAsyncSet;
+typedef struct _GimpBuffer GimpBuffer;
+typedef struct _GimpDrawableFilter GimpDrawableFilter;
+typedef struct _GimpEnvironTable GimpEnvironTable;
+typedef struct _GimpHistogram GimpHistogram;
+typedef struct _GimpIdTable GimpIdTable;
+typedef struct _GimpImagefile GimpImagefile;
+typedef struct _GimpImageProxy GimpImageProxy;
+typedef struct _GimpInterpreterDB GimpInterpreterDB;
+typedef struct _GimpLineArt GimpLineArt;
+typedef struct _GimpObjectQueue GimpObjectQueue;
+typedef struct _GimpParasiteList GimpParasiteList;
+typedef struct _GimpPdbProgress GimpPdbProgress;
+typedef struct _GimpProjection GimpProjection;
+typedef struct _GimpSettings GimpSettings;
+typedef struct _GimpSubProgress GimpSubProgress;
+typedef struct _GimpTag GimpTag;
+typedef struct _GimpTreeHandler GimpTreeHandler;
+typedef struct _GimpTriviallyCancelableWaitable GimpTriviallyCancelableWaitable;
+typedef struct _GimpUncancelableWaitable GimpUncancelableWaitable;
+
+
+/* interfaces */
+
+typedef struct _GimpCancelable GimpCancelable; /* dummy typedef */
+typedef struct _GimpPickable GimpPickable; /* dummy typedef */
+typedef struct _GimpProgress GimpProgress; /* dummy typedef */
+typedef struct _GimpProjectable GimpProjectable; /* dummy typedef */
+typedef struct _GimpTagged GimpTagged; /* dummy typedef */
+typedef struct _GimpWaitable GimpWaitable; /* dummy typedef */
+
+
+/* non-object types */
+
+typedef struct _GimpBacktrace GimpBacktrace;
+typedef struct _GimpBoundSeg GimpBoundSeg;
+typedef struct _GimpChunkIterator GimpChunkIterator;
+typedef struct _GimpCoords GimpCoords;
+typedef struct _GimpGradientSegment GimpGradientSegment;
+typedef struct _GimpPaletteEntry GimpPaletteEntry;
+typedef struct _GimpScanConvert GimpScanConvert;
+typedef struct _GimpTempBuf GimpTempBuf;
+typedef guint32 GimpTattoo;
+
+/* The following hack is made so that we can reuse the definition
+ * the cairo definition of cairo_path_t without having to translate
+ * between our own version of a bezier description and cairos version.
+ *
+ * to avoid having to include <cairo.h> in each and every file
+ * including this file we only use the "real" definition when cairo.h
+ * already has been included and use something else.
+ *
+ * Note that if you really want to work with GimpBezierDesc (except just
+ * passing pointers to it around) you also need to include <cairo.h>.
+ */
+#ifdef CAIRO_VERSION
+typedef cairo_path_t GimpBezierDesc;
+#else
+typedef void * GimpBezierDesc;
+#endif
+
+
+/* functions */
+
+typedef void (* GimpInitStatusFunc) (const gchar *text1,
+ const gchar *text2,
+ gdouble percentage);
+
+typedef gboolean (* GimpObjectFilterFunc) (GimpObject *object,
+ gpointer user_data);
+
+typedef gint64 (* GimpMemsizeFunc) (gpointer instance,
+ gint64 *gui_size);
+
+typedef void (* GimpRunAsyncFunc) (GimpAsync *async,
+ gpointer user_data);
+
+
+/* structs */
+
+struct _GimpCoords
+{
+ gdouble x;
+ gdouble y;
+ gdouble pressure;
+ gdouble xtilt;
+ gdouble ytilt;
+ gdouble wheel;
+ gdouble velocity;
+ gdouble direction;
+ gdouble xscale; /* the view scale */
+ gdouble yscale;
+ gdouble angle; /* the view rotation angle */
+ gboolean reflect; /* whether the view is reflected */
+ gboolean extended;
+};
+
+/* temp hack as replacement for GdkSegment */
+
+typedef struct _GimpSegment GimpSegment;
+
+struct _GimpSegment
+{
+ gint x1;
+ gint y1;
+ gint x2;
+ gint y2;
+};
+
+
+#include "gegl/gimp-gegl-types.h"
+#include "paint/paint-types.h"
+#include "text/text-types.h"
+#include "vectors/vectors-types.h"
+#include "pdb/pdb-types.h"
+#include "plug-in/plug-in-types.h"
+
+
+#endif /* __CORE_TYPES_H__ */