mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-19 22:34:37 +00:00
cdf2a90b03
2002-02-25 Michael Natterer <mitch@gimp.org> * app/core/Makefile.am * app/core/core-types.h * app/core/gimpitem.[ch]: new base class for something which is a child of an image, has a PDB ID, a tattoo, parasites and emits a "removed" signal. * app/core/gimpdrawable.[ch] * app/vectors/gimpvectors.[ch]: derive from GimpItem. Removed lots of stuff from GimpDrawable. * app/core/gimp.[ch]: changed gimp->drawable_table and gimp->next_drawable_ID to gimp->item_table and gimp->next_item_id. * app/undo.[ch]: s/undo_push_drawable_parasite/undo_push_item_parasite/, minor cleanups. * app/core/gimplayer.[ch]: changed gimp_layer_new_from_tiles() and gimp_layer_new_from_drawable() to take the "dest_gimage" as second, not first parameter. * app/image_map.c * app/core/gimpchannel.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable-histogram.c * app/core/gimpdrawable-offset.c * app/core/gimpdrawable-preview.c * app/core/gimpdrawable-transform.c * app/core/gimpedit.c * app/core/gimpimage-duplicate.c * app/core/gimpimage-mask.c * app/core/gimpimage-merge.c * app/core/gimpimage-pick-color.c * app/core/gimpimage.c * app/core/gimplayer-floating-sel.c * app/display/gimpdisplayshell-dnd.c * app/file/file-save.c * app/gui/channels-commands.c * app/gui/file-save-dialog.c * app/gui/layers-commands.c * app/gui/offset-dialog.c * app/gui/paths-dialog.c * app/gui/toolbox.c * app/paint/gimpairbrush.c * app/paint/gimpclone.c * app/paint/gimpconvolve.c * app/paint/gimpdodgeburn.c * app/paint/gimperaser.c * app/paint/gimppaintbrush.c * app/paint/gimppaintcore.c * app/paint/gimppencil.c * app/paint/gimpsmudge.c * app/plug-in/plug-in.c * app/tools/gimpbezierselecttool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpinktool.c * app/tools/gimppainttool.c * app/xcf/xcf-load.c * app/xcf/xcf-save.c * app/widgets/gimpdrawablepreview.c: changed accordingly. * app/widgets/Makefile.am * app/widgets/widgets-types.h * app/widgets/gimpitemlistview.[ch]: new widget implementing most of the stuff formerly done by GimpDrawableListView. * app/widgets/gimpchannellistview.c * app/widgets/gimpdrawablelistitem.c * app/widgets/gimpdrawablelistview.[ch] * app/widgets/gimplayerlistview.c: changed accordingly. * app/widgets/gimpdnd.[ch]: added a vectors DND type. * app/gui/menus.c * app/gui/dialogs.c * app/gui/dialogs-constructors.[ch]: added a vectors dialog and a vectors item_factory. * app/gui/Makefile.am * app/gui/vectors-commands.[ch]: new files implementing the callbacks for the new vectors dialog and item_factory. * app/pdb/pdb_glue.h: some more ugly hacks to keep intermediate perl code working... * tools/pdbgen/pdb.pl: added a vectors type, use GimpItem for all ID lookups. * tools/pdbgen/pdb/channel.pdb * tools/pdbgen/pdb/color.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/edit.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/layer.pdb * tools/pdbgen/pdb/misc_tools.pdb * tools/pdbgen/pdb/parasite.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/selection_tools.pdb: misc changes according to stuff above. * app/pdb/channel_cmds.c * app/pdb/color_cmds.c * app/pdb/drawable_cmds.c * app/pdb/edit_cmds.c * app/pdb/floating_sel_cmds.c * app/pdb/image_cmds.c * app/pdb/layer_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * app/pdb/parasite_cmds.c * app/pdb/selection_cmds.c * app/pdb/selection_tools_cmds.c * app/pdb/text_tool_cmds.c * app/pdb/transform_tools_cmds.c: regenerated.
175 lines
5.9 KiB
Plaintext
175 lines
5.9 KiB
Plaintext
# 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>
|
|
|
|
# Common arguments
|
|
sub inargs {
|
|
@inargs = (
|
|
{ name => 'drawable', type => 'drawable',
|
|
desc => "The drawable to @{[shift]}" }
|
|
);
|
|
}
|
|
|
|
# Common invoker for checking for image/drawable consistency
|
|
sub invoke {
|
|
%invoke = (
|
|
headers => [ qw("core/gimp.h" "core/gimpedit.h") ],
|
|
vars => [ 'GimpImage *gimage' ],
|
|
code => <<CODE
|
|
{
|
|
gimage = gimp_item_get_image (GIMP_ITEM (drawable));
|
|
success = @{[shift]};
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
# The defs
|
|
|
|
sub edit_cut {
|
|
$blurb = 'Cut from the specified drawable.';
|
|
|
|
$help = <<'HELP';
|
|
If there is a selection in the image, then the area specified by the selection
|
|
is cut from the specified drawable and placed in an internal GIMP edit buffer.
|
|
It can subsequently be retrieved using the 'gimp-edit-paste' command. If there
|
|
is no selection, then the specified drawable will be removed and its contents
|
|
stored in the internal GIMP edit buffer. The drawable MUST belong to the
|
|
specified image, or an error is returned.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
&inargs('cut from');
|
|
&invoke('gimp_edit_cut (gimage, drawable) != NULL');
|
|
}
|
|
|
|
sub edit_copy {
|
|
$blurb = 'Copy from the specified drawable.';
|
|
|
|
$help = <<'HELP';
|
|
If there is a selection in the image, then the area specified by the selection
|
|
is copied from the specified drawable and placed in an internal GIMP edit
|
|
buffer. It can subsequently be retrieved using the 'gimp-edit-paste' command.
|
|
If there is no selection, then the specified drawable's contents will be stored
|
|
in the internal GIMP edit buffer. The drawable MUST belong to the specified
|
|
image, or an error is returned.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
&inargs('copy from');
|
|
&invoke('gimp_edit_copy (gimage, drawable) != NULL');
|
|
}
|
|
|
|
sub edit_paste {
|
|
$blurb = 'Paste buffer to the specified drawable.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure pastes a copy of the internal GIMP edit buffer to the specified
|
|
drawable. The GIMP edit buffer will be empty unless a call was previously made
|
|
to either 'gimp-edit-cut' or 'gimp-edit-copy'. The "paste_into" option
|
|
specifies whether to clear the current image selection, or to paste the buffer
|
|
"behind" the selection. This allows the selection to act as a mask for the
|
|
pasted buffer. Anywhere that the selection mask is non-zero, the pasted buffer
|
|
will show through. The pasted buffer will be a new layer in the image which is
|
|
designated as the image floating selection. If the image has a floating
|
|
selection at the time of pasting, the old floating selection will be anchored
|
|
to it's drawable before the new floating selection is added. This procedure
|
|
returns the new floating layer. The resulting floating selection will already
|
|
be attached to the specified drawable, and a subsequent call to
|
|
floating_sel_attach is not needed.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
|
|
&inargs('paste to');
|
|
push @inargs, { name => 'paste_into', type => 'boolean',
|
|
desc => 'Clear selection, or paste behind it?' };
|
|
|
|
@outargs = (
|
|
{ name => 'floating_sel', type => 'layer',
|
|
desc => 'The new floating selection', alias => 'layer', init => 1 }
|
|
);
|
|
|
|
&invoke('layer != NULL');
|
|
$cmd = "layer = gimp_edit_paste (gimage, drawable, gimp->global_buffer, paste_into);\n";
|
|
$invoke{code} =~ s/(success.*$)/"$cmd $1"/me;
|
|
}
|
|
|
|
sub edit_clear {
|
|
$blurb = 'Clear selected area of drawable.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure clears the specified drawable. If the drawable has an alpha
|
|
channel, the cleared pixels will become transparent. If the drawable does not
|
|
have an alpha channel, cleared pixels will be set to the background color. This
|
|
procedure only affects regions within a selection if there is a selection
|
|
active.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
&inargs('clear from');
|
|
&invoke('gimp_edit_clear (gimage, drawable)');
|
|
}
|
|
|
|
sub edit_fill {
|
|
$blurb = 'Fill selected area of drawable.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure fills the specified drawable with the fill mode. If the fill
|
|
mode is foreground, the current foreground color is used. If the fill mode is
|
|
background, the current background color is used. Other fill modes should not
|
|
be used. This procedure only affects regions within a selection if there is a
|
|
selection active.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$author .= ' & Raphael Quinet';
|
|
$date = '1995-2000';
|
|
@inargs = (
|
|
{ name => 'drawable', type => 'drawable',
|
|
desc => "The drawable to fill to" },
|
|
{ name => 'fill_type', type => 'enum GimpFillType',
|
|
desc => 'The type of fill: %%desc%%' }
|
|
);
|
|
&invoke('gimp_edit_fill (gimage, drawable, (GimpFillType) fill_type)');
|
|
}
|
|
|
|
sub edit_stroke {
|
|
$blurb = 'Stroke the current selection';
|
|
|
|
$help = <<'HELP';
|
|
This procedure strokes the current selection, painting along the selection
|
|
boundary with the active brush and foreground color. The paint is applied to
|
|
the specified drawable regardless of the active selection.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
&inargs('stroke to');
|
|
&invoke('gimp_image_mask_stroke (gimage, drawable, gimp_get_current_context (gimage->gimp))');
|
|
push @{$invoke{headers}}, qw("core/gimpimage-mask.h");
|
|
}
|
|
|
|
@headers = qw("core/gimpimage.h");
|
|
|
|
@procs = qw(edit_cut edit_copy edit_paste edit_clear edit_fill edit_stroke);
|
|
%exports = (app => [@procs], lib => [@procs]);
|
|
|
|
$desc = 'Edit procedures';
|
|
|
|
1;
|