347 lines
12 KiB
C
347 lines
12 KiB
C
/* LIBPIKA - The PIKA Library
|
|
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
|
|
*
|
|
* pikadrawableedit_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 3 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, see
|
|
* <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/* NOTE: This file is auto-generated by pdbgen.pl */
|
|
|
|
#include "config.h"
|
|
|
|
#include "stamp-pdbgen.h"
|
|
|
|
#include "pika.h"
|
|
|
|
|
|
/**
|
|
* SECTION: pikadrawableedit
|
|
* @title: pikadrawableedit
|
|
* @short_description: Drawable edit functions (clear, fill, gradient, stroke etc.)
|
|
*
|
|
* Drawable edit functions (clear, fill, gradient, stroke etc.)
|
|
**/
|
|
|
|
|
|
/**
|
|
* pika_drawable_edit_clear:
|
|
* @drawable: 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.
|
|
*
|
|
* This procedure is affected by the following context setters:
|
|
* pika_context_set_background().
|
|
*
|
|
* Returns: TRUE on success.
|
|
**/
|
|
gboolean
|
|
pika_drawable_edit_clear (PikaDrawable *drawable)
|
|
{
|
|
PikaValueArray *args;
|
|
PikaValueArray *return_vals;
|
|
gboolean success = TRUE;
|
|
|
|
args = pika_value_array_new_from_types (NULL,
|
|
PIKA_TYPE_DRAWABLE, drawable,
|
|
G_TYPE_NONE);
|
|
|
|
return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (),
|
|
"pika-drawable-edit-clear",
|
|
args);
|
|
pika_value_array_unref (args);
|
|
|
|
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
|
|
|
|
pika_value_array_unref (return_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* pika_drawable_edit_fill:
|
|
* @drawable: The drawable to fill to.
|
|
* @fill_type: The type of fill.
|
|
*
|
|
* Fill selected area of drawable.
|
|
*
|
|
* This procedure fills the specified drawable according to fill mode.
|
|
* 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 pika_drawable_fill().
|
|
*
|
|
* This procedure is affected by the following context setters:
|
|
* pika_context_set_opacity(), pika_context_set_paint_mode(),
|
|
* pika_context_set_foreground(), pika_context_set_background(),
|
|
* pika_context_set_pattern().
|
|
*
|
|
* Returns: TRUE on success.
|
|
**/
|
|
gboolean
|
|
pika_drawable_edit_fill (PikaDrawable *drawable,
|
|
PikaFillType fill_type)
|
|
{
|
|
PikaValueArray *args;
|
|
PikaValueArray *return_vals;
|
|
gboolean success = TRUE;
|
|
|
|
args = pika_value_array_new_from_types (NULL,
|
|
PIKA_TYPE_DRAWABLE, drawable,
|
|
PIKA_TYPE_FILL_TYPE, fill_type,
|
|
G_TYPE_NONE);
|
|
|
|
return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (),
|
|
"pika-drawable-edit-fill",
|
|
args);
|
|
pika_value_array_unref (args);
|
|
|
|
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
|
|
|
|
pika_value_array_unref (return_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* pika_drawable_edit_bucket_fill:
|
|
* @drawable: The affected drawable.
|
|
* @fill_type: The type of fill.
|
|
* @x: The x coordinate of this bucket fill's application.
|
|
* @y: The y coordinate of this bucket fill's application.
|
|
*
|
|
* Fill the area by a seed fill starting at the specified coordinates.
|
|
*
|
|
* This procedure does a seed fill at the specified coordinates, using
|
|
* various parameters from the current context.
|
|
* 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.
|
|
*
|
|
* This procedure is affected by the following context setters:
|
|
* pika_context_set_opacity(), pika_context_set_paint_mode(),
|
|
* pika_context_set_foreground(), pika_context_set_background(),
|
|
* pika_context_set_pattern(), pika_context_set_sample_threshold(),
|
|
* pika_context_set_sample_merged(),
|
|
* pika_context_set_sample_criterion(),
|
|
* pika_context_set_diagonal_neighbors(), pika_context_set_antialias().
|
|
*
|
|
* Returns: TRUE on success.
|
|
*
|
|
* Since: 2.10
|
|
**/
|
|
gboolean
|
|
pika_drawable_edit_bucket_fill (PikaDrawable *drawable,
|
|
PikaFillType fill_type,
|
|
gdouble x,
|
|
gdouble y)
|
|
{
|
|
PikaValueArray *args;
|
|
PikaValueArray *return_vals;
|
|
gboolean success = TRUE;
|
|
|
|
args = pika_value_array_new_from_types (NULL,
|
|
PIKA_TYPE_DRAWABLE, drawable,
|
|
PIKA_TYPE_FILL_TYPE, fill_type,
|
|
G_TYPE_DOUBLE, x,
|
|
G_TYPE_DOUBLE, y,
|
|
G_TYPE_NONE);
|
|
|
|
return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (),
|
|
"pika-drawable-edit-bucket-fill",
|
|
args);
|
|
pika_value_array_unref (args);
|
|
|
|
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
|
|
|
|
pika_value_array_unref (return_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* pika_drawable_edit_gradient_fill:
|
|
* @drawable: The affected drawable.
|
|
* @gradient_type: The type of gradient.
|
|
* @offset: Offset relates to the starting and ending coordinates specified for the blend. This parameter is mode dependent.
|
|
* @supersample: Do adaptive supersampling.
|
|
* @supersample_max_depth: Maximum recursion levels for supersampling.
|
|
* @supersample_threshold: Supersampling threshold.
|
|
* @dither: Use dithering to reduce banding.
|
|
* @x1: The x coordinate of this gradient's starting point.
|
|
* @y1: The y coordinate of this gradient's starting point.
|
|
* @x2: The x coordinate of this gradient's ending point.
|
|
* @y2: The y coordinate of this gradient's ending point.
|
|
*
|
|
* Draw a gradient between the starting and ending coordinates with the
|
|
* specified gradient type.
|
|
*
|
|
* This tool requires information on the gradient type. It creates the
|
|
* specified variety of gradient using the starting and ending
|
|
* coordinates as defined for each gradient type. For shapeburst
|
|
* gradient types, the context's distance metric is also relevant and
|
|
* can be updated with pika_context_set_distance_metric().
|
|
*
|
|
* This procedure is affected by the following context setters:
|
|
* pika_context_set_opacity(), pika_context_set_paint_mode(),
|
|
* pika_context_set_foreground(), pika_context_set_background(),
|
|
* pika_context_set_gradient() and all gradient property settings,
|
|
* pika_context_set_distance_metric().
|
|
*
|
|
* Returns: TRUE on success.
|
|
*
|
|
* Since: 2.10
|
|
**/
|
|
gboolean
|
|
pika_drawable_edit_gradient_fill (PikaDrawable *drawable,
|
|
PikaGradientType gradient_type,
|
|
gdouble offset,
|
|
gboolean supersample,
|
|
gint supersample_max_depth,
|
|
gdouble supersample_threshold,
|
|
gboolean dither,
|
|
gdouble x1,
|
|
gdouble y1,
|
|
gdouble x2,
|
|
gdouble y2)
|
|
{
|
|
PikaValueArray *args;
|
|
PikaValueArray *return_vals;
|
|
gboolean success = TRUE;
|
|
|
|
args = pika_value_array_new_from_types (NULL,
|
|
PIKA_TYPE_DRAWABLE, drawable,
|
|
PIKA_TYPE_GRADIENT_TYPE, gradient_type,
|
|
G_TYPE_DOUBLE, offset,
|
|
G_TYPE_BOOLEAN, supersample,
|
|
G_TYPE_INT, supersample_max_depth,
|
|
G_TYPE_DOUBLE, supersample_threshold,
|
|
G_TYPE_BOOLEAN, dither,
|
|
G_TYPE_DOUBLE, x1,
|
|
G_TYPE_DOUBLE, y1,
|
|
G_TYPE_DOUBLE, x2,
|
|
G_TYPE_DOUBLE, y2,
|
|
G_TYPE_NONE);
|
|
|
|
return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (),
|
|
"pika-drawable-edit-gradient-fill",
|
|
args);
|
|
pika_value_array_unref (args);
|
|
|
|
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
|
|
|
|
pika_value_array_unref (return_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* pika_drawable_edit_stroke_selection:
|
|
* @drawable: The drawable to stroke to.
|
|
*
|
|
* Stroke the current selection
|
|
*
|
|
* This procedure strokes the current selection, painting along the
|
|
* selection boundary with the active paint method and brush, or using
|
|
* a plain line with configurable properties. The paint is applied to
|
|
* the specified drawable regardless of the active selection.
|
|
*
|
|
* This procedure is affected by the following context setters:
|
|
* pika_context_set_opacity(), pika_context_set_paint_mode(),
|
|
* pika_context_set_paint_method(), pika_context_set_stroke_method(),
|
|
* pika_context_set_foreground(), pika_context_set_brush() and all
|
|
* brush property settings, pika_context_set_gradient() and all
|
|
* gradient property settings, pika_context_set_line_width() and all
|
|
* line property settings, pika_context_set_antialias().
|
|
*
|
|
* Returns: TRUE on success.
|
|
**/
|
|
gboolean
|
|
pika_drawable_edit_stroke_selection (PikaDrawable *drawable)
|
|
{
|
|
PikaValueArray *args;
|
|
PikaValueArray *return_vals;
|
|
gboolean success = TRUE;
|
|
|
|
args = pika_value_array_new_from_types (NULL,
|
|
PIKA_TYPE_DRAWABLE, drawable,
|
|
G_TYPE_NONE);
|
|
|
|
return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (),
|
|
"pika-drawable-edit-stroke-selection",
|
|
args);
|
|
pika_value_array_unref (args);
|
|
|
|
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
|
|
|
|
pika_value_array_unref (return_vals);
|
|
|
|
return success;
|
|
}
|
|
|
|
/**
|
|
* pika_drawable_edit_stroke_item:
|
|
* @drawable: The drawable to stroke to.
|
|
* @item: The item to stroke.
|
|
*
|
|
* Stroke the specified item
|
|
*
|
|
* This procedure strokes the specified item, painting along its
|
|
* outline (e.g. along a path, or along a channel's boundary), with the
|
|
* active paint method and brush, or using a plain line with
|
|
* configurable properties.
|
|
*
|
|
* This procedure is affected by the following context setters:
|
|
* pika_context_set_opacity(), pika_context_set_paint_mode(),
|
|
* pika_context_set_paint_method(), pika_context_set_stroke_method(),
|
|
* pika_context_set_foreground(), pika_context_set_brush() and all
|
|
* brush property settings, pika_context_set_gradient() and all
|
|
* gradient property settings, pika_context_set_line_width() and all
|
|
* line property settings, pika_context_set_antialias().
|
|
*
|
|
* Returns: TRUE on success.
|
|
*
|
|
* Since: 2.10
|
|
**/
|
|
gboolean
|
|
pika_drawable_edit_stroke_item (PikaDrawable *drawable,
|
|
PikaItem *item)
|
|
{
|
|
PikaValueArray *args;
|
|
PikaValueArray *return_vals;
|
|
gboolean success = TRUE;
|
|
|
|
args = pika_value_array_new_from_types (NULL,
|
|
PIKA_TYPE_DRAWABLE, drawable,
|
|
PIKA_TYPE_ITEM, item,
|
|
G_TYPE_NONE);
|
|
|
|
return_vals = _pika_pdb_run_procedure_array (pika_get_pdb (),
|
|
"pika-drawable-edit-stroke-item",
|
|
args);
|
|
pika_value_array_unref (args);
|
|
|
|
success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS;
|
|
|
|
pika_value_array_unref (return_vals);
|
|
|
|
return success;
|
|
}
|