summaryrefslogtreecommitdiffstats
path: root/app/pdb/selection-tools-cmds.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
commit3c57dd931145d43f2b0aef96c4d178135956bf91 (patch)
tree3de698981e9f0cc2c4f9569b19a5f3595e741f6b /app/pdb/selection-tools-cmds.c
parentInitial commit. (diff)
downloadgimp-3c57dd931145d43f2b0aef96c4d178135956bf91.tar.xz
gimp-3c57dd931145d43f2b0aef96c4d178135956bf91.zip
Adding upstream version 2.10.36.upstream/2.10.36
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--app/pdb/selection-tools-cmds.c1052
1 files changed, 1052 insertions, 0 deletions
diff --git a/app/pdb/selection-tools-cmds.c b/app/pdb/selection-tools-cmds.c
new file mode 100644
index 0000000..9ca50b5
--- /dev/null
+++ b/app/pdb/selection-tools-cmds.c
@@ -0,0 +1,1052 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995-2003 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/>.
+ */
+
+/* NOTE: This file is auto-generated by pdbgen.pl. */
+
+#include "config.h"
+
+#include <cairo.h>
+
+#include <gegl.h>
+
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+#include "libgimpbase/gimpbase.h"
+#include "libgimpcolor/gimpcolor.h"
+
+#include "libgimpbase/gimpbase.h"
+
+#include "pdb-types.h"
+
+#include "core/gimpchannel-select.h"
+#include "core/gimpdrawable.h"
+#include "core/gimpimage.h"
+#include "core/gimpparamspecs.h"
+
+#include "gimppdb.h"
+#include "gimpprocedure.h"
+#include "internal-procs.h"
+
+#include "gimp-intl.h"
+
+
+static GimpValueArray *
+by_color_select_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpDrawable *drawable;
+ GimpRGB color;
+ gint32 threshold;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius;
+ gboolean sample_merged;
+
+ drawable = gimp_value_get_drawable (gimp_value_array_index (args, 0), gimp);
+ gimp_value_get_rgb (gimp_value_array_index (args, 1), &color);
+ threshold = g_value_get_int (gimp_value_array_index (args, 2));
+ operation = g_value_get_enum (gimp_value_array_index (args, 3));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 4));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 5));
+ feather_radius = g_value_get_double (gimp_value_array_index (args, 6));
+ sample_merged = g_value_get_boolean (gimp_value_array_index (args, 7));
+
+ if (success)
+ {
+ GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
+
+ gimp_channel_select_by_color (gimp_image_get_mask (image), drawable,
+ sample_merged,
+ &color,
+ threshold / 255.0,
+ FALSE /* don't select transparent */,
+ GIMP_SELECT_CRITERION_COMPOSITE,
+ operation,
+ antialias,
+ feather,
+ feather_radius,
+ feather_radius);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+by_color_select_full_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpDrawable *drawable;
+ GimpRGB color;
+ gint32 threshold;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius_x;
+ gdouble feather_radius_y;
+ gboolean sample_merged;
+ gboolean select_transparent;
+ gint32 select_criterion;
+
+ drawable = gimp_value_get_drawable (gimp_value_array_index (args, 0), gimp);
+ gimp_value_get_rgb (gimp_value_array_index (args, 1), &color);
+ threshold = g_value_get_int (gimp_value_array_index (args, 2));
+ operation = g_value_get_enum (gimp_value_array_index (args, 3));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 4));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 5));
+ feather_radius_x = g_value_get_double (gimp_value_array_index (args, 6));
+ feather_radius_y = g_value_get_double (gimp_value_array_index (args, 7));
+ sample_merged = g_value_get_boolean (gimp_value_array_index (args, 8));
+ select_transparent = g_value_get_boolean (gimp_value_array_index (args, 9));
+ select_criterion = g_value_get_enum (gimp_value_array_index (args, 10));
+
+ if (success)
+ {
+ GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
+
+ gimp_channel_select_by_color (gimp_image_get_mask (image), drawable,
+ sample_merged,
+ &color,
+ threshold / 255.0,
+ select_transparent,
+ select_criterion,
+ operation,
+ antialias,
+ feather,
+ feather_radius_x,
+ feather_radius_y);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+ellipse_select_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpImage *image;
+ gdouble x;
+ gdouble y;
+ gdouble width;
+ gdouble height;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius;
+
+ image = gimp_value_get_image (gimp_value_array_index (args, 0), gimp);
+ x = g_value_get_double (gimp_value_array_index (args, 1));
+ y = g_value_get_double (gimp_value_array_index (args, 2));
+ width = g_value_get_double (gimp_value_array_index (args, 3));
+ height = g_value_get_double (gimp_value_array_index (args, 4));
+ operation = g_value_get_enum (gimp_value_array_index (args, 5));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 6));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 7));
+ feather_radius = g_value_get_double (gimp_value_array_index (args, 8));
+
+ if (success)
+ {
+ gimp_channel_select_ellipse (gimp_image_get_mask (image),
+ (gint) x, (gint) y,
+ (gint) width, (gint) height,
+ operation,
+ antialias,
+ feather,
+ feather_radius,
+ feather_radius,
+ TRUE);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+free_select_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpImage *image;
+ gint32 num_segs;
+ const gdouble *segs;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius;
+
+ image = gimp_value_get_image (gimp_value_array_index (args, 0), gimp);
+ num_segs = g_value_get_int (gimp_value_array_index (args, 1));
+ segs = gimp_value_get_floatarray (gimp_value_array_index (args, 2));
+ operation = g_value_get_enum (gimp_value_array_index (args, 3));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 4));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 5));
+ feather_radius = g_value_get_double (gimp_value_array_index (args, 6));
+
+ if (success)
+ {
+ gimp_channel_select_polygon (gimp_image_get_mask (image),
+ _("Free Select"),
+ num_segs / 2,
+ (GimpVector2 *) segs,
+ operation,
+ antialias,
+ feather,
+ feather_radius,
+ feather_radius,
+ TRUE);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+fuzzy_select_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpDrawable *drawable;
+ gdouble x;
+ gdouble y;
+ gint32 threshold;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius;
+ gboolean sample_merged;
+
+ drawable = gimp_value_get_drawable (gimp_value_array_index (args, 0), gimp);
+ x = g_value_get_double (gimp_value_array_index (args, 1));
+ y = g_value_get_double (gimp_value_array_index (args, 2));
+ threshold = g_value_get_int (gimp_value_array_index (args, 3));
+ operation = g_value_get_enum (gimp_value_array_index (args, 4));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 5));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 6));
+ feather_radius = g_value_get_double (gimp_value_array_index (args, 7));
+ sample_merged = g_value_get_boolean (gimp_value_array_index (args, 8));
+
+ if (success)
+ {
+ GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
+
+ gimp_channel_select_fuzzy (gimp_image_get_mask (image),
+ drawable,
+ sample_merged,
+ x, y,
+ threshold / 255.0,
+ FALSE /* don't select transparent */,
+ GIMP_SELECT_CRITERION_COMPOSITE,
+ FALSE /* no diagonal neighbors */,
+ operation,
+ antialias,
+ feather,
+ feather_radius,
+ feather_radius);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+fuzzy_select_full_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpDrawable *drawable;
+ gdouble x;
+ gdouble y;
+ gint32 threshold;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius_x;
+ gdouble feather_radius_y;
+ gboolean sample_merged;
+ gboolean select_transparent;
+ gint32 select_criterion;
+
+ drawable = gimp_value_get_drawable (gimp_value_array_index (args, 0), gimp);
+ x = g_value_get_double (gimp_value_array_index (args, 1));
+ y = g_value_get_double (gimp_value_array_index (args, 2));
+ threshold = g_value_get_int (gimp_value_array_index (args, 3));
+ operation = g_value_get_enum (gimp_value_array_index (args, 4));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 5));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 6));
+ feather_radius_x = g_value_get_double (gimp_value_array_index (args, 7));
+ feather_radius_y = g_value_get_double (gimp_value_array_index (args, 8));
+ sample_merged = g_value_get_boolean (gimp_value_array_index (args, 9));
+ select_transparent = g_value_get_boolean (gimp_value_array_index (args, 10));
+ select_criterion = g_value_get_enum (gimp_value_array_index (args, 11));
+
+ if (success)
+ {
+ GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
+
+ gimp_channel_select_fuzzy (gimp_image_get_mask (image),
+ drawable,
+ sample_merged,
+ x, y,
+ threshold / 255.0,
+ select_transparent,
+ select_criterion,
+ FALSE /* no diagonal neighbors */,
+ operation,
+ antialias,
+ feather,
+ feather_radius_x,
+ feather_radius_y);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+rect_select_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpImage *image;
+ gdouble x;
+ gdouble y;
+ gdouble width;
+ gdouble height;
+ gint32 operation;
+ gboolean feather;
+ gdouble feather_radius;
+
+ image = gimp_value_get_image (gimp_value_array_index (args, 0), gimp);
+ x = g_value_get_double (gimp_value_array_index (args, 1));
+ y = g_value_get_double (gimp_value_array_index (args, 2));
+ width = g_value_get_double (gimp_value_array_index (args, 3));
+ height = g_value_get_double (gimp_value_array_index (args, 4));
+ operation = g_value_get_enum (gimp_value_array_index (args, 5));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 6));
+ feather_radius = g_value_get_double (gimp_value_array_index (args, 7));
+
+ if (success)
+ {
+ gimp_channel_select_rectangle (gimp_image_get_mask (image),
+ (gint) x, (gint) y,
+ (gint) width, (gint) height,
+ operation,
+ feather,
+ feather_radius,
+ feather_radius,
+ TRUE);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+static GimpValueArray *
+round_rect_select_invoker (GimpProcedure *procedure,
+ Gimp *gimp,
+ GimpContext *context,
+ GimpProgress *progress,
+ const GimpValueArray *args,
+ GError **error)
+{
+ gboolean success = TRUE;
+ GimpImage *image;
+ gdouble x;
+ gdouble y;
+ gdouble width;
+ gdouble height;
+ gdouble corner_radius_x;
+ gdouble corner_radius_y;
+ gint32 operation;
+ gboolean antialias;
+ gboolean feather;
+ gdouble feather_radius_x;
+ gdouble feather_radius_y;
+
+ image = gimp_value_get_image (gimp_value_array_index (args, 0), gimp);
+ x = g_value_get_double (gimp_value_array_index (args, 1));
+ y = g_value_get_double (gimp_value_array_index (args, 2));
+ width = g_value_get_double (gimp_value_array_index (args, 3));
+ height = g_value_get_double (gimp_value_array_index (args, 4));
+ corner_radius_x = g_value_get_double (gimp_value_array_index (args, 5));
+ corner_radius_y = g_value_get_double (gimp_value_array_index (args, 6));
+ operation = g_value_get_enum (gimp_value_array_index (args, 7));
+ antialias = g_value_get_boolean (gimp_value_array_index (args, 8));
+ feather = g_value_get_boolean (gimp_value_array_index (args, 9));
+ feather_radius_x = g_value_get_double (gimp_value_array_index (args, 10));
+ feather_radius_y = g_value_get_double (gimp_value_array_index (args, 11));
+
+ if (success)
+ {
+ gimp_channel_select_round_rect (gimp_image_get_mask (image),
+ (gint) x, (gint) y,
+ (gint) width, (gint) height,
+ corner_radius_x,
+ corner_radius_y,
+ operation,
+ antialias,
+ feather,
+ feather_radius_x,
+ feather_radius_y,
+ TRUE);
+ }
+
+ return gimp_procedure_get_return_values (procedure, success,
+ error ? *error : NULL);
+}
+
+void
+register_selection_tools_procs (GimpPDB *pdb)
+{
+ GimpProcedure *procedure;
+
+ /*
+ * gimp-by-color-select
+ */
+ procedure = gimp_procedure_new (by_color_select_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-by-color-select");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-by-color-select",
+ "Deprecated: Use 'gimp-image-select-color' instead.",
+ "Deprecated: Use 'gimp-image-select-color' instead.",
+ "",
+ "",
+ "",
+ "gimp-image-select-color");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_drawable_id ("drawable",
+ "drawable",
+ "The affected drawable",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_rgb ("color",
+ "color",
+ "The color to select",
+ FALSE,
+ NULL,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_int32 ("threshold",
+ "threshold",
+ "Threshold in intensity levels",
+ 0, 255, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius",
+ "feather radius",
+ "Radius for feather operation",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("sample-merged",
+ "sample merged",
+ "Use the composite image, not the drawable",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-by-color-select-full
+ */
+ procedure = gimp_procedure_new (by_color_select_full_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-by-color-select-full");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-by-color-select-full",
+ "Deprecated: Use 'gimp-image-select-color' instead.",
+ "Deprecated: Use 'gimp-image-select-color' instead.",
+ "David Gowers",
+ "David Gowers",
+ "2006",
+ "gimp-image-select-color");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_drawable_id ("drawable",
+ "drawable",
+ "The affected drawable",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_rgb ("color",
+ "color",
+ "The color to select",
+ FALSE,
+ NULL,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_int32 ("threshold",
+ "threshold",
+ "Threshold in intensity levels",
+ 0, 255, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius-x",
+ "feather radius x",
+ "Radius for feather operation in X direction",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius-y",
+ "feather radius y",
+ "Radius for feather operation in Y direction",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("sample-merged",
+ "sample merged",
+ "Use the composite image, not the drawable",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("select-transparent",
+ "select transparent",
+ "Whether to consider transparent pixels for selection. If TRUE, transparency is considered as a unique selectable color.",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("select-criterion",
+ "select criterion",
+ "The criterion used to determine color similarity. SELECT_CRITERION_COMPOSITE is the standard choice.",
+ GIMP_TYPE_SELECT_CRITERION,
+ GIMP_SELECT_CRITERION_COMPOSITE,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-ellipse-select
+ */
+ procedure = gimp_procedure_new (ellipse_select_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-ellipse-select");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-ellipse-select",
+ "Deprecated: Use 'gimp-image-select-ellipse' instead.",
+ "Deprecated: Use 'gimp-image-select-ellipse' instead.",
+ "",
+ "",
+ "",
+ "gimp-image-select-ellipse");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_image_id ("image",
+ "image",
+ "The image",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("x",
+ "x",
+ "x coordinate of upper-left corner of ellipse bounding box",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("y",
+ "y",
+ "y coordinate of upper-left corner of ellipse bounding box",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("width",
+ "width",
+ "The width of the ellipse",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("height",
+ "height",
+ "The height of the ellipse",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius",
+ "feather radius",
+ "Radius for feather operation",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-free-select
+ */
+ procedure = gimp_procedure_new (free_select_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-free-select");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-free-select",
+ "Deprecated: Use 'gimp-image-select-polygon' instead.",
+ "Deprecated: Use 'gimp-image-select-polygon' instead.",
+ "",
+ "",
+ "",
+ "gimp-image-select-polygon");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_image_id ("image",
+ "image",
+ "The image",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_int32 ("num-segs",
+ "num segs",
+ "Number of points (count 1 coordinate as two points)",
+ 2, G_MAXINT32, 2,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_float_array ("segs",
+ "segs",
+ "Array of points: { p1.x, p1.y, p2.x, p2.y, ..., pn.x, pn.y}",
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius",
+ "feather radius",
+ "Radius for feather operation",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-fuzzy-select
+ */
+ procedure = gimp_procedure_new (fuzzy_select_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-fuzzy-select");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-fuzzy-select",
+ "Deprecated: Use 'gimp-image-select-contiguous-color' instead.",
+ "Deprecated: Use 'gimp-image-select-contiguous-color' instead.",
+ "",
+ "",
+ "",
+ "gimp-image-select-contiguous-color");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_drawable_id ("drawable",
+ "drawable",
+ "The affected drawable",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("x",
+ "x",
+ "x coordinate of initial seed fill point: (image coordinates)",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("y",
+ "y",
+ "y coordinate of initial seed fill point: (image coordinates)",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_int32 ("threshold",
+ "threshold",
+ "Threshold in intensity levels",
+ 0, 255, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius",
+ "feather radius",
+ "Radius for feather operation",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("sample-merged",
+ "sample merged",
+ "Use the composite image, not the drawable",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-fuzzy-select-full
+ */
+ procedure = gimp_procedure_new (fuzzy_select_full_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-fuzzy-select-full");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-fuzzy-select-full",
+ "Deprecated: Use 'gimp-image-select-contiguous-color' instead.",
+ "Deprecated: Use 'gimp-image-select-contiguous-color' instead.",
+ "David Gowers",
+ "David Gowers",
+ "2006",
+ "gimp-image-select-contiguous-color");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_drawable_id ("drawable",
+ "drawable",
+ "The affected drawable",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("x",
+ "x",
+ "x coordinate of initial seed fill point: (image coordinates)",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("y",
+ "y",
+ "y coordinate of initial seed fill point: (image coordinates)",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_int32 ("threshold",
+ "threshold",
+ "Threshold in intensity levels",
+ 0, 255, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius-x",
+ "feather radius x",
+ "Radius for feather operation in X direction",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius-y",
+ "feather radius y",
+ "Radius for feather operation in Y direction",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("sample-merged",
+ "sample merged",
+ "Use the composite image, not the drawable",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("select-transparent",
+ "select transparent",
+ "Whether to consider transparent pixels for selection. If TRUE, transparency is considered as a unique selectable color.",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("select-criterion",
+ "select criterion",
+ "The criterion used to determine color similarity. SELECT_CRITERION_COMPOSITE is the standard choice.",
+ GIMP_TYPE_SELECT_CRITERION,
+ GIMP_SELECT_CRITERION_COMPOSITE,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-rect-select
+ */
+ procedure = gimp_procedure_new (rect_select_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-rect-select");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-rect-select",
+ "Deprecated: Use 'gimp-image-select-rectangle' instead.",
+ "Deprecated: Use 'gimp-image-select-rectangle' instead.",
+ "",
+ "",
+ "",
+ "gimp-image-select-rectangle");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_image_id ("image",
+ "image",
+ "The image",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("x",
+ "x",
+ "x coordinate of upper-left corner of rectangle",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("y",
+ "y",
+ "y coordinate of upper-left corner of rectangle",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("width",
+ "width",
+ "The width of the rectangle",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("height",
+ "height",
+ "The height of the rectangle",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius",
+ "feather radius",
+ "Radius for feather operation",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+
+ /*
+ * gimp-round-rect-select
+ */
+ procedure = gimp_procedure_new (round_rect_select_invoker);
+ gimp_object_set_static_name (GIMP_OBJECT (procedure),
+ "gimp-round-rect-select");
+ gimp_procedure_set_static_strings (procedure,
+ "gimp-round-rect-select",
+ "Deprecated: Use 'gimp-image-select-round-rectangle' instead.",
+ "Deprecated: Use 'gimp-image-select-round-rectangle' instead.",
+ "Martin Nordholts",
+ "Martin Nordholts",
+ "2006",
+ "gimp-image-select-round-rectangle");
+ gimp_procedure_add_argument (procedure,
+ gimp_param_spec_image_id ("image",
+ "image",
+ "The image",
+ pdb->gimp, FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("x",
+ "x",
+ "x coordinate of upper-left corner of rectangle",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("y",
+ "y",
+ "y coordinate of upper-left corner of rectangle",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("width",
+ "width",
+ "The width of the rectangle",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("height",
+ "height",
+ "The height of the rectangle",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("corner-radius-x",
+ "corner radius x",
+ "The corner radius in X direction",
+ 0, GIMP_MAX_IMAGE_SIZE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("corner-radius-y",
+ "corner radius y",
+ "The corner radius in Y direction",
+ 0, GIMP_MAX_IMAGE_SIZE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_enum ("operation",
+ "operation",
+ "The selection operation",
+ GIMP_TYPE_CHANNEL_OPS,
+ GIMP_CHANNEL_OP_ADD,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("antialias",
+ "antialias",
+ "Antialiasing",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_boolean ("feather",
+ "feather",
+ "Feather option for selections",
+ FALSE,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius-x",
+ "feather radius x",
+ "Radius for feather operation in X direction",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_procedure_add_argument (procedure,
+ g_param_spec_double ("feather-radius-y",
+ "feather radius y",
+ "Radius for feather operation in Y direction",
+ 0, G_MAXDOUBLE, 0,
+ GIMP_PARAM_READWRITE));
+ gimp_pdb_register_procedure (pdb, procedure);
+ g_object_unref (procedure);
+}