gimpimageundo_pdb.c 8.11 KB
Newer Older
1
/* LIBGIMP - The GIMP Library
2
 * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
3
 *
4
 * gimpimageundo_pdb.c
5
 *
6
 * This library is free software: you can redistribute it and/or
7 8
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
9
 * version 3 of the License, or (at your option) any later version.
10 11 12 13 14 15 16
 *
 * 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
17 18
 * License along with this library.  If not, see
 * <http://www.gnu.org/licenses/>.
19 20
 */

21
/* NOTE: This file is auto-generated by pdbgen.pl */
22

Sven Neumann's avatar
Sven Neumann committed
23 24
#include "config.h"

25 26
#include "gimp.h"

27 28

/**
29 30 31
 * SECTION: gimpimageundo
 * @title: gimpimageundo
 * @short_description: Control of image undo/redo.
32
 *
33
 * Control of image undo/redo.
34 35 36
 **/


37
/**
38 39
 * gimp_image_undo_group_start:
 * @image_ID: The ID of the image in which to open an undo group.
40 41 42 43 44
 *
 * Starts a group undo.
 *
 * This function is used to start a group undo--necessary for logically
 * combining two or more undo operations into a single operation. This
45
 * call must be used in conjunction with a gimp_image_undo_group_end()
46 47 48
 * call.
 *
 * Returns: TRUE on success.
49
 **/
50
gboolean
51
gimp_image_undo_group_start (gint32 image_ID)
52
{
53
  GimpParam *return_vals;
54
  gint nreturn_vals;
55
  gboolean success = TRUE;
56

57
  return_vals = gimp_run_procedure ("gimp-image-undo-group-start",
58 59 60
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
61

62 63
  success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;

64
  gimp_destroy_params (return_vals, nreturn_vals);
65 66

  return success;
67 68
}

69
/**
70 71
 * gimp_image_undo_group_end:
 * @image_ID: The ID of the image in which to close an undo group.
72 73 74
 *
 * Finish a group undo.
 *
75
 * This function must be called once for each
76
 * gimp_image_undo_group_start() call that is made.
77 78
 *
 * Returns: TRUE on success.
79
 **/
80
gboolean
81
gimp_image_undo_group_end (gint32 image_ID)
82
{
83
  GimpParam *return_vals;
84
  gint nreturn_vals;
85
  gboolean success = TRUE;
86

87
  return_vals = gimp_run_procedure ("gimp-image-undo-group-end",
88 89 90
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
91

92 93
  success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;

94
  gimp_destroy_params (return_vals, nreturn_vals);
95 96

  return success;
97
}
98 99 100 101 102 103 104 105

/**
 * gimp_image_undo_is_enabled:
 * @image_ID: The image.
 *
 * Check if the image's undo stack is enabled.
 *
 * This procedure checks if the image's undo stack is currently enabled
106
 * or disabled. This is useful when several plug-ins or scripts call
107
 * each other and want to check if their caller has already used
108
 * gimp_image_undo_disable() or gimp_image_undo_freeze().
109
 *
110
 * Returns: TRUE if undo is enabled for this image.
111
 **/
112 113 114 115 116 117 118
gboolean
gimp_image_undo_is_enabled (gint32 image_ID)
{
  GimpParam *return_vals;
  gint nreturn_vals;
  gboolean enabled = FALSE;

119
  return_vals = gimp_run_procedure ("gimp-image-undo-is-enabled",
120 121 122
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139

  if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
    enabled = return_vals[1].data.d_int32;

  gimp_destroy_params (return_vals, nreturn_vals);

  return enabled;
}

/**
 * gimp_image_undo_disable:
 * @image_ID: The image.
 *
 * Disable the image's undo stack.
 *
 * This procedure disables the image's undo stack, allowing subsequent
 * operations to ignore their undo steps. This is generally called in
140
 * conjunction with gimp_image_undo_enable() to temporarily disable an
141 142 143
 * image undo stack. This is advantageous because saving undo steps can
 * be time and memory intensive.
 *
144
 * Returns: TRUE if the image undo has been disabled.
145
 **/
146 147 148 149 150 151 152
gboolean
gimp_image_undo_disable (gint32 image_ID)
{
  GimpParam *return_vals;
  gint nreturn_vals;
  gboolean disabled = FALSE;

153
  return_vals = gimp_run_procedure ("gimp-image-undo-disable",
154 155 156
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173

  if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
    disabled = return_vals[1].data.d_int32;

  gimp_destroy_params (return_vals, nreturn_vals);

  return disabled;
}

/**
 * gimp_image_undo_enable:
 * @image_ID: The image.
 *
 * Enable the image's undo stack.
 *
 * This procedure enables the image's undo stack, allowing subsequent
 * operations to store their undo steps. This is generally called in
174
 * conjunction with gimp_image_undo_disable() to temporarily disable an
175 176
 * image undo stack.
 *
177
 * Returns: TRUE if the image undo has been enabled.
178
 **/
179 180 181 182 183 184 185
gboolean
gimp_image_undo_enable (gint32 image_ID)
{
  GimpParam *return_vals;
  gint nreturn_vals;
  gboolean enabled = FALSE;

186
  return_vals = gimp_run_procedure ("gimp-image-undo-enable",
187 188 189
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206

  if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
    enabled = return_vals[1].data.d_int32;

  gimp_destroy_params (return_vals, nreturn_vals);

  return enabled;
}

/**
 * gimp_image_undo_freeze:
 * @image_ID: The image.
 *
 * Freeze the image's undo stack.
 *
 * This procedure freezes the image's undo stack, allowing subsequent
 * operations to ignore their undo steps. This is generally called in
207
 * conjunction with gimp_image_undo_thaw() to temporarily disable an
208
 * image undo stack. This is advantageous because saving undo steps can
209 210 211 212 213 214 215
 * be time and memory intensive. gimp_image_undo_freeze() /
 * gimp_image_undo_thaw() and gimp_image_undo_disable() /
 * gimp_image_undo_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.
216
 *
217
 * Returns: TRUE if the image undo has been frozen.
218
 **/
219 220 221 222 223 224 225
gboolean
gimp_image_undo_freeze (gint32 image_ID)
{
  GimpParam *return_vals;
  gint nreturn_vals;
  gboolean frozen = FALSE;

226
  return_vals = gimp_run_procedure ("gimp-image-undo-freeze",
227 228 229
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246

  if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
    frozen = return_vals[1].data.d_int32;

  gimp_destroy_params (return_vals, nreturn_vals);

  return frozen;
}

/**
 * gimp_image_undo_thaw:
 * @image_ID: The image.
 *
 * Thaw the image's undo stack.
 *
 * This procedure thaws the image's undo stack, allowing subsequent
 * operations to store their undo steps. This is generally called in
247 248 249
 * 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
250 251
 * 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
252
 * meantime. An example would be in-situ plug-in previews. Balancing
253
 * freezes and thaws and ensuring image consistency is the
254 255
 * responsibility of the caller.
 *
256
 * Returns: TRUE if the image undo has been thawed.
257
 **/
258 259 260 261 262 263 264
gboolean
gimp_image_undo_thaw (gint32 image_ID)
{
  GimpParam *return_vals;
  gint nreturn_vals;
  gboolean thawed = FALSE;

265
  return_vals = gimp_run_procedure ("gimp-image-undo-thaw",
266 267 268
                                    &nreturn_vals,
                                    GIMP_PDB_IMAGE, image_ID,
                                    GIMP_PDB_END);
269 270 271 272 273 274 275 276

  if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
    thawed = return_vals[1].data.d_int32;

  gimp_destroy_params (return_vals, nreturn_vals);

  return thawed;
}