gimp/libgimp/gimpchannel_pdb.c
Sven Neumann 243c5f4929 app/channel_cmds.c app/layer_cmds.c libgimp/gimpchannel_pdb.c
2000-12-28  Sven Neumann  <sven@gimp.org>

	* app/channel_cmds.c
	* app/layer_cmds.c
	* libgimp/gimpchannel_pdb.c
	* libgimp/gimplayer_pdb.c
	* plug-ins/common/warp.c
	* plug-ins/gap/gap_exchange_image.c
	* plug-ins/gap/gap_range_ops.c
	* plug-ins/perl/examples/bricks
	* plug-ins/perl/examples/glowing_steel
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/layer.pdb:

	Two of the gimp-perl scripts used to call gimp_layer_delete() after
	gimp_image_remove_layer(). This will fail since the layer is already
	scheduled for destruction by removing it from the associated image or
	by deleting that image. It is thus dangerous and superfluous to export
	this feature through the PDB. The gimp_layer_delete() is hereby
	obsolete and does nothing any longer. I have removed the code calling
	it from all over the place (it was commented out in almost all places).

	The PDB help for gimp_channel_delete() now explicetly tells the user
	about the proper usage of the procedure.
2000-12-27 23:49:17 +00:00

552 lines
13 KiB
C

/* LIBGIMP - The GIMP Library
* Copyright (C) 1995-2000 Peter Mattis and Spencer Kimball
*
* gimpchannel_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 "gimp.h"
/**
* _gimp_channel_new:
* @image_ID: The image to which to add the channel.
* @width: The channel width.
* @height: The channel height.
* @name: The channel name.
* @opacity: The channel opacity.
* @red:
* @green:
* @blue: The channel compositing color.
*
* Create a new channel.
*
* This procedure creates a new channel with the specified width and
* height. Name, opacity, and color are also supplied parameters. The
* new channel still needs to be added to the image, as this is not
* automatic. Add the new channel with the 'gimp_image_add_channel'
* command. Other attributes such as channel show masked, should be set
* with explicit procedure calls. The channel's contents are undefined
* initially.
*
* Returns: The newly created channel.
*/
gint32
_gimp_channel_new (gint32 image_ID,
gint width,
gint height,
gchar *name,
gdouble opacity,
guchar red,
guchar green,
guchar blue)
{
GimpParam *return_vals;
gint nreturn_vals;
gint32 channel_ID = -1;
guchar color[3];
color[0] = red;
color[1] = green;
color[2] = blue;
return_vals = gimp_run_procedure ("gimp_channel_new",
&nreturn_vals,
GIMP_PDB_IMAGE, image_ID,
GIMP_PDB_INT32, width,
GIMP_PDB_INT32, height,
GIMP_PDB_STRING, name,
GIMP_PDB_FLOAT, opacity,
GIMP_PDB_COLOR, color,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
channel_ID = return_vals[1].data.d_channel;
gimp_destroy_params (return_vals, nreturn_vals);
return channel_ID;
}
/**
* gimp_channel_copy:
* @channel_ID: The channel to copy.
*
* Copy a channel.
*
* This procedure copies the specified channel and returns the copy.
*
* Returns: The newly copied channel.
*/
gint32
gimp_channel_copy (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gint32 channel_copy_ID = -1;
return_vals = gimp_run_procedure ("gimp_channel_copy",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
channel_copy_ID = return_vals[1].data.d_channel;
gimp_destroy_params (return_vals, nreturn_vals);
return channel_copy_ID;
}
/**
* gimp_channel_delete:
* @channel_ID: The channel to delete.
*
* Delete a channel.
*
* This procedure deletes the specified channel. This must not be done
* if the gimage containing this channel was already deleted or if the
* channel was already removed from the image. The only case in which
* this procedure is useful is if you want to get rid of a channel
* which has not yet been added to an image.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_delete (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_delete",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_channel_get_name:
* @channel_ID: The channel.
*
* Get the name of the specified channel.
*
* This procedure returns the specified channel's name.
*
* Returns: The channel name.
*/
gchar *
gimp_channel_get_name (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gchar *name = NULL;
return_vals = gimp_run_procedure ("gimp_channel_get_name",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
name = g_strdup (return_vals[1].data.d_string);
gimp_destroy_params (return_vals, nreturn_vals);
return name;
}
/**
* gimp_channel_set_name:
* @channel_ID: The channel.
* @name: The new channel name.
*
* Set the name of the specified channel.
*
* This procedure sets the specified channel's name.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_set_name (gint32 channel_ID,
gchar *name)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_set_name",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
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_channel_get_visible:
* @channel_ID: The channel.
*
* Get the visibility of the specified channel.
*
* This procedure returns the specified channel's visibility.
*
* Returns: The channel visibility.
*/
gboolean
gimp_channel_get_visible (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean visible = FALSE;
return_vals = gimp_run_procedure ("gimp_channel_get_visible",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
visible = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
return visible;
}
/**
* gimp_channel_set_visible:
* @channel_ID: The channel.
* @visible: The new channel visibility.
*
* Set the visibility of the specified channel.
*
* This procedure sets the specified channel's visibility.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_set_visible (gint32 channel_ID,
gboolean visible)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_set_visible",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_INT32, visible,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_channel_get_show_masked:
* @channel_ID: The channel.
*
* Get the composite method of the specified channel.
*
* This procedure returns the specified channel's composite method. If
* it is non-zero, then the channel is composited with the image so
* that masked regions are shown. Otherwise, selected regions are
* shown.
*
* Returns: The channel composite method.
*/
gboolean
gimp_channel_get_show_masked (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean show_masked = FALSE;
return_vals = gimp_run_procedure ("gimp_channel_get_show_masked",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
show_masked = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
return show_masked;
}
/**
* gimp_channel_set_show_masked:
* @channel_ID: The channel.
* @show_masked: The new channel composite method.
*
* Set the composite method of the specified channel.
*
* This procedure sets the specified channel's composite method. If it
* is non-zero, then the channel is composited with the image so that
* masked regions are shown. Otherwise, selected regions are shown.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_set_show_masked (gint32 channel_ID,
gboolean show_masked)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_set_show_masked",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_INT32, show_masked,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_channel_get_opacity:
* @channel_ID: The channel.
*
* Get the opacity of the specified channel.
*
* This procedure returns the specified channel's opacity.
*
* Returns: The channel opacity.
*/
gdouble
gimp_channel_get_opacity (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gdouble opacity = 0;
return_vals = gimp_run_procedure ("gimp_channel_get_opacity",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
opacity = return_vals[1].data.d_float;
gimp_destroy_params (return_vals, nreturn_vals);
return opacity;
}
/**
* gimp_channel_set_opacity:
* @channel_ID: The channel.
* @opacity: The new channel opacity.
*
* Set the opacity of the specified channel.
*
* This procedure sets the specified channel's opacity.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_set_opacity (gint32 channel_ID,
gdouble opacity)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_set_opacity",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
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_channel_get_color:
* @channel_ID: The channel.
* @red:
* @green:
* @blue: The channel compositing color.
*
* Get the compositing color of the specified channel.
*
* This procedure returns the specified channel's compositing color.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_get_color (gint32 channel_ID,
guchar *red,
guchar *green,
guchar *blue)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_get_color",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
if (success)
{
*red = return_vals[1].data.d_color.red;
*green = return_vals[1].data.d_color.green;
*blue = return_vals[1].data.d_color.blue;
}
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_channel_set_color:
* @channel_ID: The channel.
* @red:
* @green:
* @blue: The new channel compositing color.
*
* Set the compositing color of the specified channel.
*
* This procedure sets the specified channel's compositing color.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_set_color (gint32 channel_ID,
guchar red,
guchar green,
guchar blue)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
guchar color[3];
color[0] = red;
color[1] = green;
color[2] = blue;
return_vals = gimp_run_procedure ("gimp_channel_set_color",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_COLOR, color,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_channel_get_tattoo:
* @channel_ID: The channel.
*
* Get the tattoo of the specified channel.
*
* This procedure returns the specified channel's tattoo. A tattoo is a
* unique and permanent identifier attached to a channel that can be
* used to uniquely identify a channel within an image even between
* sessions.
*
* Returns: The channel tattoo.
*/
gint
gimp_channel_get_tattoo (gint32 channel_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gint tattoo = 0;
return_vals = gimp_run_procedure ("gimp_channel_get_tattoo",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
tattoo = return_vals[1].data.d_tattoo;
gimp_destroy_params (return_vals, nreturn_vals);
return tattoo;
}
/**
* gimp_channel_set_tattoo:
* @channel_ID: The channel.
* @tattoo: The new channel tattoo.
*
* Set the tattoo of the specified channel.
*
* This procedure sets the specified channel's tattoo. A tattoo is a
* unique and permanent identifier attached to a channel that can be
* used to uniquely identify a channel within an image even between
* sessions.
*
* Returns: TRUE on success.
*/
gboolean
gimp_channel_set_tattoo (gint32 channel_ID,
gint tattoo)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp_channel_set_tattoo",
&nreturn_vals,
GIMP_PDB_CHANNEL, channel_ID,
GIMP_PDB_INT32, tattoo,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}