diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 03:13:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 03:13:10 +0000 |
commit | 3c57dd931145d43f2b0aef96c4d178135956bf91 (patch) | |
tree | 3de698981e9f0cc2c4f9569b19a5f3595e741f6b /app/pdb/selection-tools-cmds.c | |
parent | Initial commit. (diff) | |
download | gimp-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 'app/pdb/selection-tools-cmds.c')
-rw-r--r-- | app/pdb/selection-tools-cmds.c | 1052 |
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); +} |