Gimp/app/pdb/misc_tools_cmds.c

496 lines
14 KiB
C
Raw Normal View History

/* The GIMP -- an image manipulation program
* Copyright (C) 1995-2003 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.
*/
/* NOTE: This file is autogenerated by pdbgen.pl. */
#include "config.h"
#include <glib-object.h>
#include "libgimpbase/gimpbasetypes.h"
#include "pdb-types.h"
#include "procedural_db.h"
#include "core/gimpchannel.h"
#include "core/gimpdrawable-blend.h"
#include "core/gimpdrawable-bucket-fill.h"
#include "core/gimpdrawable.h"
#include "core/gimpimage-pick-color.h"
#include "core/gimpimage.h"
#include "libgimpcolor/gimpcolor.h"
#include "libgimpmath/gimpmath.h"
static ProcRecord blend_proc;
static ProcRecord bucket_fill_proc;
static ProcRecord color_picker_proc;
void
register_misc_tools_procs (Gimp *gimp)
{
procedural_db_register (gimp, &blend_proc);
procedural_db_register (gimp, &bucket_fill_proc);
procedural_db_register (gimp, &color_picker_proc);
}
static Argument *
blend_invoker (Gimp *gimp,
Argument *args)
{
gboolean success = TRUE;
GimpDrawable *drawable;
gint32 blend_mode;
gint32 paint_mode;
gint32 gradient_type;
gdouble opacity;
gdouble offset;
gint32 repeat;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
gboolean reverse;
gboolean supersample;
gint32 max_depth;
gdouble threshold;
gboolean dither;
gdouble x1;
gdouble y1;
gdouble x2;
gdouble y2;
app/core/Makefile.am app/core/core-types.h new base class for something 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.
2002-02-25 09:58:50 -08:00
drawable = (GimpDrawable *) gimp_item_get_by_ID (gimp, args[0].value.pdb_int);
if (! GIMP_IS_DRAWABLE (drawable))
success = FALSE;
blend_mode = args[1].value.pdb_int;
if (blend_mode < GIMP_FG_BG_RGB_MODE || blend_mode > GIMP_CUSTOM_MODE)
success = FALSE;
paint_mode = args[2].value.pdb_int;
if (paint_mode < GIMP_NORMAL_MODE || paint_mode > GIMP_COLOR_ERASE_MODE)
success = FALSE;
gradient_type = args[3].value.pdb_int;
if (gradient_type < GIMP_GRADIENT_LINEAR || gradient_type > GIMP_GRADIENT_SPIRAL_ANTICLOCKWISE)
success = FALSE;
opacity = args[4].value.pdb_float;
if (opacity < 0.0 || opacity > 100.0)
success = FALSE;
offset = args[5].value.pdb_float;
if (offset < 0.0)
success = FALSE;
repeat = args[6].value.pdb_int;
if (repeat < GIMP_REPEAT_NONE || repeat > GIMP_REPEAT_TRIANGULAR)
success = FALSE;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
reverse = args[7].value.pdb_int ? TRUE : FALSE;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
supersample = args[8].value.pdb_int ? TRUE : FALSE;
max_depth = args[9].value.pdb_int;
if (supersample && (max_depth < 1 || max_depth > 9))
success = FALSE;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
threshold = args[10].value.pdb_float;
if (supersample && (threshold < 0.0 || threshold > 4.0))
success = FALSE;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
dither = args[11].value.pdb_int ? TRUE : FALSE;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
x1 = args[12].value.pdb_float;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
y1 = args[13].value.pdb_float;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
x2 = args[14].value.pdb_float;
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
y2 = args[15].value.pdb_float;
if (success)
{
app/core/Makefile.am app/core/core-types.h new base class for something 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.
2002-02-25 09:58:50 -08:00
if (! gimp_item_get_image (GIMP_ITEM (drawable)))
{
success = FALSE;
}
else
{
gimp_drawable_blend (drawable,
blend_mode,
paint_mode,
gradient_type,
opacity / 100.0,
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
offset, repeat, reverse,
supersample, max_depth,
threshold, dither,
x1, y1, x2, y2,
NULL, NULL);
}
}
return procedural_db_return_args (&blend_proc, success);
}
static ProcArg blend_inargs[] =
{
{
GIMP_PDB_DRAWABLE,
"drawable",
"The affected drawable"
},
{
GIMP_PDB_INT32,
"blend_mode",
tools/pdbgen/app.pl tools/pdbgen/enumcode-py.pl tools/pdbgen/enumcode.pl 2002-03-17 Manish Singh <yosh@gimp.org> * tools/pdbgen/app.pl * tools/pdbgen/enumcode-py.pl * tools/pdbgen/enumcode.pl * tools/pdbgen/enumgen.pl: removed enum nick support, best to keep internal and external names consistent * app/core/core-enums.h: remove chops from enums. Change TRANS to TRANSPARENT in GimpBlendMode * app/core/core-types.h: remove chops and nicks from enums. Change INV to INVERSE and SUB to SUBTRACT to make things more clear * app/core/gimpchannel.c * app/gui/channels-commands.c * app/gui/vectors-commands.c * app/tools/gimpbezierselecttool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimprectselecttool.c * app/tools/gimpselectiontool.c * app/tools/selection_options.c * app/tools/tools-types.h * app/widgets/gimpchannellistview.c * app/widgets/gimpvectorslistview.c: reflect SUB -> SUBTRACT change * app/core/gimpdrawable-blend.c: reflect TRANS -> TRANSPARENT change * app/core/gimplayer.c * app/gui/layers-commands.c: reflect INV -> INVERSE change * app/paint/paint-types.h: remove nick from PaintApplicationMode * app/tools/gimperasertool.c: fix tooltip * app/widgets/gimpenummenu.c: #include "libgimp/gimpintl.h" for gettext * libgimp/gimpcompat.h: compatibility enums here, since we removed the nicks * tools/pdbgen/enums.pl * libgimp/gimpenums.h * plug-ins/script-fu/script-fu-constants.c * app/core/core-enums.c * app/pdb/channel_cmds.c * app/pdb/drawable_cmds.c * app/pdb/edit_cmds.c * app/pdb/layer_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * app/pdb/selection_cmds.c * app/pdb/selection_tools_cmds.c: regenerated, enum changes * plug-ins/common/hot.c: GIMP_TRANS_IMAGE_FILL -> GIMP_TRANSPARENT_FILL * plug-ins/common/warp.c: GIMP_BG_IMAGE_FILL -> GIMP_BACKGROUND_FILL * plug-ins/script-fu/siod-wrapper.c: compat constant definitions
2002-03-17 14:54:26 -08:00
"The type of blend: { GIMP_FG_BG_RGB_MODE (0), GIMP_FG_BG_HSV_MODE (1), GIMP_FG_TRANSPARENT_MODE (2), GIMP_CUSTOM_MODE (3) }"
},
{
GIMP_PDB_INT32,
"paint_mode",
"The paint application mode: { GIMP_NORMAL_MODE (0), GIMP_DISSOLVE_MODE (1), GIMP_BEHIND_MODE (2), GIMP_MULTIPLY_MODE (3), GIMP_SCREEN_MODE (4), GIMP_OVERLAY_MODE (5), GIMP_DIFFERENCE_MODE (6), GIMP_ADDITION_MODE (7), GIMP_SUBTRACT_MODE (8), GIMP_DARKEN_ONLY_MODE (9), GIMP_LIGHTEN_ONLY_MODE (10), GIMP_HUE_MODE (11), GIMP_SATURATION_MODE (12), GIMP_COLOR_MODE (13), GIMP_VALUE_MODE (14), GIMP_DIVIDE_MODE (15), GIMP_DODGE_MODE (16), GIMP_BURN_MODE (17), GIMP_HARDLIGHT_MODE (18), GIMP_SOFTLIGHT_MODE (19), GIMP_GRAIN_EXTRACT_MODE (20), GIMP_GRAIN_MERGE_MODE (21), GIMP_COLOR_ERASE_MODE (22) }"
},
{
GIMP_PDB_INT32,
"gradient_type",
"The type of gradient: { GIMP_GRADIENT_LINEAR (0), GIMP_GRADIENT_BILINEAR (1), GIMP_GRADIENT_RADIAL (2), GIMP_GRADIENT_SQUARE (3), GIMP_GRADIENT_CONICAL_SYMMETRIC (4), GIMP_GRADIENT_CONICAL_ASYMMETRIC (5), GIMP_GRADIENT_SHAPEBURST_ANGULAR (6), GIMP_GRADIENT_SHAPEBURST_SPHERICAL (7), GIMP_GRADIENT_SHAPEBURST_DIMPLED (8), GIMP_GRADIENT_SPIRAL_CLOCKWISE (9), GIMP_GRADIENT_SPIRAL_ANTICLOCKWISE (10) }"
},
{
GIMP_PDB_FLOAT,
"opacity",
"The opacity of the final blend (0 <= opacity <= 100)"
},
{
GIMP_PDB_FLOAT,
"offset",
"Offset relates to the starting and ending coordinates specified for the blend. This parameter is mode dependent (0 <= offset)"
},
{
GIMP_PDB_INT32,
"repeat",
"Repeat mode: { GIMP_REPEAT_NONE (0), GIMP_REPEAT_SAWTOOTH (1), GIMP_REPEAT_TRIANGULAR (2) }"
},
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
{
GIMP_PDB_INT32,
"reverse",
"Use the reverse gradient (TRUE or FALSE)"
},
{
GIMP_PDB_INT32,
"supersample",
"Do adaptive supersampling (TRUE or FALSE)"
},
{
GIMP_PDB_INT32,
"max_depth",
"Maximum recursion levels for supersampling"
},
{
GIMP_PDB_FLOAT,
"threshold",
"Supersampling threshold"
},
{
GIMP_PDB_INT32,
"dither",
"Use dithering to reduce banding (TRUE or FALSE)"
},
{
GIMP_PDB_FLOAT,
"x1",
"The x coordinate of this blend's starting point"
},
{
GIMP_PDB_FLOAT,
"y1",
"The y coordinate of this blend's starting point"
},
{
GIMP_PDB_FLOAT,
"x2",
"The x coordinate of this blend's ending point"
},
{
GIMP_PDB_FLOAT,
"y2",
"The y coordinate of this blend's ending point"
}
};
static ProcRecord blend_proc =
{
"gimp_blend",
"Blend between the starting and ending coordinates with the specified blend mode and gradient type.",
"This tool requires information on the paint application mode, the blend mode, and the gradient type. It creates the specified variety of blend using the starting and ending coordinates as defined for each gradient type.",
"Spencer Kimball & Peter Mattis",
"Spencer Kimball & Peter Mattis",
"1995-1996",
GIMP_INTERNAL,
added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients 2003-07-22 Michael Natterer <mitch@gimp.org> * app/core/gimpgradient.[ch]: added "gboolean reverse" to gimp_gradient_get_color_at() so all gradients can be used reversed. * app/core/gimpdrawable-blend.[ch] (gimp_drawable_blend) * app/core/gimppalette-import.[ch] (gimp_palette_import_from_gradient): added "gboolean reverse". * app/paint/paint-enums.[ch]: removed enum GimpGradientRepeatMode since it is identical to GimpRepeatMode, except for the now obsolete ONCE_BACKWARD value. * app/paint/gimppaintcore.[ch]: removed gimp_paint_core_get_color_from_gradient()... * app/paint/gimppaintoptions.[ch]: ...and added gimp_paint_options_get_gradient_color(), which is much more general. Added a "reverse" property to GimpGradientOptions and changed the type of the "repeat" property to GimpRepeatMode. * app/paint/gimppaintbrush.c: use gimp_paint_options_get_gradient_color(). * app/tools/gimpblendoptions.[ch]: removed the "repeat" property since it is in the parent class now. * app/gui/gradient-select.c * app/gui/palette-import-dialog.c * app/widgets/gimpgradienteditor.c * app/tools/gimpblendtool.c * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/misc_tools.pdb: changed accordingly. * app/tools/gimppaintoptions-gui.c: added a "Reverse" toggle right of the gradient preview. * app/widgets/gimppreviewrenderergradient.[ch]: added "gboolean reverse" member and gimp_preview_renderer_gradient_set_reverse() API. * tools/pdbgen/pdb/paint_tools.pdb: fixed the paintbrush invoker to set GimpPaintOption's "use-fade" and "use-gradient" properties correctly. * app/pdb/gradients_cmds.c * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * libgimp/gimpenums.h * libgimp/gimpmisctools_pdb.[ch] * plug-ins/pygimp/gimpenums.py * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimp/gimpcompat.h * plug-ins/script-fu/siod-wrapper.c: removed GimpGradientPaintMode here too since it was only exported accidentially (it's not used by any external API). * plug-ins/script-fu/scripts/3dTruchet.scm * plug-ins/script-fu/scripts/alien-glow-arrow.scm * plug-ins/script-fu/scripts/alien-glow-bar.scm * plug-ins/script-fu/scripts/alien-glow-bullet.scm * plug-ins/script-fu/scripts/alien-glow-button.scm * plug-ins/script-fu/scripts/alien-glow-logo.scm * plug-ins/script-fu/scripts/basic1-logo.scm * plug-ins/script-fu/scripts/basic2-logo.scm * plug-ins/script-fu/scripts/beveled-button.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/coffee.scm * plug-ins/script-fu/scripts/comic-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/gradient-bevel-logo.scm * plug-ins/script-fu/scripts/gradient-example.scm * plug-ins/script-fu/scripts/pupi-button.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/sphere.scm * plug-ins/script-fu/scripts/starscape-logo.scm * plug-ins/script-fu/scripts/test-sphere.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/title-header.scm * plug-ins/script-fu/scripts/weave.scm: pass "reverse" to gimp_blend(). Pass FALSE in most cases and added script parameters were it makes sense.
2003-07-22 07:24:11 -07:00
16,
blend_inargs,
0,
NULL,
{ { blend_invoker } }
};
static Argument *
bucket_fill_invoker (Gimp *gimp,
Argument *args)
{
gboolean success = TRUE;
GimpDrawable *drawable;
gint32 fill_mode;
gint32 paint_mode;
gdouble opacity;
gdouble threshold;
gboolean sample_merged;
gdouble x;
gdouble y;
app/core/Makefile.am app/core/core-types.h new base class for something 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.
2002-02-25 09:58:50 -08:00
drawable = (GimpDrawable *) gimp_item_get_by_ID (gimp, args[0].value.pdb_int);
if (! GIMP_IS_DRAWABLE (drawable))
success = FALSE;
fill_mode = args[1].value.pdb_int;
if (fill_mode < GIMP_FG_BUCKET_FILL || fill_mode > GIMP_PATTERN_BUCKET_FILL)
success = FALSE;
paint_mode = args[2].value.pdb_int;
if (paint_mode < GIMP_NORMAL_MODE || paint_mode > GIMP_COLOR_ERASE_MODE)
success = FALSE;
opacity = args[3].value.pdb_float;
if (opacity < 0.0 || opacity > 100.0)
success = FALSE;
threshold = args[4].value.pdb_float;
if (threshold < 0.0 || threshold > 255.0)
success = FALSE;
sample_merged = args[5].value.pdb_int ? TRUE : FALSE;
x = args[6].value.pdb_float;
y = args[7].value.pdb_float;
if (success)
{
GimpImage *gimage = gimp_item_get_image (GIMP_ITEM (drawable));
if (! gimage)
{
success = FALSE;
}
else
{
Fixed most of the bugs the Script-Fu logo scripts triggered: 2003-02-14 Michael Natterer <mitch@gimp.org> Fixed most of the bugs the Script-Fu logo scripts triggered: * app/core/gimpdrawable-bucket-fill.[ch] (gimp_drawable_bucket_fill): added "gboolean do_seed_fill" parameter instead of assuming TRUE. (gimp_drawable_bucket_fill_full): moved "color" and "pattern" parameters to the end. * app/tools/gimpbucketfilltool.c * app/display/gimpdisplayshell-dnd.c * app/widgets/gimpdrawablelistview.c: changed accordingly. * tools/pdbgen/pdb/misc_tools.pdb: only pass TRUE if the selection is empty. Restores old PDB behaviour. * app/core/gimpimage-undo.c (gimp_image_undo_group_end): return early if gimage->undo_on is FALSE. Fixes bogus criticals. * app/core/gimpimage.c (gimp_image_add_[layer|channel|vectors]): clamp the passed position to sane values before calling gimp_container_insert() (Scripts adding layers at wrong indices are broken but should not crash the core). * tools/pdbgen/pdb/paint_tools.pdb: need to copy the relevant paint parameters from the current context now that the paint options are contexts themselves. * tools/pdbgen/pdb/palette.pdb: removed useless includes. (Mostly) fixed text PDB functions: * app/text/gimptext-compat.[ch] (text_render): don't set text->font_size = -1 but get the size from the PangoFontDescrition. (text_get_extents): return the logical_rect, not the ink_rect because the size of the created text layer will be the logical_rect. * tools/pdbgen/pdb/text_tool.pdb: removed text_fontname_create() utility function and the usage of pass_through and implement all invokers in-place, using the correct parameters. * plug-ins/script-fu/siod-wrapper.c: fixed BG-IMAGE-FILL compat define so we can BG fill again. Cleaned up color handling code. * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/land.scm * plug-ins/script-fu/scripts/lava.scm * plug-ins/script-fu/scripts/test-sphere.scm: use new gradient names. * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * app/pdb/palette_cmds.c * app/pdb/text_tool_cmds.c: regenerated.
2003-02-14 14:33:22 -08:00
gboolean do_seed_fill;
do_seed_fill = gimp_channel_is_empty (gimp_image_get_mask (gimage));
Fixed most of the bugs the Script-Fu logo scripts triggered: 2003-02-14 Michael Natterer <mitch@gimp.org> Fixed most of the bugs the Script-Fu logo scripts triggered: * app/core/gimpdrawable-bucket-fill.[ch] (gimp_drawable_bucket_fill): added "gboolean do_seed_fill" parameter instead of assuming TRUE. (gimp_drawable_bucket_fill_full): moved "color" and "pattern" parameters to the end. * app/tools/gimpbucketfilltool.c * app/display/gimpdisplayshell-dnd.c * app/widgets/gimpdrawablelistview.c: changed accordingly. * tools/pdbgen/pdb/misc_tools.pdb: only pass TRUE if the selection is empty. Restores old PDB behaviour. * app/core/gimpimage-undo.c (gimp_image_undo_group_end): return early if gimage->undo_on is FALSE. Fixes bogus criticals. * app/core/gimpimage.c (gimp_image_add_[layer|channel|vectors]): clamp the passed position to sane values before calling gimp_container_insert() (Scripts adding layers at wrong indices are broken but should not crash the core). * tools/pdbgen/pdb/paint_tools.pdb: need to copy the relevant paint parameters from the current context now that the paint options are contexts themselves. * tools/pdbgen/pdb/palette.pdb: removed useless includes. (Mostly) fixed text PDB functions: * app/text/gimptext-compat.[ch] (text_render): don't set text->font_size = -1 but get the size from the PangoFontDescrition. (text_get_extents): return the logical_rect, not the ink_rect because the size of the created text layer will be the logical_rect. * tools/pdbgen/pdb/text_tool.pdb: removed text_fontname_create() utility function and the usage of pass_through and implement all invokers in-place, using the correct parameters. * plug-ins/script-fu/siod-wrapper.c: fixed BG-IMAGE-FILL compat define so we can BG fill again. Cleaned up color handling code. * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/land.scm * plug-ins/script-fu/scripts/lava.scm * plug-ins/script-fu/scripts/test-sphere.scm: use new gradient names. * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * app/pdb/palette_cmds.c * app/pdb/text_tool_cmds.c: regenerated.
2003-02-14 14:33:22 -08:00
gimp_drawable_bucket_fill (drawable, fill_mode,
paint_mode, opacity / 100.0,
Fixed most of the bugs the Script-Fu logo scripts triggered: 2003-02-14 Michael Natterer <mitch@gimp.org> Fixed most of the bugs the Script-Fu logo scripts triggered: * app/core/gimpdrawable-bucket-fill.[ch] (gimp_drawable_bucket_fill): added "gboolean do_seed_fill" parameter instead of assuming TRUE. (gimp_drawable_bucket_fill_full): moved "color" and "pattern" parameters to the end. * app/tools/gimpbucketfilltool.c * app/display/gimpdisplayshell-dnd.c * app/widgets/gimpdrawablelistview.c: changed accordingly. * tools/pdbgen/pdb/misc_tools.pdb: only pass TRUE if the selection is empty. Restores old PDB behaviour. * app/core/gimpimage-undo.c (gimp_image_undo_group_end): return early if gimage->undo_on is FALSE. Fixes bogus criticals. * app/core/gimpimage.c (gimp_image_add_[layer|channel|vectors]): clamp the passed position to sane values before calling gimp_container_insert() (Scripts adding layers at wrong indices are broken but should not crash the core). * tools/pdbgen/pdb/paint_tools.pdb: need to copy the relevant paint parameters from the current context now that the paint options are contexts themselves. * tools/pdbgen/pdb/palette.pdb: removed useless includes. (Mostly) fixed text PDB functions: * app/text/gimptext-compat.[ch] (text_render): don't set text->font_size = -1 but get the size from the PangoFontDescrition. (text_get_extents): return the logical_rect, not the ink_rect because the size of the created text layer will be the logical_rect. * tools/pdbgen/pdb/text_tool.pdb: removed text_fontname_create() utility function and the usage of pass_through and implement all invokers in-place, using the correct parameters. * plug-ins/script-fu/siod-wrapper.c: fixed BG-IMAGE-FILL compat define so we can BG fill again. Cleaned up color handling code. * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/glossy.scm * plug-ins/script-fu/scripts/land.scm * plug-ins/script-fu/scripts/lava.scm * plug-ins/script-fu/scripts/test-sphere.scm: use new gradient names. * app/pdb/misc_tools_cmds.c * app/pdb/paint_tools_cmds.c * app/pdb/palette_cmds.c * app/pdb/text_tool_cmds.c: regenerated.
2003-02-14 14:33:22 -08:00
do_seed_fill,
FALSE /* don't fill transparent */,
threshold, sample_merged, x, y);
}
}
return procedural_db_return_args (&bucket_fill_proc, success);
}
static ProcArg bucket_fill_inargs[] =
{
{
GIMP_PDB_DRAWABLE,
"drawable",
"The affected drawable"
},
{
GIMP_PDB_INT32,
"fill_mode",
"The type of fill: { GIMP_FG_BUCKET_FILL (0), GIMP_BG_BUCKET_FILL (1), GIMP_PATTERN_BUCKET_FILL (2) }"
},
{
GIMP_PDB_INT32,
"paint_mode",
"The paint application mode: { GIMP_NORMAL_MODE (0), GIMP_DISSOLVE_MODE (1), GIMP_BEHIND_MODE (2), GIMP_MULTIPLY_MODE (3), GIMP_SCREEN_MODE (4), GIMP_OVERLAY_MODE (5), GIMP_DIFFERENCE_MODE (6), GIMP_ADDITION_MODE (7), GIMP_SUBTRACT_MODE (8), GIMP_DARKEN_ONLY_MODE (9), GIMP_LIGHTEN_ONLY_MODE (10), GIMP_HUE_MODE (11), GIMP_SATURATION_MODE (12), GIMP_COLOR_MODE (13), GIMP_VALUE_MODE (14), GIMP_DIVIDE_MODE (15), GIMP_DODGE_MODE (16), GIMP_BURN_MODE (17), GIMP_HARDLIGHT_MODE (18), GIMP_SOFTLIGHT_MODE (19), GIMP_GRAIN_EXTRACT_MODE (20), GIMP_GRAIN_MERGE_MODE (21), GIMP_COLOR_ERASE_MODE (22) }"
},
{
GIMP_PDB_FLOAT,
"opacity",
"The opacity of the final bucket fill (0 <= opacity <= 100)"
},
{
GIMP_PDB_FLOAT,
"threshold",
"The threshold determines how extensive the seed fill will be. It's value is specified in terms of intensity levels (0 <= threshold <= 255). This parameter is only valid when there is no selection in the specified image."
},
{
GIMP_PDB_INT32,
"sample_merged",
"Use the composite image, not the drawable"
},
{
GIMP_PDB_FLOAT,
"x",
"The x coordinate of this bucket fill's application. This parameter is only valid when there is no selection in the specified image."
},
{
GIMP_PDB_FLOAT,
"y",
"The y coordinate of this bucket fill's application. This parameter is only valid when there is no selection in the specified image."
}
};
static ProcRecord bucket_fill_proc =
{
"gimp_bucket_fill",
"Fill the area specified either by the current selection if there is one, or by a seed fill starting at the specified coordinates.",
"This tool requires information on the paint application mode, and the fill mode, which can either be in the foreground color, or in the currently active pattern. If there is no selection, a seed fill is executed at the specified coordinates and extends outward in keeping with the threshold parameter. If there is a selection in the target image, the threshold, sample merged, x, and y arguments are unused. If the sample_merged parameter is non-zero, the data of the composite image will be used instead of that for the specified drawable. This is equivalent to sampling for colors after merging all visible layers. In the case of merged sampling, the x,y coordinates are relative to the image's origin; otherwise, they are relative to the drawable's origin.",
"Spencer Kimball & Peter Mattis",
"Spencer Kimball & Peter Mattis",
"1995-1996",
GIMP_INTERNAL,
8,
bucket_fill_inargs,
0,
NULL,
{ { bucket_fill_invoker } }
};
static Argument *
color_picker_invoker (Gimp *gimp,
Argument *args)
{
gboolean success = TRUE;
Argument *return_args;
GimpImage *gimage;
GimpDrawable *drawable;
gdouble x;
gdouble y;
gboolean sample_merged;
gboolean sample_average;
gdouble average_radius;
GimpRGB color;
gimage = gimp_image_get_by_ID (gimp, args[0].value.pdb_int);
if (! GIMP_IS_IMAGE (gimage))
success = FALSE;
app/core/Makefile.am app/core/core-types.h new base class for something 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.
2002-02-25 09:58:50 -08:00
drawable = (GimpDrawable *) gimp_item_get_by_ID (gimp, args[1].value.pdb_int);
x = args[2].value.pdb_float;
y = args[3].value.pdb_float;
sample_merged = args[4].value.pdb_int ? TRUE : FALSE;
sample_average = args[5].value.pdb_int ? TRUE : FALSE;
average_radius = args[6].value.pdb_float;
if (sample_average && (average_radius <= 0.0))
success = FALSE;
if (success)
{
if (!sample_merged)
app/core/Makefile.am app/core/core-types.h new base class for something 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.
2002-02-25 09:58:50 -08:00
if (!drawable || (gimp_item_get_image (GIMP_ITEM (drawable)) != gimage))
success = FALSE;
if (success)
success = gimp_image_pick_color (gimage,
drawable,
(gint) x, (gint) y,
sample_merged,
sample_average,
average_radius,
NULL,
&color,
NULL);
}
return_args = procedural_db_return_args (&color_picker_proc, success);
if (success)
return_args[1].value.pdb_color = color;
return return_args;
}
static ProcArg color_picker_inargs[] =
{
{
GIMP_PDB_IMAGE,
"image",
"The image"
},
{
GIMP_PDB_DRAWABLE,
"drawable",
"The affected drawable"
},
{
GIMP_PDB_FLOAT,
"x",
"x coordinate of upper-left corner of rectangle"
},
{
GIMP_PDB_FLOAT,
"y",
"y coordinate of upper-left corner of rectangle"
},
{
GIMP_PDB_INT32,
"sample_merged",
"Use the composite image, not the drawable"
},
{
GIMP_PDB_INT32,
"sample_average",
"Average the color of all the pixels in a specified radius"
},
{
GIMP_PDB_FLOAT,
"average_radius",
"The radius of pixels to average"
}
};
static ProcArg color_picker_outargs[] =
{
{
GIMP_PDB_COLOR,
"color",
"The return color"
}
};
static ProcRecord color_picker_proc =
{
"gimp_color_picker",
"Determine the color at the given drawable coordinates",
"This tool determines the color at the specified coordinates. The returned color is an RGB triplet even for grayscale and indexed drawables. If the coordinates lie outside of the extents of the specified drawable, then an error is returned. If the drawable has an alpha channel, the algorithm examines the alpha value of the drawable at the coordinates. If the alpha value is completely transparent (0), then an error is returned. If the sample_merged parameter is non-zero, the data of the composite image will be used instead of that for the specified drawable. This is equivalent to sampling for colors after merging all visible layers. In the case of a merged sampling, the supplied drawable is ignored.",
"Spencer Kimball & Peter Mattis",
"Spencer Kimball & Peter Mattis",
"1995-1996",
GIMP_INTERNAL,
7,
color_picker_inargs,
1,
color_picker_outargs,
{ { color_picker_invoker } }
};