/* LIBPIKA - The PIKA Library * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball * * pikaimageundo_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 3 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, see * . */ /* NOTE: This file is auto-generated by pdbgen.pl */ #include "config.h" #include "stamp-pdbgen.h" #include "pika.h" /** * SECTION: pikaimageundo * @title: pikaimageundo * @short_description: Control of image undo/redo. * * Control of image undo/redo. **/ /** * pika_image_undo_group_start: * @image: The ID of the image in which to open an undo group. * * 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 * call must be used in conjunction with a pika_image_undo_group_end() * call. * * Returns: TRUE on success. **/ gboolean pika_image_undo_group_start (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-group-start", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; } /** * pika_image_undo_group_end: * @image: The ID of the image in which to close an undo group. * * Finish a group undo. * * This function must be called once for each * pika_image_undo_group_start() call that is made. * * Returns: TRUE on success. **/ gboolean pika_image_undo_group_end (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-group-end", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; } /** * pika_image_undo_is_enabled: * @image: The image. * * Check if the image's undo stack is enabled. * * This procedure checks if the image's undo stack is currently enabled * or disabled. This is useful when several plug-ins or scripts call * each other and want to check if their caller has already used * pika_image_undo_disable() or pika_image_undo_freeze(). * * Returns: TRUE if undo is enabled for this image. **/ gboolean pika_image_undo_is_enabled (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean enabled = FALSE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-is-enabled", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) enabled = PIKA_VALUES_GET_BOOLEAN (return_vals, 1); pika_value_array_unref (return_vals); return enabled; } /** * pika_image_undo_disable: * @image: 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 * conjunction with pika_image_undo_enable() to temporarily disable an * image undo stack. This is advantageous because saving undo steps can * be time and memory intensive. * * Returns: TRUE if the image undo has been disabled. **/ gboolean pika_image_undo_disable (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean disabled = FALSE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-disable", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) disabled = PIKA_VALUES_GET_BOOLEAN (return_vals, 1); pika_value_array_unref (return_vals); return disabled; } /** * pika_image_undo_enable: * @image: 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 * conjunction with pika_image_undo_disable() to temporarily disable an * image undo stack. * * Returns: TRUE if the image undo has been enabled. **/ gboolean pika_image_undo_enable (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean enabled = FALSE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-enable", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) enabled = PIKA_VALUES_GET_BOOLEAN (return_vals, 1); pika_value_array_unref (return_vals); return enabled; } /** * pika_image_undo_freeze: * @image: 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 * conjunction with pika_image_undo_thaw() to temporarily disable an * image undo stack. This is advantageous because saving undo steps can * be time and memory intensive. pika_image_undo_freeze() / * pika_image_undo_thaw() and pika_image_undo_disable() / * pika_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' * behavior is undefined. * * Returns: TRUE if the image undo has been frozen. **/ gboolean pika_image_undo_freeze (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean frozen = FALSE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-freeze", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) frozen = PIKA_VALUES_GET_BOOLEAN (return_vals, 1); pika_value_array_unref (return_vals); return frozen; } /** * pika_image_undo_thaw: * @image: 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 * conjunction with pika_image_undo_freeze() to temporarily freeze an * image undo stack. pika_image_undo_thaw() does NOT free the undo * stack as pika_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 plug-in previews. Balancing * freezes and thaws and ensuring image consistency is the * responsibility of the caller. * * Returns: TRUE if the image undo has been thawed. **/ gboolean pika_image_undo_thaw (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean thawed = FALSE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-undo-thaw", args); pika_value_array_unref (args); if (PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS) thawed = PIKA_VALUES_GET_BOOLEAN (return_vals, 1); pika_value_array_unref (return_vals); return thawed; }