# 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>

sub inargs {
    @inargs = ( &std_image_arg );
    $inargs[0]->{desc} = 'The ID of the image in which to pop an undo group';
}

# The defs

sub undo_push_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-undo-push-group-end' call.
HELP

    &std_pdb_misc;
    $date = '1997';

    &inargs;

    %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 undo_push_group_end {
    $blurb = 'Finish a group undo.';

    $help = <<'HELP';
This function must be called once for each gimp-undo-push-group call that is
made.
HELP

    &std_pdb_misc;
    $date = '1997';

    &inargs;

    %invoke = ( code => 'gimp_image_undo_group_end (gimage);' );
}

@headers = qw("core/gimpimage-undo.h");

@procs = qw(undo_push_group_start undo_push_group_end);
%exports = (app => [@procs], lib => [@procs]);

$desc = 'Undo';

1;
