2003-12-05 Michael Natterer <mitch@gimp.org> * tools/pdbgen/pdb/image.pdb: removed gimp_image_undo_*() functions... * tools/pdbgen/pdb/undo.pdb: ...and added them here. Renamed gimp_undo_push_group_start,end() to gimp_image_undo_group_start,end(). * app/pdb/procedural_db.c * libgimp/gimpcompat.h: added compat stuff for the old undo group API. * app/pdb/image_cmds.c * app/pdb/internal_procs.c * app/pdb/undo_cmds.c * libgimp/gimpimage_pdb.[ch] * libgimp/gimpundo_pdb.[ch]: regenerated. * plug-ins/common/align_layers.c * plug-ins/common/colortoalpha.c * plug-ins/common/curve_bend.c * plug-ins/common/iwarp.c * plug-ins/common/jpeg.c * plug-ins/common/rotate.c * plug-ins/common/tile.c * plug-ins/common/zealouscrop.c * plug-ins/gfig/gfig.c * plug-ins/ifscompose/ifscompose.c * plug-ins/pagecurl/pagecurl.c * plug-ins/script-fu/scripts/*.scm: changed accordingly.
206 lines
6.5 KiB
Text
206 lines
6.5 KiB
Text
# The GIMP -- an image manipulation program
|
|
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# This program 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 General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
# "Perlized" from C source by Manish Singh <yosh@gimp.org>
|
|
|
|
# The defs
|
|
|
|
sub image_undo_group_start {
|
|
$blurb = 'Starts a group undo.';
|
|
|
|
$help = <<'HELP';
|
|
This function is used to start a group undo--necessary for logically combining
|
|
two or more undo operations into a single operation. This call must be used in
|
|
conjunction with a 'gimp-image-undo-group-end' call.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$date = '1997';
|
|
|
|
@inargs = ( &std_image_arg );
|
|
$inargs[0]->{desc} = 'The ID of the image in which to open an undo group';
|
|
|
|
%invoke = ( headers => [ qw("core/gimp.h" "plug-in/plug-in.h") ],
|
|
vars => [ 'gchar *undo_desc = NULL' ],
|
|
code => <<CODE
|
|
{
|
|
if (gimp->current_plug_in)
|
|
undo_desc = plug_in_get_undo_desc (gimp->current_plug_in);
|
|
|
|
gimp_image_undo_group_start (gimage, GIMP_UNDO_GROUP_MISC, undo_desc);
|
|
|
|
if (undo_desc)
|
|
g_free (undo_desc);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub image_undo_group_end {
|
|
$blurb = 'Finish a group undo.';
|
|
|
|
$help = <<'HELP';
|
|
This function must be called once for each 'gimp-image-undo-group-start' call
|
|
that is made.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$date = '1997';
|
|
|
|
@inargs = ( &std_image_arg );
|
|
$inargs[0]->{desc} = 'The ID of the image in which to close an undo group';
|
|
|
|
%invoke = ( code => 'gimp_image_undo_group_end (gimage);' );
|
|
}
|
|
|
|
sub image_undo_is_enabled {
|
|
$blurb = "Check if the image's undo stack is enabled.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure checks if the image's undo stack is currently enabled or
|
|
disabled. This is useful when several plugins or scripts call each other
|
|
and want to check if their caller has already used 'gimp_image_undo_disable'
|
|
or 'gimp_image_undo_freeze'.
|
|
HELP
|
|
|
|
$author = $copyright = 'Raphael Quinet';
|
|
$date = '1999';
|
|
|
|
@inargs = ( &std_image_arg );
|
|
|
|
@outargs = (
|
|
{ name => 'enabled', type => 'boolean', init => 1,
|
|
desc => 'True if undo is enabled for this image' }
|
|
);
|
|
|
|
%invoke = ( code => 'enabled = gimp_image_undo_is_enabled (gimage);' );
|
|
}
|
|
|
|
sub image_undo_disable {
|
|
$blurb = "Disable the image's undo stack.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure disables the image's undo stack, allowing subsequent operations
|
|
to ignore their undo steps. This is generally called in conjunction with
|
|
'gimp_image_undo_enable' to temporarily disable an image undo stack. This is
|
|
advantageous because saving undo steps can be time and memory intensive.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
|
|
@inargs = ( &std_image_arg );
|
|
|
|
@outargs = (
|
|
{ name => 'disabled', type => 'boolean',
|
|
desc => 'True if the image undo has been disabled',
|
|
alias => 'success ? TRUE : FALSE', no_declare => 1 }
|
|
);
|
|
|
|
%invoke = ( code => 'success = gimp_image_undo_disable (gimage);' );
|
|
}
|
|
|
|
sub image_undo_enable {
|
|
$blurb = "Enable the image's undo stack.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure enables the image's undo stack, allowing subsequent operations
|
|
to store their undo steps. This is generally called in conjunction with
|
|
'gimp_image_undo_disable' to temporarily disable an image undo stack.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
|
|
@inargs = ( &std_image_arg );
|
|
|
|
@outargs = (
|
|
{ name => 'enabled', type => 'boolean',
|
|
desc => 'True if the image undo has been enabled',
|
|
alias => 'success ? TRUE : FALSE', no_declare => 1 }
|
|
);
|
|
|
|
%invoke = ( code => 'success = gimp_image_undo_enable (gimage);' );
|
|
}
|
|
|
|
sub image_undo_freeze {
|
|
$blurb = "Freeze the image's undo stack.";
|
|
|
|
$author = $copyright = 'Adam D. Moss';
|
|
$date = '1999';
|
|
|
|
$help = <<'HELP';
|
|
This procedure freezes the image's undo stack, allowing subsequent operations
|
|
to ignore their undo steps. This is generally called in conjunction with
|
|
'gimp_image_undo_thaw' to temporarily disable an image undo stack. This is
|
|
advantageous because saving undo steps can be time and memory intensive.
|
|
'gimp_image_undo_{freeze,thaw}' and 'gimp_image_undo_{disable,enable}' differ
|
|
in that the former does not free up all undo steps when undo is thawed, so is
|
|
more suited to interactive in-situ previews. It is important in this case
|
|
that the image is back to the same state it was frozen in before thawing, else
|
|
'undo' behaviour is undefined.
|
|
HELP
|
|
|
|
@inargs = ( &std_image_arg );
|
|
|
|
@outargs = (
|
|
{ name => 'frozen', type => 'boolean',
|
|
desc => 'True if the image undo has been frozen',
|
|
alias => 'success ? TRUE : FALSE', no_declare => 1 }
|
|
);
|
|
|
|
%invoke = ( code => 'success = gimp_image_undo_freeze (gimage);' );
|
|
}
|
|
|
|
sub image_undo_thaw {
|
|
$blurb = "Thaw the image's undo stack.";
|
|
|
|
$author = $copyright = 'Adam D. Moss';
|
|
$date = '1999';
|
|
|
|
$help = <<'HELP';
|
|
This procedure thaws the image's undo stack, allowing subsequent operations to
|
|
store their undo steps. This is generally called in conjunction with
|
|
'gimp_image_undo_freeze' to temporarily freeze an image undo stack.
|
|
'gimp_image_undo_thaw' does NOT free the undo stack as
|
|
'gimp_image_undo_enable' does, so is suited for situations where one wishes to
|
|
leave the undo stack in the same state in which one found it despite
|
|
non-destructively playing with the image in the meantime. An example would be
|
|
in-situ plugin previews. Balancing freezes and thaws and ensuring image
|
|
consistancy is the responsibility of the caller.
|
|
HELP
|
|
|
|
@inargs = ( &std_image_arg );
|
|
|
|
@outargs = (
|
|
{ name => 'thawed', type => 'boolean',
|
|
desc => 'True if the image undo has been thawed',
|
|
alias => 'success ? TRUE : FALSE', no_declare => 1 }
|
|
);
|
|
|
|
%invoke = ( code => 'success = gimp_image_undo_thaw (gimage);' );
|
|
}
|
|
|
|
@headers = qw("core/gimpimage-undo.h");
|
|
|
|
@procs = qw(image_undo_group_start image_undo_group_end
|
|
image_undo_is_enabled
|
|
image_undo_disable image_undo_enable
|
|
image_undo_freeze image_undo_thaw);
|
|
%exports = (app => [@procs], lib => [@procs]);
|
|
|
|
$desc = 'Undo';
|
|
|
|
1;
|