/* 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 * . */ /* NOTE: This file is auto-generated by pdbgen.pl */ #include "config.h" #include #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; }