diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 03:13:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 03:13:10 +0000 |
commit | 3c57dd931145d43f2b0aef96c4d178135956bf91 (patch) | |
tree | 3de698981e9f0cc2c4f9569b19a5f3595e741f6b /libgimp/gimpdisplay_pdb.c | |
parent | Initial commit. (diff) | |
download | gimp-3c57dd931145d43f2b0aef96c4d178135956bf91.tar.xz gimp-3c57dd931145d43f2b0aef96c4d178135956bf91.zip |
Adding upstream version 2.10.36.upstream/2.10.36
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libgimp/gimpdisplay_pdb.c')
-rw-r--r-- | libgimp/gimpdisplay_pdb.c | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/libgimp/gimpdisplay_pdb.c b/libgimp/gimpdisplay_pdb.c new file mode 100644 index 0000000..9f1eba0 --- /dev/null +++ b/libgimp/gimpdisplay_pdb.c @@ -0,0 +1,237 @@ +/* LIBGIMP - The GIMP Library + * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball + * + * gimpdisplay_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 + * <https://www.gnu.org/licenses/>. + */ + +/* NOTE: This file is auto-generated by pdbgen.pl */ + +#include "config.h" + +#include "gimp.h" + + +/** + * SECTION: gimpdisplay + * @title: gimpdisplay + * @short_description: Functions to create, delete and flush displays (views) on an image. + * + * Functions to create, delete and flush displays (views) on an image. + **/ + + +/** + * gimp_display_is_valid: + * @display_ID: The display to check. + * + * Returns TRUE if the display is valid. + * + * This procedure checks if the given display ID is valid and refers to + * an existing display. + * + * Returns: Whether the display ID is valid. + * + * Since: 2.4 + **/ +gboolean +gimp_display_is_valid (gint32 display_ID) +{ + GimpParam *return_vals; + gint nreturn_vals; + gboolean valid = FALSE; + + return_vals = gimp_run_procedure ("gimp-display-is-valid", + &nreturn_vals, + GIMP_PDB_DISPLAY, display_ID, + GIMP_PDB_END); + + if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS) + valid = return_vals[1].data.d_int32; + + gimp_destroy_params (return_vals, nreturn_vals); + + return valid; +} + +/** + * gimp_display_new: + * @image_ID: The image. + * + * Create a new display for the specified image. + * + * Creates a new display for the specified image. If the image already + * has a display, another is added. Multiple displays are handled + * transparently by GIMP. The newly created display is returned and can + * be subsequently destroyed with a call to gimp_display_delete(). This + * procedure only makes sense for use with the GIMP UI, and will result + * in an execution error if called when GIMP has no UI. + * + * Returns: The new display. + **/ +gint32 +gimp_display_new (gint32 image_ID) +{ + GimpParam *return_vals; + gint nreturn_vals; + gint32 display_ID = -1; + + return_vals = gimp_run_procedure ("gimp-display-new", + &nreturn_vals, + GIMP_PDB_IMAGE, image_ID, + GIMP_PDB_END); + + if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS) + display_ID = return_vals[1].data.d_display; + + gimp_destroy_params (return_vals, nreturn_vals); + + return display_ID; +} + +/** + * gimp_display_delete: + * @display_ID: The display to delete. + * + * Delete the specified display. + * + * This procedure removes the specified display. If this is the last + * remaining display for the underlying image, then the image is + * deleted also. Note that the display is closed no matter if the image + * is dirty or not. Better save the image before calling this + * procedure. + * + * Returns: TRUE on success. + **/ +gboolean +gimp_display_delete (gint32 display_ID) +{ + GimpParam *return_vals; + gint nreturn_vals; + gboolean success = TRUE; + + return_vals = gimp_run_procedure ("gimp-display-delete", + &nreturn_vals, + GIMP_PDB_DISPLAY, display_ID, + GIMP_PDB_END); + + success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS; + + gimp_destroy_params (return_vals, nreturn_vals); + + return success; +} + +/** + * gimp_display_get_window_handle: + * @display_ID: The display to get the window handle from. + * + * Get a handle to the native window for an image display. + * + * This procedure returns a handle to the native window for a given + * image display. For example in the X backend of GDK, a native window + * handle is an Xlib XID. A value of 0 is returned for an invalid + * display or if this function is unimplemented for the windowing + * system that is being used. + * + * Returns: The native window handle or 0. + * + * Since: 2.4 + **/ +gint +gimp_display_get_window_handle (gint32 display_ID) +{ + GimpParam *return_vals; + gint nreturn_vals; + gint window = 0; + + return_vals = gimp_run_procedure ("gimp-display-get-window-handle", + &nreturn_vals, + GIMP_PDB_DISPLAY, display_ID, + GIMP_PDB_END); + + if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS) + window = return_vals[1].data.d_int32; + + gimp_destroy_params (return_vals, nreturn_vals); + + return window; +} + +/** + * gimp_displays_flush: + * + * Flush all internal changes to the user interface + * + * This procedure takes no arguments and returns nothing except a + * success status. Its purpose is to flush all pending updates of image + * manipulations to the user interface. It should be called whenever + * appropriate. + * + * Returns: TRUE on success. + **/ +gboolean +gimp_displays_flush (void) +{ + GimpParam *return_vals; + gint nreturn_vals; + gboolean success = TRUE; + + return_vals = gimp_run_procedure ("gimp-displays-flush", + &nreturn_vals, + GIMP_PDB_END); + + success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS; + + gimp_destroy_params (return_vals, nreturn_vals); + + return success; +} + +/** + * gimp_displays_reconnect: + * @old_image_ID: The old image (must have at least one display). + * @new_image_ID: The new image (must not have a display). + * + * Reconnect displays from one image to another image. + * + * This procedure connects all displays of the old_image to the + * new_image. If the old_image has no display or new_image already has + * a display the reconnect is not performed and the procedure returns + * without success. You should rarely need to use this function. + * + * Returns: TRUE on success. + **/ +gboolean +gimp_displays_reconnect (gint32 old_image_ID, + gint32 new_image_ID) +{ + GimpParam *return_vals; + gint nreturn_vals; + gboolean success = TRUE; + + return_vals = gimp_run_procedure ("gimp-displays-reconnect", + &nreturn_vals, + GIMP_PDB_IMAGE, old_image_ID, + GIMP_PDB_IMAGE, new_image_ID, + GIMP_PDB_END); + + success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS; + + gimp_destroy_params (return_vals, nreturn_vals); + + return success; +} |