summaryrefslogtreecommitdiffstats
path: root/libgimp/gimpgradient_pdb.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 /libgimp/gimpgradient_pdb.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 'libgimp/gimpgradient_pdb.c')
-rw-r--r--libgimp/gimpgradient_pdb.c1320
1 files changed, 1320 insertions, 0 deletions
diff --git a/libgimp/gimpgradient_pdb.c b/libgimp/gimpgradient_pdb.c
new file mode 100644
index 0000000..f47ee8f
--- /dev/null
+++ b/libgimp/gimpgradient_pdb.c
@@ -0,0 +1,1320 @@
+/* LIBGIMP - The GIMP Library
+ * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
+ *
+ * gimpgradient_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 <string.h>
+
+#include "gimp.h"
+
+
+/**
+ * SECTION: gimpgradient
+ * @title: gimpgradient
+ * @short_description: Functions operating on a single gradient.
+ *
+ * Functions operating on a single gradient.
+ **/
+
+
+/**
+ * gimp_gradient_new:
+ * @name: The requested name of the new gradient.
+ *
+ * Creates a new gradient
+ *
+ * This procedure creates a new, uninitialized gradient
+ *
+ * Returns: The actual new gradient name.
+ *
+ * Since: 2.2
+ **/
+gchar *
+gimp_gradient_new (const gchar *name)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gchar *actual_name = NULL;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-new",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_END);
+
+ if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+ actual_name = g_strdup (return_vals[1].data.d_string);
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return actual_name;
+}
+
+/**
+ * gimp_gradient_duplicate:
+ * @name: The gradient name.
+ *
+ * Duplicates a gradient
+ *
+ * This procedure creates an identical gradient by a different name
+ *
+ * Returns: The name of the gradient's copy.
+ *
+ * Since: 2.2
+ **/
+gchar *
+gimp_gradient_duplicate (const gchar *name)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gchar *copy_name = NULL;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-duplicate",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_END);
+
+ if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+ copy_name = g_strdup (return_vals[1].data.d_string);
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return copy_name;
+}
+
+/**
+ * gimp_gradient_is_editable:
+ * @name: The gradient name.
+ *
+ * Tests if gradient can be edited
+ *
+ * Returns TRUE if you have permission to change the gradient
+ *
+ * Returns: TRUE if the gradient can be edited.
+ *
+ * Since: 2.4
+ **/
+gboolean
+gimp_gradient_is_editable (const gchar *name)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean editable = FALSE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-is-editable",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_END);
+
+ if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+ editable = return_vals[1].data.d_int32;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return editable;
+}
+
+/**
+ * gimp_gradient_rename:
+ * @name: The gradient name.
+ * @new_name: The new name of the gradient.
+ *
+ * Rename a gradient
+ *
+ * This procedure renames a gradient
+ *
+ * Returns: The actual new name of the gradient.
+ *
+ * Since: 2.2
+ **/
+gchar *
+gimp_gradient_rename (const gchar *name,
+ const gchar *new_name)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gchar *actual_name = NULL;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-rename",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_STRING, new_name,
+ GIMP_PDB_END);
+
+ if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+ actual_name = g_strdup (return_vals[1].data.d_string);
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return actual_name;
+}
+
+/**
+ * gimp_gradient_delete:
+ * @name: The gradient name.
+ *
+ * Deletes a gradient
+ *
+ * This procedure deletes a gradient
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_delete (const gchar *name)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-delete",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_get_number_of_segments:
+ * @name: The gradient name.
+ *
+ * Returns the number of segments of the specified gradient
+ *
+ * This procedure returns the number of segments of the specified
+ * gradient.
+ *
+ * Returns: Number of segments.
+ *
+ * Since: 2.6
+ **/
+gint
+gimp_gradient_get_number_of_segments (const gchar *name)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gint num_segments = 0;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-get-number-of-segments",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_END);
+
+ if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+ num_segments = return_vals[1].data.d_int32;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return num_segments;
+}
+
+/**
+ * gimp_gradient_get_uniform_samples:
+ * @name: The gradient name.
+ * @num_samples: The number of samples to take.
+ * @reverse: Use the reverse gradient.
+ * @num_color_samples: Length of the color_samples array (4 * num_samples).
+ * @color_samples: Color samples: { R1, G1, B1, A1, ..., Rn, Gn, Bn, An }.
+ *
+ * Sample the specified in uniform parts.
+ *
+ * This procedure samples the active gradient in the specified number
+ * of uniform parts. It returns a list of floating-point values which
+ * correspond to the RGBA values for each sample. The minimum number of
+ * samples to take is 2, in which case the returned colors will
+ * correspond to the { 0.0, 1.0 } positions in the gradient. For
+ * example, if the number of samples is 3, the procedure will return
+ * the colors at positions { 0.0, 0.5, 1.0 }.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_get_uniform_samples (const gchar *name,
+ gint num_samples,
+ gboolean reverse,
+ gint *num_color_samples,
+ gdouble **color_samples)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-get-uniform-samples",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, num_samples,
+ GIMP_PDB_INT32, reverse,
+ GIMP_PDB_END);
+
+ *num_color_samples = 0;
+ *color_samples = NULL;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ {
+ *num_color_samples = return_vals[1].data.d_int32;
+ *color_samples = g_new (gdouble, *num_color_samples);
+ memcpy (*color_samples,
+ return_vals[2].data.d_floatarray,
+ *num_color_samples * sizeof (gdouble));
+ }
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_get_custom_samples:
+ * @name: The gradient name.
+ * @num_samples: The number of samples to take.
+ * @positions: The list of positions to sample along the gradient.
+ * @reverse: Use the reverse gradient.
+ * @num_color_samples: Length of the color_samples array (4 * num_samples).
+ * @color_samples: Color samples: { R1, G1, B1, A1, ..., Rn, Gn, Bn, An }.
+ *
+ * Sample the specified gradient in custom positions.
+ *
+ * This procedure samples the active gradient in the specified number
+ * of points. The procedure will sample the gradient in the specified
+ * positions from the list. The left endpoint of the gradient
+ * corresponds to position 0.0, and the right endpoint corresponds to
+ * 1.0. The procedure returns a list of floating-point values which
+ * correspond to the RGBA values for each sample.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_get_custom_samples (const gchar *name,
+ gint num_samples,
+ const gdouble *positions,
+ gboolean reverse,
+ gint *num_color_samples,
+ gdouble **color_samples)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-get-custom-samples",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, num_samples,
+ GIMP_PDB_FLOATARRAY, positions,
+ GIMP_PDB_INT32, reverse,
+ GIMP_PDB_END);
+
+ *num_color_samples = 0;
+ *color_samples = NULL;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ {
+ *num_color_samples = return_vals[1].data.d_int32;
+ *color_samples = g_new (gdouble, *num_color_samples);
+ memcpy (*color_samples,
+ return_vals[2].data.d_floatarray,
+ *num_color_samples * sizeof (gdouble));
+ }
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_left_color:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @color: The return color.
+ * @opacity: The opacity of the endpoint.
+ *
+ * Retrieves the left endpoint color of the specified segment
+ *
+ * This procedure retrieves the left endpoint color of the specified
+ * segment of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_left_color (const gchar *name,
+ gint segment,
+ GimpRGB *color,
+ gdouble *opacity)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-left-color",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *opacity = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ {
+ *color = return_vals[1].data.d_color;
+ *opacity = return_vals[2].data.d_float;
+ }
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_set_left_color:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @color: The color to set.
+ * @opacity: The opacity to set for the endpoint.
+ *
+ * Sets the left endpoint color of the specified segment
+ *
+ * This procedure sets the left endpoint color of the specified segment
+ * of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_set_left_color (const gchar *name,
+ gint segment,
+ const GimpRGB *color,
+ gdouble opacity)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-set-left-color",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_COLOR, color,
+ GIMP_PDB_FLOAT, opacity,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_right_color:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @color: The return color.
+ * @opacity: The opacity of the endpoint.
+ *
+ * Retrieves the right endpoint color of the specified segment
+ *
+ * This procedure retrieves the right endpoint color of the specified
+ * segment of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_right_color (const gchar *name,
+ gint segment,
+ GimpRGB *color,
+ gdouble *opacity)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-right-color",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *opacity = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ {
+ *color = return_vals[1].data.d_color;
+ *opacity = return_vals[2].data.d_float;
+ }
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_set_right_color:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @color: The color to set.
+ * @opacity: The opacity to set for the endpoint.
+ *
+ * Sets the right endpoint color of the specified segment
+ *
+ * This procedure sets the right endpoint color of the specified
+ * segment of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_set_right_color (const gchar *name,
+ gint segment,
+ const GimpRGB *color,
+ gdouble opacity)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-set-right-color",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_COLOR, color,
+ GIMP_PDB_FLOAT, opacity,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_left_pos:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @pos: The return position.
+ *
+ * Retrieves the left endpoint position of the specified segment
+ *
+ * This procedure retrieves the left endpoint position of the specified
+ * segment of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_left_pos (const gchar *name,
+ gint segment,
+ gdouble *pos)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-left-pos",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *pos = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *pos = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_set_left_pos:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @pos: The position to set the guidepoint to.
+ * @final_pos: The return position.
+ *
+ * Sets the left endpoint position of the specified segment
+ *
+ * This procedure sets the left endpoint position of the specified
+ * segment of the specified gradient. The final position will be
+ * between the position of the middle point to the left to the middle
+ * point of the current segment.
+ * This procedure returns the final position.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_set_left_pos (const gchar *name,
+ gint segment,
+ gdouble pos,
+ gdouble *final_pos)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-set-left-pos",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_FLOAT, pos,
+ GIMP_PDB_END);
+
+ *final_pos = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *final_pos = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_middle_pos:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @pos: The return position.
+ *
+ * Retrieves the middle point position of the specified segment
+ *
+ * This procedure retrieves the middle point position of the specified
+ * segment of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_middle_pos (const gchar *name,
+ gint segment,
+ gdouble *pos)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-middle-pos",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *pos = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *pos = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_set_middle_pos:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @pos: The position to set the guidepoint to.
+ * @final_pos: The return position.
+ *
+ * Sets the middle point position of the specified segment
+ *
+ * This procedure sets the middle point position of the specified
+ * segment of the specified gradient. The final position will be
+ * between the two endpoints of the segment.
+ * This procedure returns the final position.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_set_middle_pos (const gchar *name,
+ gint segment,
+ gdouble pos,
+ gdouble *final_pos)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-set-middle-pos",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_FLOAT, pos,
+ GIMP_PDB_END);
+
+ *final_pos = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *final_pos = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_right_pos:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @pos: The return position.
+ *
+ * Retrieves the right endpoint position of the specified segment
+ *
+ * This procedure retrieves the right endpoint position of the
+ * specified segment of the specified gradient.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_right_pos (const gchar *name,
+ gint segment,
+ gdouble *pos)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-right-pos",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *pos = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *pos = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_set_right_pos:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @pos: The position to set the guidepoint to.
+ * @final_pos: The return position.
+ *
+ * Sets the right endpoint position of the specified segment
+ *
+ * This procedure sets the right endpoint position of the specified
+ * segment of the specified gradient. The final position will be
+ * between the position of the middle point of the current segment and
+ * the middle point of the segment to the right.
+ * This procedure returns the final position.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_set_right_pos (const gchar *name,
+ gint segment,
+ gdouble pos,
+ gdouble *final_pos)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-set-right-pos",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_FLOAT, pos,
+ GIMP_PDB_END);
+
+ *final_pos = 0.0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *final_pos = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_blending_function:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @blend_func: The blending function of the segment.
+ *
+ * Retrieves the gradient segment's blending function
+ *
+ * This procedure retrieves the blending function of the segment at the
+ * specified gradient name and segment index.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_blending_function (const gchar *name,
+ gint segment,
+ GimpGradientSegmentType *blend_func)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-blending-function",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *blend_func = 0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *blend_func = return_vals[1].data.d_int32;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_get_coloring_type:
+ * @name: The gradient name.
+ * @segment: The index of the segment within the gradient.
+ * @coloring_type: The coloring type of the segment.
+ *
+ * Retrieves the gradient segment's coloring type
+ *
+ * This procedure retrieves the coloring type of the segment at the
+ * specified gradient name and segment index.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_get_coloring_type (const gchar *name,
+ gint segment,
+ GimpGradientSegmentColor *coloring_type)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-get-coloring-type",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, segment,
+ GIMP_PDB_END);
+
+ *coloring_type = 0;
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ if (success)
+ *coloring_type = return_vals[1].data.d_int32;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_set_blending_function:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ * @blending_function: The blending function.
+ *
+ * Change the blending function of a segments range
+ *
+ * This function changes the blending function of a segment range to
+ * the specified blending function.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_set_blending_function (const gchar *name,
+ gint start_segment,
+ gint end_segment,
+ GimpGradientSegmentType blending_function)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-set-blending-function",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_INT32, blending_function,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_set_coloring_type:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ * @coloring_type: The coloring type.
+ *
+ * Change the coloring type of a segments range
+ *
+ * This function changes the coloring type of a segment range to the
+ * specified coloring type.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_set_coloring_type (const gchar *name,
+ gint start_segment,
+ gint end_segment,
+ GimpGradientSegmentColor coloring_type)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-set-coloring-type",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_INT32, coloring_type,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_flip:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ *
+ * Flip the segment range
+ *
+ * This function flips a segment range.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_flip (const gchar *name,
+ gint start_segment,
+ gint end_segment)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-flip",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_replicate:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ * @replicate_times: The number of times to replicate.
+ *
+ * Replicate the segment range
+ *
+ * This function replicates a segment range a given number of times.
+ * Instead of the original segment range, several smaller scaled copies
+ * of it will appear in equal widths.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_replicate (const gchar *name,
+ gint start_segment,
+ gint end_segment,
+ gint replicate_times)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-replicate",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_INT32, replicate_times,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_split_midpoint:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ *
+ * Splits each segment in the segment range at midpoint
+ *
+ * This function splits each segment in the segment range at its
+ * midpoint.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_split_midpoint (const gchar *name,
+ gint start_segment,
+ gint end_segment)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-split-midpoint",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_split_uniform:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ * @split_parts: The number of uniform divisions to split each segment to.
+ *
+ * Splits each segment in the segment range uniformly
+ *
+ * This function splits each segment in the segment range uniformly
+ * according to the number of times specified by the parameter.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_split_uniform (const gchar *name,
+ gint start_segment,
+ gint end_segment,
+ gint split_parts)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-split-uniform",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_INT32, split_parts,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_delete:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ *
+ * Delete the segment range
+ *
+ * This function deletes a segment range.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_delete (const gchar *name,
+ gint start_segment,
+ gint end_segment)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-delete",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_redistribute_handles:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ *
+ * Uniformly redistribute the segment range's handles
+ *
+ * This function redistributes the handles of the specified segment
+ * range of the specified gradient, so they'll be evenly spaced.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_redistribute_handles (const gchar *name,
+ gint start_segment,
+ gint end_segment)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-redistribute-handles",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_blend_colors:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ *
+ * Blend the colors of the segment range.
+ *
+ * This function blends the colors (but not the opacity) of the
+ * segments' range of the gradient. Using it, the colors' transition
+ * will be uniform across the range.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_blend_colors (const gchar *name,
+ gint start_segment,
+ gint end_segment)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-blend-colors",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_blend_opacity:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ *
+ * Blend the opacity of the segment range.
+ *
+ * This function blends the opacity (but not the colors) of the
+ * segments' range of the gradient. Using it, the opacity's transition
+ * will be uniform across the range.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.2
+ **/
+gboolean
+gimp_gradient_segment_range_blend_opacity (const gchar *name,
+ gint start_segment,
+ gint end_segment)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gboolean success = TRUE;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-blend-opacity",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_END);
+
+ success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return success;
+}
+
+/**
+ * gimp_gradient_segment_range_move:
+ * @name: The gradient name.
+ * @start_segment: The index of the first segment to operate on.
+ * @end_segment: The index of the last segment to operate on. If negative, the selection will extend to the end of the string.
+ * @delta: The delta to move the segment range.
+ * @control_compress: Whether or not to compress the neighboring segments.
+ *
+ * Move the position of an entire segment range by a delta.
+ *
+ * This function moves the position of an entire segment range by a
+ * delta. The actual delta (which is returned) will be limited by the
+ * control points of the neighboring segments.
+ *
+ * Returns: The final delta by which the range moved.
+ *
+ * Since: 2.2
+ **/
+gdouble
+gimp_gradient_segment_range_move (const gchar *name,
+ gint start_segment,
+ gint end_segment,
+ gdouble delta,
+ gboolean control_compress)
+{
+ GimpParam *return_vals;
+ gint nreturn_vals;
+ gdouble final_delta = 0.0;
+
+ return_vals = gimp_run_procedure ("gimp-gradient-segment-range-move",
+ &nreturn_vals,
+ GIMP_PDB_STRING, name,
+ GIMP_PDB_INT32, start_segment,
+ GIMP_PDB_INT32, end_segment,
+ GIMP_PDB_FLOAT, delta,
+ GIMP_PDB_INT32, control_compress,
+ GIMP_PDB_END);
+
+ if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+ final_delta = return_vals[1].data.d_float;
+
+ gimp_destroy_params (return_vals, nreturn_vals);
+
+ return final_delta;
+}