static GValueArray * channel_copy_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GValueArray *args) { gboolean success = TRUE; GValueArray *return_vals; GimpChannel *channel; GimpChannel *channel_copy = NULL; channel = gimp_value_get_channel (&args->values[0], gimp); if (success) { channel_copy = GIMP_CHANNEL (gimp_item_duplicate (GIMP_ITEM (channel), G_TYPE_FROM_INSTANCE (channel), FALSE)); if (! channel_copy) success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success); if (success) gimp_value_set_channel (&return_vals->values[1], channel_copy); return return_vals; }
static GimpValueArray * channel_copy_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GimpValueArray *args, GError **error) { gboolean success = TRUE; GimpValueArray *return_vals; GimpChannel *channel; GimpChannel *channel_copy = NULL; channel = gimp_value_get_channel (gimp_value_array_index (args, 0), gimp); if (success) { channel_copy = GIMP_CHANNEL (gimp_item_duplicate (GIMP_ITEM (channel), G_TYPE_FROM_INSTANCE (channel))); if (! channel_copy) success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) gimp_value_set_channel (gimp_value_array_index (return_vals, 1), channel_copy); return return_vals; }
static GimpValueArray * selection_save_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GimpValueArray *args, GError **error) { gboolean success = TRUE; GimpValueArray *return_vals; GimpImage *image; GimpChannel *channel = NULL; image = gimp_value_get_image (gimp_value_array_index (args, 0), gimp); if (success) { channel = gimp_selection_save (GIMP_SELECTION (gimp_image_get_mask (image))); if (! channel) success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) gimp_value_set_channel (gimp_value_array_index (return_vals, 1), channel); return return_vals; }
static GValueArray * selection_save_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GValueArray *args, GError **error) { gboolean success = TRUE; GValueArray *return_vals; GimpImage *image; GimpChannel *channel = NULL; image = gimp_value_get_image (&args->values[0], gimp); if (success) { channel = gimp_selection_save (gimp_image_get_mask (image)); if (! channel) success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) gimp_value_set_channel (&return_vals->values[1], channel); return return_vals; }
static GValueArray * channel_new_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GValueArray *args, GError **error) { gboolean success = TRUE; GValueArray *return_vals; GimpImage *image; gint32 width; gint32 height; const gchar *name; gdouble opacity; GimpRGB color; GimpChannel *channel = NULL; image = gimp_value_get_image (&args->values[0], gimp); width = g_value_get_int (&args->values[1]); height = g_value_get_int (&args->values[2]); name = g_value_get_string (&args->values[3]); opacity = g_value_get_double (&args->values[4]); gimp_value_get_rgb (&args->values[5], &color); if (success) { GimpRGB rgb_color = color; rgb_color.a = opacity / 100.0; channel = gimp_channel_new (image, width, height, name, &rgb_color); if (! channel) success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) gimp_value_set_channel (&return_vals->values[1], channel); return return_vals; }
static GValueArray * channel_new_from_component_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GValueArray *args, GError **error) { gboolean success = TRUE; GValueArray *return_vals; GimpImage *image; gint32 component; const gchar *name; GimpChannel *channel = NULL; image = gimp_value_get_image (&args->values[0], gimp); component = g_value_get_enum (&args->values[1]); name = g_value_get_string (&args->values[2]); if (success) { if (gimp_image_get_component_index (image, component) != -1) channel = gimp_channel_new_from_component (image, component, name, NULL); if (channel) gimp_item_set_visible (GIMP_ITEM (channel), FALSE, FALSE); else success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) gimp_value_set_channel (&return_vals->values[1], channel); return return_vals; }