pdb: use the newly added GimpPDBContext paint options for painting

so all paint context settings take part in the push/pop logic.
This commit is contained in:
Michael Natterer
2011-10-31 22:08:53 +01:00
parent 01344f811d
commit 6ee7b22153
2 changed files with 234 additions and 169 deletions

View File

@ -21,6 +21,7 @@
#include <gegl.h> #include <gegl.h>
#include "libgimpconfig/gimpconfig.h"
#include "libgimpmath/gimpmath.h" #include "libgimpmath/gimpmath.h"
#include "pdb-types.h" #include "pdb-types.h"
@ -36,6 +37,7 @@
#include "gimppdb.h" #include "gimppdb.h"
#include "gimppdb-utils.h" #include "gimppdb-utils.h"
#include "gimppdbcontext.h"
#include "gimpprocedure.h" #include "gimpprocedure.h"
#include "internal-procs.h" #include "internal-procs.h"
@ -127,13 +129,15 @@ airbrush_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-airbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"pressure", pressure, "pressure", pressure,
@ -141,7 +145,7 @@ airbrush_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -171,17 +175,19 @@ airbrush_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-airbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -219,13 +225,15 @@ clone_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-clone");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"clone-type", clone_type, "clone-type", clone_type,
@ -233,7 +241,7 @@ clone_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
"src-drawable", src_drawable, "src-drawable", src_drawable,
"src-x", src_x, "src-x", src_x,
"src-y", src_y, "src-y", src_y,
@ -266,17 +274,19 @@ clone_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-clone");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -310,13 +320,15 @@ convolve_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-convolve");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"type", convolve_type, "type", convolve_type,
@ -325,7 +337,7 @@ convolve_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -355,17 +367,19 @@ convolve_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-convolve");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -401,13 +415,15 @@ dodgeburn_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-dodge-burn");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"type", dodgeburn_type, "type", dodgeburn_type,
@ -417,7 +433,7 @@ dodgeburn_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -447,17 +463,19 @@ dodgeburn_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-dodge-burn");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -491,13 +509,15 @@ eraser_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-eraser");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"application-mode", method, "application-mode", method,
@ -506,7 +526,7 @@ eraser_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -536,17 +556,19 @@ eraser_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-eraser");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -582,17 +604,19 @@ heal_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-heal");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
"src-drawable", src_drawable, "src-drawable", src_drawable,
"src-x", src_x, "src-x", src_x,
"src-y", src_y, "src-y", src_y,
@ -625,17 +649,19 @@ heal_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-heal");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -671,16 +697,19 @@ paintbrush_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-paintbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info);
GimpDynamics *pdb_dynamics = GIMP_DYNAMICS (gimp_dynamics_new (context, "pdb")); GimpDynamics *pdb_dynamics = GIMP_DYNAMICS (gimp_dynamics_new (context, "pdb"));
GimpDynamics *user_dynamics = gimp_context_get_dynamics (context); GimpDynamics *user_dynamics = gimp_context_get_dynamics (context);
options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"application-mode", method, "application-mode", method,
"fade-length", MAX (fade_out, gradient_length), "fade-length", MAX (fade_out, gradient_length),
@ -688,8 +717,10 @@ paintbrush_invoker (GimpProcedure *procedure,
if (fade_out > 0) if (fade_out > 0)
{ {
GimpDynamicsOutput *opacity_output = gimp_dynamics_get_output (pdb_dynamics, GimpDynamicsOutput *opacity_output =
gimp_dynamics_get_output (pdb_dynamics,
GIMP_DYNAMICS_OUTPUT_OPACITY); GIMP_DYNAMICS_OUTPUT_OPACITY);
g_object_set (opacity_output, g_object_set (opacity_output,
"use-fade", TRUE, "use-fade", TRUE,
NULL); NULL);
@ -697,7 +728,8 @@ paintbrush_invoker (GimpProcedure *procedure,
if (gradient_length > 0) if (gradient_length > 0)
{ {
GimpDynamicsOutput *color_output = gimp_dynamics_get_output (pdb_dynamics, GimpDynamicsOutput *color_output =
gimp_dynamics_get_output (pdb_dynamics,
GIMP_DYNAMICS_OUTPUT_COLOR); GIMP_DYNAMICS_OUTPUT_COLOR);
g_object_set (color_output, g_object_set (color_output,
@ -709,7 +741,7 @@ paintbrush_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
gimp_context_set_dynamics (context, user_dynamics); gimp_context_set_dynamics (context, user_dynamics);
@ -743,17 +775,19 @@ paintbrush_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-paintbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -783,17 +817,19 @@ pencil_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-pencil", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-pencil");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -825,13 +861,15 @@ smudge_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-smudge");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"rate", pressure, "rate", pressure,
@ -839,7 +877,7 @@ smudge_invoker (GimpProcedure *procedure,
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -869,17 +907,19 @@ smudge_default_invoker (GimpProcedure *procedure,
if (success) if (success)
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-smudge");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else

View File

@ -52,13 +52,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-airbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"pressure", pressure, "pressure", pressure,
@ -66,7 +68,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -99,17 +101,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-airbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -157,13 +161,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-clone");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"clone-type", clone_type, "clone-type", clone_type,
@ -171,7 +177,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
"src-drawable", src_drawable, "src-drawable", src_drawable,
"src-x", src_x, "src-x", src_x,
"src-y", src_y, "src-y", src_y,
@ -208,17 +214,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-clone");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -251,17 +259,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-convolve");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -296,13 +306,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-convolve");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"type", convolve_type, "type", convolve_type,
@ -311,7 +323,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -342,17 +354,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-eraser");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -388,13 +402,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-eraser");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"application-mode", method, "application-mode", method,
@ -403,7 +419,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -439,13 +455,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-eraser");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"application-mode", method, "application-mode", method,
@ -455,7 +473,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -495,17 +513,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-heal");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
"src-drawable", src_drawable, "src-drawable", src_drawable,
"src-x", src_x, "src-x", src_x,
"src-y", src_y, "src-y", src_y,
@ -542,17 +562,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-heal");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -596,16 +618,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-paintbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info);
GimpDynamics *pdb_dynamics = GIMP_DYNAMICS (gimp_dynamics_new (context, "pdb")); GimpDynamics *pdb_dynamics = GIMP_DYNAMICS (gimp_dynamics_new (context, "pdb"));
GimpDynamics *user_dynamics = gimp_context_get_dynamics (context); GimpDynamics *user_dynamics = gimp_context_get_dynamics (context);
options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"application-mode", method, "application-mode", method,
"fade-length", MAX (fade_out, gradient_length), "fade-length", MAX (fade_out, gradient_length),
@ -613,8 +638,10 @@ HELP
if (fade_out > 0) if (fade_out > 0)
{ {
GimpDynamicsOutput *opacity_output = gimp_dynamics_get_output (pdb_dynamics, GimpDynamicsOutput *opacity_output =
gimp_dynamics_get_output (pdb_dynamics,
GIMP_DYNAMICS_OUTPUT_OPACITY); GIMP_DYNAMICS_OUTPUT_OPACITY);
g_object_set (opacity_output, g_object_set (opacity_output,
"use-fade", TRUE, "use-fade", TRUE,
NULL); NULL);
@ -622,7 +649,8 @@ HELP
if (gradient_length > 0) if (gradient_length > 0)
{ {
GimpDynamicsOutput *color_output = gimp_dynamics_get_output (pdb_dynamics, GimpDynamicsOutput *color_output =
gimp_dynamics_get_output (pdb_dynamics,
GIMP_DYNAMICS_OUTPUT_COLOR); GIMP_DYNAMICS_OUTPUT_COLOR);
g_object_set (color_output, g_object_set (color_output,
@ -634,7 +662,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
gimp_context_set_dynamics (context, user_dynamics); gimp_context_set_dynamics (context, user_dynamics);
@ -679,17 +707,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-paintbrush");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -721,17 +751,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-pencil", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-pencil");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -762,13 +794,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-smudge");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"rate", pressure, "rate", pressure,
@ -776,7 +810,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -809,17 +843,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-smudge");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -855,13 +891,15 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-dodge-burn");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
g_object_set (options, g_object_set (options,
"type", dodgeburn_type, "type", dodgeburn_type,
@ -871,7 +909,7 @@ HELP
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -904,17 +942,19 @@ HELP
%invoke = ( %invoke = (
code => <<'CODE' code => <<'CODE'
{ {
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error); GimpPaintOptions *options =
gimp_pdb_context_get_paint_options (GIMP_PDB_CONTEXT (context),
"gimp-dodge-burn");
if (info && if (options &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL, TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)) gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{ {
GimpPaintOptions *options = gimp_paint_options_new (info); options = gimp_config_duplicate (GIMP_CONFIG (options));
success = paint_tools_stroke (gimp, context, options, drawable, success = paint_tools_stroke (gimp, context, options, drawable,
num_strokes, strokes, error, num_strokes, strokes, error,
"undo-desc", info->blurb, "undo-desc", options->paint_info->blurb,
NULL); NULL);
} }
else else
@ -925,23 +965,6 @@ CODE
} }
# Incomplete
sub ink {
$blurb = 'Paint in the current brush without sub-pixel sampling.';
$help = 'fixme fixme';
&std_pdb_misc;
@inargs = (
{ name => 'drawable', type => 'drawable',
desc => 'The affected drawable' },
&stroke_arg
);
}
$extra{app}->{code} = <<'CODE'; $extra{app}->{code} = <<'CODE';
static const GimpCoords default_coords = GIMP_COORDS_DEFAULT_VALUES; static const GimpCoords default_coords = GIMP_COORDS_DEFAULT_VALUES;
@ -1012,12 +1035,14 @@ CODE
@headers = qw("libgimpmath/gimpmath.h" @headers = qw("libgimpmath/gimpmath.h"
"libgimpconfig/gimpconfig.h"
"core/gimpbrush.h" "core/gimpbrush.h"
"core/gimpdynamics.h" "core/gimpdynamics.h"
"core/gimppaintinfo.h" "core/gimppaintinfo.h"
"paint/gimppaintcore.h" "paint/gimppaintcore.h"
"paint/gimppaintcore-stroke.h" "paint/gimppaintcore-stroke.h"
"paint/gimppaintoptions.h" "paint/gimppaintoptions.h"
"gimppdbcontext.h"
"gimppdb-utils.h"); "gimppdb-utils.h");
@procs = qw(airbrush airbrush_default @procs = qw(airbrush airbrush_default