tools/pdbgen/pdb/buffer.pdb tools/pdbgen/pdb/color.pdb

2006-03-22  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb/buffer.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/display.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/drawable_transform.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/font_select.pdb
	* tools/pdbgen/pdb/gimprc.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/text_tool.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: more perl stuff flattened,
	cleanup, nitpickyness.

	* app/pdb/buffer_cmds.c
	* app/pdb/color_cmds.c
	* app/pdb/display_cmds.c
	* app/pdb/drawable_cmds.c
	* app/pdb/layer_cmds.c
	* app/pdb/selection_cmds.c
	* libgimp/gimpselection_pdb.[ch]: regenerated.
This commit is contained in:
Michael Natterer 2006-03-22 17:19:14 +00:00 committed by Michael Natterer
parent f5ba454874
commit dfc1fbde62
21 changed files with 456 additions and 210 deletions

View file

@ -1,3 +1,27 @@
2006-03-22 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/buffer.pdb
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/display.pdb
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/drawable_transform.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/font_select.pdb
* tools/pdbgen/pdb/gimprc.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/text_tool.pdb
* tools/pdbgen/pdb/transform_tools.pdb: more perl stuff flattened,
cleanup, nitpickyness.
* app/pdb/buffer_cmds.c
* app/pdb/color_cmds.c
* app/pdb/display_cmds.c
* app/pdb/drawable_cmds.c
* app/pdb/layer_cmds.c
* app/pdb/selection_cmds.c
* libgimp/gimpselection_pdb.[ch]: regenerated.
2006-03-22 Sven Neumann <sven@gimp.org>
* app/base/siox.c (siox_foreground_extract): fixed assertions and

View file

@ -70,7 +70,10 @@ buffers_get_list_invoker (Gimp *gimp,
success = FALSE;
if (success)
buffer_list = gimp_container_get_filtered_name_array (gimp->named_buffers, filter, &num_buffers);
{
buffer_list = gimp_container_get_filtered_name_array (gimp->named_buffers,
filter, &num_buffers);
}
return_args = procedural_db_return_args (&buffers_get_list_proc, success);
@ -149,13 +152,13 @@ buffer_rename_invoker (Gimp *gimp,
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
success = (buffer != NULL && strlen (new_name) > 0);
if (success)
if (buffer && strlen (new_name))
{
gimp_object_set_name (GIMP_OBJECT (buffer), new_name);
real_name = g_strdup (gimp_object_get_name (GIMP_OBJECT (buffer)));
}
else
success = FALSE;
}
return_args = procedural_db_return_args (&buffer_rename_proc, success);
@ -225,10 +228,10 @@ buffer_delete_invoker (Gimp *gimp,
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
success = (buffer != NULL);
if (success)
if (buffer)
success = gimp_container_remove (gimp->named_buffers, GIMP_OBJECT (buffer));
else
success = FALSE;
}
return procedural_db_return_args (&buffer_delete_proc, success);

View file

@ -241,11 +241,9 @@ levels_invoker (Gimp *gimp,
if (success)
gimp_drawable_levels (drawable, context,
channel,
low_input,
high_input,
low_input, high_input,
gamma,
low_output,
high_output);
low_output, high_output);
}
return procedural_db_return_args (&levels_proc, success);
@ -580,7 +578,7 @@ desaturate_full_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_drawable_desaturate (drawable, (GimpDesaturateMode) desaturate_mode);
gimp_drawable_desaturate (drawable, desaturate_mode);
}
return procedural_db_return_args (&desaturate_full_proc, success);

View file

@ -65,11 +65,14 @@ display_new_invoker (Gimp *gimp,
{
display = gimp_create_display (gimp, gimage, GIMP_UNIT_PIXEL, 1.0);
success = (display != NULL);
/* the first display takes ownership of the image */
if (success && gimage->disp_count == 1)
g_object_unref (gimage);
if (display)
{
/* the first display takes ownership of the image */
if (gimage->disp_count == 1)
g_object_unref (gimage);
}
else
success = FALSE;
}
return_args = procedural_db_return_args (&display_new_proc, success);

View file

@ -1026,7 +1026,7 @@ drawable_get_image_invoker (Gimp *gimp,
if (success)
{
success = (gimage = gimp_item_get_image (GIMP_ITEM (drawable))) != NULL;
gimage = gimp_item_get_image (GIMP_ITEM (drawable));
}
return_args = procedural_db_return_args (&drawable_get_image_proc, success);
@ -1093,7 +1093,8 @@ drawable_set_image_invoker (Gimp *gimp,
if (success)
{
success = (gimage == gimp_item_get_image (GIMP_ITEM (drawable)));
if (gimage != gimp_item_get_image (GIMP_ITEM (drawable)))
success = FALSE;
}
return procedural_db_return_args (&drawable_set_image_proc, success);

View file

@ -756,7 +756,10 @@ layer_set_offsets_invoker (Gimp *gimp,
gimp_image_undo_group_start (gimage, GIMP_UNDO_GROUP_ITEM_DISPLACE,
_("Move Layer"));
gimp_item_translate (GIMP_ITEM (layer), offx - GIMP_ITEM (layer)->offset_x, offy - GIMP_ITEM (layer)->offset_y, TRUE);
offx -= GIMP_ITEM (layer)->offset_x;
offy -= GIMP_ITEM (layer)->offset_y;
gimp_item_translate (GIMP_ITEM (layer), offx, offy, TRUE);
if (gimp_item_get_linked (GIMP_ITEM (layer)))
gimp_item_linked_translate (GIMP_ITEM (layer), offx, offy, TRUE);

View file

@ -477,7 +477,9 @@ selection_invert_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_invert (gimp_image_get_mask (gimage), TRUE);
{
gimp_channel_invert (gimp_image_get_mask (gimage), TRUE);
}
return procedural_db_return_args (&selection_invert_proc, success);
}
@ -523,7 +525,9 @@ selection_sharpen_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_sharpen (gimp_image_get_mask (gimage), TRUE);
{
gimp_channel_sharpen (gimp_image_get_mask (gimage), TRUE);
}
return procedural_db_return_args (&selection_sharpen_proc, success);
}
@ -569,7 +573,9 @@ selection_all_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_all (gimp_image_get_mask (gimage), TRUE);
{
gimp_channel_all (gimp_image_get_mask (gimage), TRUE);
}
return procedural_db_return_args (&selection_all_proc, success);
}
@ -615,7 +621,9 @@ selection_none_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_clear (gimp_image_get_mask (gimage), NULL, TRUE);
{
gimp_channel_clear (gimp_image_get_mask (gimage), NULL, TRUE);
}
return procedural_db_return_args (&selection_none_proc, success);
}
@ -666,7 +674,10 @@ selection_feather_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_feather (gimp_image_get_mask (gimage), radius, radius, TRUE);
{
gimp_channel_feather (gimp_image_get_mask (gimage),
radius, radius, TRUE);
}
return procedural_db_return_args (&selection_feather_proc, success);
}
@ -722,7 +733,10 @@ selection_border_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_border (gimp_image_get_mask (gimage), radius, radius, TRUE);
{
gimp_channel_border (gimp_image_get_mask (gimage),
radius, radius, TRUE);
}
return procedural_db_return_args (&selection_border_proc, success);
}
@ -778,7 +792,10 @@ selection_grow_invoker (Gimp *gimp,
success = FALSE;
if (success)
gimp_channel_grow (gimp_image_get_mask (gimage), steps, steps, TRUE);
{
gimp_channel_grow (gimp_image_get_mask (gimage),
steps, steps, TRUE);
}
return procedural_db_return_args (&selection_grow_proc, success);
}
@ -823,18 +840,21 @@ selection_shrink_invoker (Gimp *gimp,
{
gboolean success = TRUE;
GimpImage *gimage;
gint32 radius;
gint32 steps;
gimage = gimp_image_get_by_ID (gimp, args[0].value.pdb_int);
if (! GIMP_IS_IMAGE (gimage))
success = FALSE;
radius = args[1].value.pdb_int;
if (radius < 0)
steps = args[1].value.pdb_int;
if (steps < 0)
success = FALSE;
if (success)
gimp_channel_shrink (gimp_image_get_mask (gimage), radius, radius, FALSE, TRUE);
{
gimp_channel_shrink (gimp_image_get_mask (gimage),
steps, steps, FALSE, TRUE);
}
return procedural_db_return_args (&selection_shrink_proc, success);
}
@ -848,8 +868,8 @@ static ProcArg selection_shrink_inargs[] =
},
{
GIMP_PDB_INT32,
"radius",
"Radius of shrink (in pixels)"
"steps",
"Steps of shrink (in pixels)"
}
};
@ -998,7 +1018,12 @@ selection_save_invoker (Gimp *gimp,
success = FALSE;
if (success)
success = (channel = gimp_selection_save (gimp_image_get_mask (gimage))) != NULL;
{
channel = gimp_selection_save (gimp_image_get_mask (gimage));
if (! channel)
success = FALSE;
}
return_args = procedural_db_return_args (&selection_save_proc, success);

View file

@ -459,7 +459,7 @@ gimp_selection_grow (gint32 image_ID,
/**
* gimp_selection_shrink:
* @image_ID: The image.
* @radius: Radius of shrink (in pixels).
* @steps: Steps of shrink (in pixels).
*
* Shrink the image's selection
*
@ -471,7 +471,7 @@ gimp_selection_grow (gint32 image_ID,
*/
gboolean
gimp_selection_shrink (gint32 image_ID,
gint radius)
gint steps)
{
GimpParam *return_vals;
gint nreturn_vals;
@ -480,7 +480,7 @@ gimp_selection_shrink (gint32 image_ID,
return_vals = gimp_run_procedure ("gimp-selection-shrink",
&nreturn_vals,
GIMP_PDB_IMAGE, image_ID,
GIMP_PDB_INT32, radius,
GIMP_PDB_INT32, steps,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;

View file

@ -56,7 +56,7 @@ gboolean gimp_selection_border (gint32 image_ID,
gboolean gimp_selection_grow (gint32 image_ID,
gint steps);
gboolean gimp_selection_shrink (gint32 image_ID,
gint radius);
gint steps);
gboolean gimp_selection_layer_alpha (gint32 layer_ID);
gboolean gimp_selection_load (gint32 channel_ID);
gint32 gimp_selection_save (gint32 image_ID);

View file

@ -39,7 +39,12 @@ HELP
);
%invoke = (
code => 'buffer_list = gimp_container_get_filtered_name_array (gimp->named_buffers, filter, &num_buffers);'
code => <<'CODE'
{
buffer_list = gimp_container_get_filtered_name_array (gimp->named_buffers,
filter, &num_buffers);
}
CODE
);
}
@ -62,18 +67,18 @@ sub buffer_rename {
);
%invoke = (
code => <<CODE
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
success = (buffer != NULL && strlen (new_name) > 0);
if (success)
if (buffer && strlen (new_name))
{
gimp_object_set_name (GIMP_OBJECT (buffer), new_name);
real_name = g_strdup (gimp_object_get_name (GIMP_OBJECT (buffer)));
}
else
success = FALSE;
}
CODE
);
@ -93,15 +98,15 @@ sub buffer_delete {
);
%invoke = (
code => <<CODE
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
success = (buffer != NULL);
if (success)
if (buffer)
success = gimp_container_remove (gimp->named_buffers, GIMP_OBJECT (buffer));
else
success = FALSE;
}
CODE
);

View file

@ -131,11 +131,9 @@ HELP
if (success)
gimp_drawable_levels (drawable, context,
channel,
low_input,
high_input,
low_input, high_input,
gamma,
low_output,
high_output);
low_output, high_output);
}
CODE
);
@ -178,8 +176,6 @@ CODE
);
}
sub levels_auto {
&std_pdb_deprecated ('gimp_levels_stretch');
@ -294,11 +290,14 @@ CODE
}
sub desaturate_full {
$blurb = 'Desaturate the contents of the specified drawable, with the specified formula.';
$blurb = <<'BLURB';
Desaturate the contents of the specified drawable, with the specified formula.
BLURB
$help = <<'HELP';
This procedure desaturates the contents of the specified drawable, with the specified
formula. This procedure only works on drawables of type RGB color.
This procedure desaturates the contents of the specified drawable,
with the specified formula. This procedure only works on drawables of
type RGB color.
HELP
$author = $copyright = 'Karine Delvare';
@ -321,7 +320,7 @@ HELP
success = FALSE;
if (success)
gimp_drawable_desaturate (drawable, (GimpDesaturateMode) desaturate_mode);
gimp_drawable_desaturate (drawable, desaturate_mode);
}
CODE
);

View file

@ -44,11 +44,14 @@ HELP
{
display = gimp_create_display (gimp, gimage, GIMP_UNIT_PIXEL, 1.0);
success = (display != NULL);
/* the first display takes ownership of the image */
if (success && gimage->disp_count == 1)
g_object_unref (gimage);
if (display)
{
/* the first display takes ownership of the image */
if (gimage->disp_count == 1)
g_object_unref (gimage);
}
else
success = FALSE;
}
CODE
);

View file

@ -240,7 +240,7 @@ sub drawable_get_image {
%invoke = (
code => <<'CODE'
{
success = (gimage = gimp_item_get_image (GIMP_ITEM (drawable))) != NULL;
gimage = gimp_item_get_image (GIMP_ITEM (drawable));
}
CODE
);
@ -954,7 +954,8 @@ sub drawable_set_image {
%invoke = (
code =><<'CODE'
{
success = (gimage == gimp_item_get_image (GIMP_ITEM (drawable)));
if (gimage != gimp_item_get_image (GIMP_ITEM (drawable)))
success = FALSE;
}
CODE
);

View file

@ -305,21 +305,32 @@ HELP
@inargs = (
{ name => 'drawable', type => 'drawable',
desc => 'The affected drawable' }
);
my $pos = 0;
foreach $where (qw(upper-left upper-right lower-left lower-right)) {
foreach (qw(x y)) {
push @inargs,
{ name => "$_$pos", type => 'float',
desc => "The new $_ coordinate of $where corner of original
bounding box" }
}
$pos++;
}
@inargs = (@inargs,
&transform_options_args
desc => 'The affected drawable' },
{ name => 'x0', type => 'float',
desc => 'The new x coordinate of upper-left corner of original
bounding box' },
{ name => 'y0', type => 'float',
desc => 'The new y coordinate of upper-left corner of original
bounding box' },
{ name => 'x1', type => 'float',
desc => 'The new x coordinate of upper-right corner of original
bounding box' },
{ name => 'y1', type => 'float',
desc => 'The new y coordinate of upper-right corner of original
bounding box' },
{ name => 'x2', type => 'float',
desc => 'The new x coordinate of lower-left corner of original
bounding box' },
{ name => 'y2', type => 'float',
desc => 'The new y coordinate of lower-left corner of original
bounding box' },
{ name => 'x3', type => 'float',
desc => 'The new x coordinate of lower-right corner of original
bounding box' },
{ name => 'y3', type => 'float',
desc => 'The new y coordinate of lower-right corner of original
bounding box' },
&transform_options_args
);
@outargs = (
@ -354,21 +365,32 @@ HELP
@inargs = (
{ name => 'drawable', type => 'drawable',
desc => 'The affected drawable' }
);
my $pos = 0;
foreach $where (qw(upper-left upper-right lower-left lower-right)) {
foreach (qw(x y)) {
push @inargs,
{ name => "$_$pos", type => 'float',
desc => "The new $_ coordinate of $where corner of original
bounding box" }
}
$pos++;
}
@inargs = (@inargs,
&transform_options_default_args
desc => 'The affected drawable' },
{ name => 'x0', type => 'float',
desc => 'The new x coordinate of upper-left corner of original
bounding box' },
{ name => 'y0', type => 'float',
desc => 'The new y coordinate of upper-left corner of original
bounding box' },
{ name => 'x1', type => 'float',
desc => 'The new x coordinate of upper-right corner of original
bounding box' },
{ name => 'y1', type => 'float',
desc => 'The new y coordinate of upper-right corner of original
bounding box' },
{ name => 'x2', type => 'float',
desc => 'The new x coordinate of lower-left corner of original
bounding box' },
{ name => 'y2', type => 'float',
desc => 'The new y coordinate of lower-left corner of original
bounding box' },
{ name => 'x3', type => 'float',
desc => 'The new x coordinate of lower-right corner of original
bounding box' },
{ name => 'y3', type => 'float',
desc => 'The new y coordinate of lower-right corner of original
bounding box' },
&transform_options_default_args
);
@outargs = (

View file

@ -42,7 +42,9 @@ HELP
desc => 'The name as entered by the user' }
);
@outargs = ( &std_image_arg );
@outargs = (
&std_image_arg
);
$outargs[0]->{desc} = 'The output image';
%invoke = (

View file

@ -28,9 +28,8 @@ sub fonts_popup {
desc => 'The callback PDB proc to call when font selection is made' },
{ name => 'popup_title', type => 'string',
desc => 'Title to give the font popup window' },
{ name => 'initial_font', type => 'string',
desc => 'The name of the font to set as the first selected',
null_ok => 1 }
{ name => 'initial_font', type => 'string', null_ok => 1,
desc => 'The name of the font to set as the first selected' }
);
%invoke = (

View file

@ -85,7 +85,7 @@ HELP
);
%invoke = (
code => <<'CODE'
code => <<'CODE'
{
if (strlen (token))
{

View file

@ -379,8 +379,6 @@ CODE
}
sub layer_set_offsets {
&layer_translate;
$blurb = 'Set the layer offsets.';
$help = <<'HELP';
@ -389,10 +387,37 @@ relative to the image origin and can be any values. This operation is valid
only on layers which have been added to an image.
HELP
foreach (qw(x y)) {
$invoke{code} =~
s/(off$_),/$1 - GIMP_ITEM (layer)->offset_$_,/;
}
&std_pdb_misc;
@inargs = (
{ name => 'layer', type => 'layer',
desc => 'The layer' },
{ name => 'offx', type => 'int32',
desc => "Offset in x direction" },
{ name => 'offy', type => 'int32',
desc => "Offset in y direction" }
);
%invoke = (
code => <<'CODE'
{
GimpImage *gimage = gimp_item_get_image (GIMP_ITEM (layer));
gimp_image_undo_group_start (gimage, GIMP_UNDO_GROUP_ITEM_DISPLACE,
_("Move Layer"));
offx -= GIMP_ITEM (layer)->offset_x;
offy -= GIMP_ITEM (layer)->offset_y;
gimp_item_translate (GIMP_ITEM (layer), offx, offy, TRUE);
if (gimp_item_get_linked (GIMP_ITEM (layer)))
gimp_item_linked_translate (GIMP_ITEM (layer), offx, offy, TRUE);
gimp_image_undo_group_end (gimage);
}
CODE
);
}
sub layer_get_mask {

View file

@ -17,37 +17,6 @@
# "Perlized" from C source by Manish Singh <yosh@gimp.org>
sub selection_simple_proc {
my $op = shift;
&std_pdb_misc;
@inargs = (
&std_image_arg
);
%invoke = ( code => "gimp_channel_$op (gimp_image_get_mask (gimage), TRUE);" );
}
sub selection_change_proc {
my ($op, $arg, $type, $edge_lock) = @_;
$blurb = "\u$op the image's selection";
$help = "This procedure ${op}s the selection. ";
&std_pdb_misc;
@inargs = (
&std_image_arg,
{ name => $arg, type => "0 <= $type",
desc => "\u$arg of $op (in pixels)" }
);
%invoke = ( code => "gimp_channel_$op (gimp_image_get_mask (gimage), $arg, $arg$edge_lock, TRUE);" );
}
# The defs
sub selection_bounds {
$blurb = 'Find the bounding box of the current selection.';
@ -217,19 +186,29 @@ CODE
}
sub selection_invert {
&selection_simple_proc('invert');
$blurb = 'Invert the selection mask.';
$help = <<'HELP';
This procedure inverts the selection mask. For every pixel in the selection
channel, its new value is calculated as (255 - old_value).
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg
);
%invoke = (
code => <<'CODE'
{
gimp_channel_invert (gimp_image_get_mask (gimage), TRUE);
}
CODE
);
}
sub selection_sharpen {
&selection_simple_proc('sharpen');
$blurb = 'Sharpen the selection mask.';
$help = <<'HELP';
@ -237,17 +216,43 @@ This procedure sharpens the selection mask. For every pixel in the selection
channel, if the value is > 0, the new pixel is assigned a value of 255. This
removes any "anti-aliasing" that might exist in the selection mask's boundary.
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg
);
%invoke = (
code => <<'CODE'
{
gimp_channel_sharpen (gimp_image_get_mask (gimage), TRUE);
}
CODE
);
}
sub selection_all {
&selection_simple_proc('all');
$blurb = 'Select all of the image.';
$help = <<'HELP';
This procedure sets the selection mask to completely encompass the image. Every
pixel in the selection channel is set to 255.
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg
);
%invoke = (
code => <<'CODE'
{
gimp_channel_all (gimp_image_get_mask (gimage), TRUE);
}
CODE
);
}
sub selection_none {
@ -264,40 +269,119 @@ HELP
&std_image_arg
);
%invoke = ( code => "gimp_channel_clear (gimp_image_get_mask (gimage), NULL, TRUE);" );
%invoke = (
code => <<'CODE'
{
gimp_channel_clear (gimp_image_get_mask (gimage), NULL, TRUE);
}
CODE
);
}
sub selection_feather {
&selection_change_proc('feather', 'radius', 'float', '');
$blurb = "Feather the image's selection";
$help .= 'Feathering is implemented using a gaussian blur.';
$help = <<'HELP';
This procedure feathers the selection. Feathering is implemented
using a gaussian blur.
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg,
{ name => 'radius', type => '0 <= float',
desc => 'Radius of feather (in pixels)' }
);
%invoke = (
code => <<'CODE'
{
gimp_channel_feather (gimp_image_get_mask (gimage),
radius, radius, TRUE);
}
CODE
);
}
sub selection_border {
&selection_change_proc('border', 'radius', 'int32', '');
$blurb = "Border the image's selection";
$help .= <<'HELP';
Bordering creates a new selection which is defined along the boundary of the
previous selection at every point within the specified radius.
This procedure borders the selection. Bordering creates a new
selection which is defined along the boundary of the previous
selection at every point within the specified radius.
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg,
{ name => 'radius', type => '0 <= int32',
desc => 'Radius of border (in pixels)' }
);
%invoke = (
code => <<'CODE'
{
gimp_channel_border (gimp_image_get_mask (gimage),
radius, radius, TRUE);
}
CODE
);
}
sub selection_grow {
&selection_change_proc('grow', 'steps', 'int32', '');
$blurb = "Grow the image's selection";
$help .= <<'HELP';
Growing involves expanding the boundary in all directions by the specified
pixel amount.
This procedure grows the selection. Growing involves expanding the
boundary in all directions by the specified pixel amount.
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg,
{ name => 'steps', type => '0 <= int32',
desc => 'Steps of grow (in pixels)' }
);
%invoke = (
code => <<'CODE'
{
gimp_channel_grow (gimp_image_get_mask (gimage),
steps, steps, TRUE);
}
CODE
);
}
sub selection_shrink {
&selection_change_proc('shrink', 'radius', 'int32', ', FALSE');
$blurb = "Shrink the image's selection";
$help .= <<'HELP';
Shrinking invovles trimming the existing selection boundary on all sides by the
specified number of pixels.
This procedure shrinks the selection. Shrinking invovles trimming the
existing selection boundary on all sides by the specified number of
pixels.
HELP
&std_pdb_misc;
@inargs = (
&std_image_arg,
{ name => 'steps', type => '0 <= int32',
desc => 'Steps of shrink (in pixels)' }
);
%invoke = (
code => <<'CODE'
{
gimp_channel_shrink (gimp_image_get_mask (gimage),
steps, steps, FALSE, TRUE);
}
CODE
);
}
sub selection_layer_alpha {
@ -425,7 +509,14 @@ HELP
%invoke = (
headers => [qw("core/gimpselection.h") ],
code => 'success = (channel = gimp_selection_save (gimp_image_get_mask (gimage))) != NULL;'
code => <<'CODE'
{
channel = gimp_selection_save (gimp_image_get_mask (gimage));
if (! channel)
success = FALSE;
}
CODE
);
}

View file

@ -17,7 +17,28 @@
# "Perlized" from C source by Manish Singh <yosh@gimp.org>
sub render_args () {(
sub text_fontname {
$blurb = <<'BLURB';
Add text at the specified location as a floating selection or a new layer.
BLURB
$help = <<'HELP';
This tool requires a fontname matching an installed PangoFT2 font.
You can specify the fontsize in units of pixels
or points, and the appropriate metric is specified using the size_type
argument. The x and y parameters together control the placement of the new
text by specifying the upper left corner of the text bounding box. If the
specified drawable parameter is valid, the text will be created as a floating
selection attached to the drawable. If the drawable parameter is not valid
(-1), the text will appear as a new layer. Finally, a border can be specified
around the final rendered text. The border is measured in pixels.
HELP
&std_pdb_misc;
$author = 'Martin Edlman & Sven Neumann';
$date = '1998- 2001';
@inargs = (
&std_image_arg,
{ name => 'drawable', type => 'drawable',
desc => 'The affected drawable: (-1 for a new text layer)',
@ -34,45 +55,7 @@ sub render_args () {(
{ name => 'size', type => '0 < float',
desc => 'The size of text in either pixels or points' },
{ name => 'size_type', type => 'enum GimpSizeType',
desc => 'The units of specified size: %%desc%%' }
)}
@props = qw(foundry family weight slant set_width spacing registry encoding);
sub font_prop_args {
my @result;
foreach (@props) {
(my $desc = $_) =~ s/_/-/g;
push @result, { name => $_, type => 'string', no_validate => 1,
desc => qq/The font $desc/ }
}
@result;
}
sub text_fontname {
$blurb = <<'BLURB';
Add text at the specified location as a floating selection or a new layer.
BLURB
$help = <<'HELP';
This tool requires a fontname matching an installed PangoFT2 font.
You can specify the fontsize in units of pixels
or points, and the appropriate metric is specified using the size_type
argument. The x and y parameters together control the placement of the new
text by specifying the upper left corner of the text bounding box. If the
specified drawable parameter is valid, the text will be created as a floating
selection attached to the drawable. If the drawable parameter is not valid
(-1), the text will appear as a new layer. Finally, a border can be specified
around the final rendered text. The border is measured in pixels.
HELP
&std_pdb_misc;
$author = 'Martin Edlman & Sven Neumann';
$date = '1998- 2001';
@inargs = (
&render_args,
desc => 'The units of specified size: %%desc%%' },
{ name => 'fontname', type => 'string',
desc => 'The name of the font' }
);
@ -157,8 +140,39 @@ sub text {
&std_pdb_deprecated ('gimp-text-fontname');
@inargs = (
&render_args,
&font_prop_args
&std_image_arg,
{ name => 'drawable', type => 'drawable',
desc => 'The affected drawable: (-1 for a new text layer)',
no_success => 1 },
{ name => 'x', type => 'float',
desc => 'The x coordinate for the left of the text bounding box' },
{ name => 'y', type => 'float',
desc => 'The y coordinate for the top of the text bounding box' },
{ name => 'text', type => 'string',
desc => 'The text to generate (in UTF-8 encoding)' },
{ name => 'border', type => '-1 <= int32',
desc => 'The size of the border: %%desc%%' },
&std_antialias_arg,
{ name => 'size', type => '0 < float',
desc => 'The size of text in either pixels or points' },
{ name => 'size_type', type => 'enum GimpSizeType',
desc => 'The units of specified size: %%desc%%' },
{ name => 'foundry', type => 'string', no_validate => 1,
desc => 'The font foundry' },
{ name => 'family', type => 'string', no_validate => 1,
desc => 'The font family' },
{ name => 'weight', type => 'string', no_validate => 1,
desc => 'The font weight' },
{ name => 'slant', type => 'string', no_validate => 1,
desc => 'The font slant' },
{ name => 'set_width', type => 'string', no_validate => 1,
desc => 'The font set-width' },
{ name => 'spacing', type => 'string', no_validate => 1,
desc => 'The font spacing' },
{ name => 'registry', type => 'string', no_validate => 1,
desc => 'The font registry' },
{ name => 'encoding', type => 'string', no_validate => 1,
desc => 'The font encoding' }
);
@outargs = (
@ -197,7 +211,22 @@ sub text_get_extents {
desc => 'The size of text in either pixels or points' },
{ name => 'size_type', type => 'enum GimpSizeType',
desc => 'The units of specified size: %%desc%%' },
&font_prop_args
{ name => 'foundry', type => 'string', no_validate => 1,
desc => 'The font foundry' },
{ name => 'family', type => 'string', no_validate => 1,
desc => 'The font family' },
{ name => 'weight', type => 'string', no_validate => 1,
desc => 'The font weight' },
{ name => 'slant', type => 'string', no_validate => 1,
desc => 'The font slant' },
{ name => 'set_width', type => 'string', no_validate => 1,
desc => 'The font set-width' },
{ name => 'spacing', type => 'string', no_validate => 1,
desc => 'The font spacing' },
{ name => 'registry', type => 'string', no_validate => 1,
desc => 'The font registry' },
{ name => 'encoding', type => 'string', no_validate => 1,
desc => 'The font encoding' }
);
@outargs = (

View file

@ -57,20 +57,33 @@ sub perspective {
{ name => 'drawable', type => 'drawable',
desc => 'The affected drawable' },
{ name => 'interpolation', type => 'boolean',
desc => 'Whether to use interpolation' }
desc => 'Whether to use interpolation' },
{ name => 'x0', type => 'float',
desc => 'The new x coordinate of upper-left corner of original
bounding box' },
{ name => 'y0', type => 'float',
desc => 'The new y coordinate of upper-left corner of original
bounding box' },
{ name => 'x1', type => 'float',
desc => 'The new x coordinate of upper-right corner of original
bounding box' },
{ name => 'y1', type => 'float',
desc => 'The new y coordinate of upper-right corner of original
bounding box' },
{ name => 'x2', type => 'float',
desc => 'The new x coordinate of lower-left corner of original
bounding box' },
{ name => 'y2', type => 'float',
desc => 'The new y coordinate of lower-left corner of original
bounding box' },
{ name => 'x3', type => 'float',
desc => 'The new x coordinate of lower-right corner of original
bounding box' },
{ name => 'y3', type => 'float',
desc => 'The new y coordinate of lower-right corner of original
bounding box' }
);
my $pos = 0;
foreach $where (qw(upper-left upper-right lower-left lower-right)) {
foreach (qw(x y)) {
push @inargs,
{ name => "$_$pos", type => 'float',
desc => "The new $_ coordinate of $where corner of original
bounding box" }
}
$pos++;
}
@outargs = (
{ name => 'drawable', type => 'drawable', no_declare => 1,
desc => 'The newly mapped drawable' }