This implied a lot of other core changes, which also pushed me into improving some of the edit actions and PDB calls to be multi-layer aware in the same time. Note that it is still work-in-progress, but I just had to commit something in an acceptable intermediate state otherwise I was just going crazy. In particular now the various transform tools are multi-layer aware and work simultaneously on all selected layers (and the linked layers if any of the selected layers is linked too). Both preview and final transform processing works. In the limitations, preview doesn't work well (only one layer in the preview) when there is a selection (though the actual transform works). Also I am left to wonder how we should process this case of canvas selection+transform on multi-layers. Indeed currently I am just creating a floating selection (like we used to for the selection+transform case) containing a transform result of the composited version of all selected layers. This is a possible expected result, but another could be to get several transformed layers (without composition). But then should the "Floating Selection" concept allow for multiple Floating Selections? Sooo many questions left to answer.
61 lines
3.2 KiB
C
61 lines
3.2 KiB
C
/* GIMP - The GNU 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 3 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, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef __GIMP_EDIT_H__
|
|
#define __GIMP_EDIT_H__
|
|
|
|
|
|
GimpObject * gimp_edit_cut (GimpImage *image,
|
|
GList *drawables,
|
|
GimpContext *context,
|
|
GError **error);
|
|
GimpObject * gimp_edit_copy (GimpImage *image,
|
|
GList *drawables,
|
|
GimpContext *context,
|
|
GError **error);
|
|
GimpBuffer * gimp_edit_copy_visible (GimpImage *image,
|
|
GimpContext *context,
|
|
GError **error);
|
|
|
|
GimpLayer * gimp_edit_paste (GimpImage *image,
|
|
GimpDrawable *drawable,
|
|
GimpObject *paste,
|
|
GimpPasteType paste_type,
|
|
gint viewport_x,
|
|
gint viewport_y,
|
|
gint viewport_width,
|
|
gint viewport_height);
|
|
GimpImage * gimp_edit_paste_as_new_image (Gimp *gimp,
|
|
GimpObject *paste);
|
|
|
|
const gchar * gimp_edit_named_cut (GimpImage *image,
|
|
const gchar *name,
|
|
GList *drawables,
|
|
GimpContext *context,
|
|
GError **error);
|
|
const gchar * gimp_edit_named_copy (GimpImage *image,
|
|
const gchar *name,
|
|
GList *drawables,
|
|
GimpContext *context,
|
|
GError **error);
|
|
const gchar * gimp_edit_named_copy_visible (GimpImage *image,
|
|
const gchar *name,
|
|
GimpContext *context,
|
|
GError **error);
|
|
|
|
|
|
#endif /* __GIMP_EDIT_H__ */
|