gimp/app/pdb/selection-tools-cmds.c

1047 lines
53 KiB
C

/* 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 <http://www.gnu.org/licenses/>.
*/
/* NOTE: This file is auto-generated by pdbgen.pl. */
#include "config.h"
#include <cairo.h>
#include <gegl.h>
#include "libgimpbase/gimpbase.h"
#include "libgimpcolor/gimpcolor.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 GValueArray *
by_color_select_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
gimp_value_get_rgb (&args->values[1], &color);
threshold = g_value_get_int (&args->values[2]);
operation = g_value_get_enum (&args->values[3]);
antialias = g_value_get_boolean (&args->values[4]);
feather = g_value_get_boolean (&args->values[5]);
feather_radius = g_value_get_double (&args->values[6]);
sample_merged = g_value_get_boolean (&args->values[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,
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 GValueArray *
by_color_select_full_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
gimp_value_get_rgb (&args->values[1], &color);
threshold = g_value_get_int (&args->values[2]);
operation = g_value_get_enum (&args->values[3]);
antialias = g_value_get_boolean (&args->values[4]);
feather = g_value_get_boolean (&args->values[5]);
feather_radius_x = g_value_get_double (&args->values[6]);
feather_radius_y = g_value_get_double (&args->values[7]);
sample_merged = g_value_get_boolean (&args->values[8]);
select_transparent = g_value_get_boolean (&args->values[9]);
select_criterion = g_value_get_enum (&args->values[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,
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 GValueArray *
ellipse_select_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
x = g_value_get_double (&args->values[1]);
y = g_value_get_double (&args->values[2]);
width = g_value_get_double (&args->values[3]);
height = g_value_get_double (&args->values[4]);
operation = g_value_get_enum (&args->values[5]);
antialias = g_value_get_boolean (&args->values[6]);
feather = g_value_get_boolean (&args->values[7]);
feather_radius = g_value_get_double (&args->values[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 GValueArray *
free_select_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
num_segs = g_value_get_int (&args->values[1]);
segs = gimp_value_get_floatarray (&args->values[2]);
operation = g_value_get_enum (&args->values[3]);
antialias = g_value_get_boolean (&args->values[4]);
feather = g_value_get_boolean (&args->values[5]);
feather_radius = g_value_get_double (&args->values[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 GValueArray *
fuzzy_select_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
x = g_value_get_double (&args->values[1]);
y = g_value_get_double (&args->values[2]);
threshold = g_value_get_int (&args->values[3]);
operation = g_value_get_enum (&args->values[4]);
antialias = g_value_get_boolean (&args->values[5]);
feather = g_value_get_boolean (&args->values[6]);
feather_radius = g_value_get_double (&args->values[7]);
sample_merged = g_value_get_boolean (&args->values[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,
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 GValueArray *
fuzzy_select_full_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
x = g_value_get_double (&args->values[1]);
y = g_value_get_double (&args->values[2]);
threshold = g_value_get_int (&args->values[3]);
operation = g_value_get_enum (&args->values[4]);
antialias = g_value_get_boolean (&args->values[5]);
feather = g_value_get_boolean (&args->values[6]);
feather_radius_x = g_value_get_double (&args->values[7]);
feather_radius_y = g_value_get_double (&args->values[8]);
sample_merged = g_value_get_boolean (&args->values[9]);
select_transparent = g_value_get_boolean (&args->values[10]);
select_criterion = g_value_get_enum (&args->values[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,
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 GValueArray *
rect_select_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
x = g_value_get_double (&args->values[1]);
y = g_value_get_double (&args->values[2]);
width = g_value_get_double (&args->values[3]);
height = g_value_get_double (&args->values[4]);
operation = g_value_get_enum (&args->values[5]);
feather = g_value_get_boolean (&args->values[6]);
feather_radius = g_value_get_double (&args->values[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 GValueArray *
round_rect_select_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *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 (&args->values[0], gimp);
x = g_value_get_double (&args->values[1]);
y = g_value_get_double (&args->values[2]);
width = g_value_get_double (&args->values[3]);
height = g_value_get_double (&args->values[4]);
corner_radius_x = g_value_get_double (&args->values[5]);
corner_radius_y = g_value_get_double (&args->values[6]);
operation = g_value_get_enum (&args->values[7]);
antialias = g_value_get_boolean (&args->values[8]);
feather = g_value_get_boolean (&args->values[9]);
feather_radius_x = g_value_get_double (&args->values[10]);
feather_radius_y = g_value_get_double (&args->values[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);
}