mirror of https://github.com/GNOME/gimp.git
387 lines
12 KiB
C
387 lines
12 KiB
C
/* LIBGIMP - The GIMP Library
|
|
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
|
|
*
|
|
* gimpedit_pdb.c
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/* NOTE: This file is autogenerated by pdbgen.pl */
|
|
|
|
#include "config.h"
|
|
|
|
#include "gimp.h"
|
|
|
|
/**
|
|
* gimp_edit_cut:
|
|
* @drawable_ID: The drawable to cut from.
|
|
*
|
|
* Cut from the specified drawable.
|
|
*
|
|
* If there is a selection in the image, then the area specified by the
|
|
* selection is cut from the specified drawable and placed in an
|
|
* internal GIMP edit buffer. It can subsequently be retrieved using
|
|
* the 'gimp-edit-paste' command. If there is no selection, then the
|
|
* specified drawable will be removed and its contents stored in the
|
|
* internal GIMP edit buffer.
|
|
*
|
|
* Returns: TRUE if the cut was successful, FALSE if the selection contained only transparent pixels.
|
|
*/
|
|
gboolean
|
|
gimp_edit_cut (gint32 drawable_ID)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean non_empty = FALSE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_cut",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_END);
|
|
|
|
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
|
non_empty = return_vals[1].data.d_int32;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return non_empty;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_copy:
|
|
* @drawable_ID: The drawable to copy from.
|
|
*
|
|
* Copy from the specified drawable.
|
|
*
|
|
* If there is a selection in the image, then the area specified by the
|
|
* selection is copied from the specified drawable and placed in an
|
|
* internal GIMP edit buffer. It can subsequently be retrieved using
|
|
* the 'gimp-edit-paste' command. If there is no selection, then the
|
|
* specified drawable's contents will be stored in the internal GIMP
|
|
* edit buffer.
|
|
*
|
|
* Returns: TRUE if the copy was successful, FALSE if the selection contained only transparent pixels.
|
|
*/
|
|
gboolean
|
|
gimp_edit_copy (gint32 drawable_ID)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean non_empty = FALSE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_copy",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_END);
|
|
|
|
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
|
non_empty = return_vals[1].data.d_int32;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return non_empty;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_paste:
|
|
* @drawable_ID: The drawable to paste to.
|
|
* @paste_into: Clear selection, or paste behind it?
|
|
*
|
|
* Paste buffer to the specified drawable.
|
|
*
|
|
* This procedure pastes a copy of the internal GIMP edit buffer to the
|
|
* specified drawable. The GIMP edit buffer will be empty unless a call
|
|
* was previously made to either 'gimp-edit-cut' or 'gimp-edit-copy'.
|
|
* The \"paste_into\" option specifies whether to clear the current
|
|
* image selection, or to paste the buffer \"behind\" the selection.
|
|
* This allows the selection to act as a mask for the pasted buffer.
|
|
* Anywhere that the selection mask is non-zero, the pasted buffer will
|
|
* show through. The pasted buffer will be a new layer in the image
|
|
* which is designated as the image floating selection. If the image
|
|
* has a floating selection at the time of pasting, the old floating
|
|
* selection will be anchored to it's drawable before the new floating
|
|
* selection is added. This procedure returns the new floating layer.
|
|
* The resulting floating selection will already be attached to the
|
|
* specified drawable, and a subsequent call to floating_sel_attach is
|
|
* not needed.
|
|
*
|
|
* Returns: The new floating selection.
|
|
*/
|
|
gint32
|
|
gimp_edit_paste (gint32 drawable_ID,
|
|
gboolean paste_into)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gint32 floating_sel_ID = -1;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_paste",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_INT32, paste_into,
|
|
GIMP_PDB_END);
|
|
|
|
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
|
floating_sel_ID = return_vals[1].data.d_layer;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return floating_sel_ID;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_clear:
|
|
* @drawable_ID: The drawable to clear from.
|
|
*
|
|
* Clear selected area of drawable.
|
|
*
|
|
* This procedure clears the specified drawable. If the drawable has an
|
|
* alpha channel, the cleared pixels will become transparent. If the
|
|
* drawable does not have an alpha channel, cleared pixels will be set
|
|
* to the background color. This procedure only affects regions within
|
|
* a selection if there is a selection active.
|
|
*
|
|
* Returns: TRUE on success.
|
|
*/
|
|
gboolean
|
|
gimp_edit_clear (gint32 drawable_ID)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean success = TRUE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_clear",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_END);
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_fill:
|
|
* @drawable_ID: The drawable to fill to.
|
|
* @fill_type: The type of fill.
|
|
*
|
|
* Fill selected area of drawable.
|
|
*
|
|
* This procedure fills the specified drawable with the fill mode. If
|
|
* the fill mode is foreground, the current foreground color is used.
|
|
* If the fill mode is background, the current background color is
|
|
* used. Other fill modes should not be used. This procedure only
|
|
* affects regions within a selection if there is a selection active.
|
|
* If you want to fill the whole drawable, regardless of the selection,
|
|
* use gimp_drawable_fill().
|
|
*
|
|
* Returns: TRUE on success.
|
|
*/
|
|
gboolean
|
|
gimp_edit_fill (gint32 drawable_ID,
|
|
GimpFillType fill_type)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean success = TRUE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_fill",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_INT32, fill_type,
|
|
GIMP_PDB_END);
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_bucket_fill:
|
|
* @drawable_ID: The affected drawable.
|
|
* @fill_mode: The type of fill.
|
|
* @paint_mode: The paint application mode.
|
|
* @opacity: The opacity of the final bucket fill.
|
|
* @threshold: The threshold determines how extensive the seed fill will be. It's value is specified in terms of intensity levels . This parameter is only valid when there is no selection in the specified image.
|
|
* @sample_merged: Use the composite image, not the drawable.
|
|
* @x: The x coordinate of this bucket fill's application. This parameter is only valid when there is no selection in the specified image.
|
|
* @y: The y coordinate of this bucket fill's application. This parameter is only valid when there is no selection in the specified image.
|
|
*
|
|
* Fill the area specified either by the current selection if there is
|
|
* one, or by a seed fill starting at the specified coordinates.
|
|
*
|
|
* This tool requires information on the paint application mode, and
|
|
* the fill mode, which can either be in the foreground color, or in
|
|
* the currently active pattern. If there is no selection, a seed fill
|
|
* is executed at the specified coordinates and extends outward in
|
|
* keeping with the threshold parameter. If there is a selection in the
|
|
* target image, the threshold, sample merged, x, and y arguments are
|
|
* unused. If the sample_merged parameter is non-zero, the data of the
|
|
* composite image will be used instead of that for the specified
|
|
* drawable. This is equivalent to sampling for colors after merging
|
|
* all visible layers. In the case of merged sampling, the x and y
|
|
* coordinates are relative to the image's origin; otherwise, they are
|
|
* relative to the drawable's origin.
|
|
*
|
|
* Returns: TRUE on success.
|
|
*/
|
|
gboolean
|
|
gimp_edit_bucket_fill (gint32 drawable_ID,
|
|
GimpBucketFillMode fill_mode,
|
|
GimpLayerModeEffects paint_mode,
|
|
gdouble opacity,
|
|
gdouble threshold,
|
|
gboolean sample_merged,
|
|
gdouble x,
|
|
gdouble y)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean success = TRUE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_bucket_fill",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_INT32, fill_mode,
|
|
GIMP_PDB_INT32, paint_mode,
|
|
GIMP_PDB_FLOAT, opacity,
|
|
GIMP_PDB_FLOAT, threshold,
|
|
GIMP_PDB_INT32, sample_merged,
|
|
GIMP_PDB_FLOAT, x,
|
|
GIMP_PDB_FLOAT, y,
|
|
GIMP_PDB_END);
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_blend:
|
|
* @drawable_ID: The affected drawable.
|
|
* @blend_mode: The type of blend.
|
|
* @paint_mode: The paint application mode.
|
|
* @gradient_type: The type of gradient.
|
|
* @opacity: The opacity of the final blend.
|
|
* @offset: Offset relates to the starting and ending coordinates specified for the blend. This parameter is mode dependent.
|
|
* @repeat: Repeat mode.
|
|
* @reverse: Use the reverse gradient.
|
|
* @supersample: Do adaptive supersampling.
|
|
* @max_depth: Maximum recursion levels for supersampling.
|
|
* @threshold: Supersampling threshold.
|
|
* @dither: Use dithering to reduce banding.
|
|
* @x1: The x coordinate of this blend's starting point.
|
|
* @y1: The y coordinate of this blend's starting point.
|
|
* @x2: The x coordinate of this blend's ending point.
|
|
* @y2: The y coordinate of this blend's ending point.
|
|
*
|
|
* Blend between the starting and ending coordinates with the specified
|
|
* blend mode and gradient type.
|
|
*
|
|
* This tool requires information on the paint application mode, the
|
|
* blend mode, and the gradient type. It creates the specified variety
|
|
* of blend using the starting and ending coordinates as defined for
|
|
* each gradient type.
|
|
*
|
|
* Returns: TRUE on success.
|
|
*/
|
|
gboolean
|
|
gimp_edit_blend (gint32 drawable_ID,
|
|
GimpBlendMode blend_mode,
|
|
GimpLayerModeEffects paint_mode,
|
|
GimpGradientType gradient_type,
|
|
gdouble opacity,
|
|
gdouble offset,
|
|
GimpRepeatMode repeat,
|
|
gboolean reverse,
|
|
gboolean supersample,
|
|
gint max_depth,
|
|
gdouble threshold,
|
|
gboolean dither,
|
|
gdouble x1,
|
|
gdouble y1,
|
|
gdouble x2,
|
|
gdouble y2)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean success = TRUE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_blend",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_INT32, blend_mode,
|
|
GIMP_PDB_INT32, paint_mode,
|
|
GIMP_PDB_INT32, gradient_type,
|
|
GIMP_PDB_FLOAT, opacity,
|
|
GIMP_PDB_FLOAT, offset,
|
|
GIMP_PDB_INT32, repeat,
|
|
GIMP_PDB_INT32, reverse,
|
|
GIMP_PDB_INT32, supersample,
|
|
GIMP_PDB_INT32, max_depth,
|
|
GIMP_PDB_FLOAT, threshold,
|
|
GIMP_PDB_INT32, dither,
|
|
GIMP_PDB_FLOAT, x1,
|
|
GIMP_PDB_FLOAT, y1,
|
|
GIMP_PDB_FLOAT, x2,
|
|
GIMP_PDB_FLOAT, y2,
|
|
GIMP_PDB_END);
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* gimp_edit_stroke:
|
|
* @drawable_ID: The drawable to stroke to.
|
|
*
|
|
* Stroke the current selection
|
|
*
|
|
* This procedure strokes the current selection, painting along the
|
|
* selection boundary with the active brush and foreground color. The
|
|
* paint is applied to the specified drawable regardless of the active
|
|
* selection.
|
|
*
|
|
* Returns: TRUE on success.
|
|
*/
|
|
gboolean
|
|
gimp_edit_stroke (gint32 drawable_ID)
|
|
{
|
|
GimpParam *return_vals;
|
|
gint nreturn_vals;
|
|
gboolean success = TRUE;
|
|
|
|
return_vals = gimp_run_procedure ("gimp_edit_stroke",
|
|
&nreturn_vals,
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
GIMP_PDB_END);
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
return success;
|
|
}
|