pdb: add a lot of state for a new item-based transform API

interpolation, transform-direction, transform-resize, transform-recursion
This commit is contained in:
Michael Natterer 2010-09-07 02:33:13 +02:00
parent d96b491050
commit 23aaf69779
8 changed files with 966 additions and 42 deletions

View File

@ -769,6 +769,186 @@ context_set_feather_radius_invoker (GimpProcedure *procedure,
error ? *error : NULL);
}
static GValueArray *
context_get_interpolation_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
GValueArray *return_vals;
gint32 interpolation = 0;
g_object_get (context,
"interpolation", &interpolation,
NULL);
return_vals = gimp_procedure_get_return_values (procedure, TRUE, NULL);
g_value_set_enum (&return_vals->values[1], interpolation);
return return_vals;
}
static GValueArray *
context_set_interpolation_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
gboolean success = TRUE;
gint32 interpolation;
interpolation = g_value_get_enum (&args->values[0]);
if (success)
{
g_object_set (context,
"interpolation", interpolation,
NULL);
}
return gimp_procedure_get_return_values (procedure, success,
error ? *error : NULL);
}
static GValueArray *
context_get_transform_direction_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
GValueArray *return_vals;
gint32 transform_direction = 0;
g_object_get (context,
"transform-direction", &transform_direction,
NULL);
return_vals = gimp_procedure_get_return_values (procedure, TRUE, NULL);
g_value_set_enum (&return_vals->values[1], transform_direction);
return return_vals;
}
static GValueArray *
context_set_transform_direction_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
gboolean success = TRUE;
gint32 transform_direction;
transform_direction = g_value_get_enum (&args->values[0]);
if (success)
{
g_object_set (context,
"transform-direction", transform_direction,
NULL);
}
return gimp_procedure_get_return_values (procedure, success,
error ? *error : NULL);
}
static GValueArray *
context_get_transform_resize_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
GValueArray *return_vals;
gint32 transform_resize = 0;
g_object_get (context,
"transform-resize", &transform_resize,
NULL);
return_vals = gimp_procedure_get_return_values (procedure, TRUE, NULL);
g_value_set_enum (&return_vals->values[1], transform_resize);
return return_vals;
}
static GValueArray *
context_set_transform_resize_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
gboolean success = TRUE;
gint32 transform_resize;
transform_resize = g_value_get_enum (&args->values[0]);
if (success)
{
g_object_set (context,
"transform-resize", transform_resize,
NULL);
}
return gimp_procedure_get_return_values (procedure, success,
error ? *error : NULL);
}
static GValueArray *
context_get_transform_recursion_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
GValueArray *return_vals;
gint32 transform_recursion = 0;
g_object_get (context,
"transform-recursion", &transform_recursion,
NULL);
return_vals = gimp_procedure_get_return_values (procedure, TRUE, NULL);
g_value_set_int (&return_vals->values[1], transform_recursion);
return return_vals;
}
static GValueArray *
context_set_transform_recursion_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GValueArray *args,
GError **error)
{
gboolean success = TRUE;
gint32 transform_recursion;
transform_recursion = g_value_get_int (&args->values[0]);
if (success)
{
g_object_set (context,
"transform-recursion", transform_recursion,
NULL);
}
return gimp_procedure_get_return_values (procedure, success,
error ? *error : NULL);
}
void
register_context_procs (GimpPDB *pdb)
{
@ -1497,4 +1677,194 @@ register_context_procs (GimpPDB *pdb)
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-get-interpolation
*/
procedure = gimp_procedure_new (context_get_interpolation_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-get-interpolation");
gimp_procedure_set_static_strings (procedure,
"gimp-context-get-interpolation",
"Get the interpolation type.",
"This procedure returns the interpolation setting. The return value is an integer which corresponds to the values listed in the argument description.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_return_value (procedure,
g_param_spec_enum ("interpolation",
"interpolation",
"The interpolation type",
GIMP_TYPE_INTERPOLATION_TYPE,
GIMP_INTERPOLATION_NONE,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-set-interpolation
*/
procedure = gimp_procedure_new (context_set_interpolation_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-set-interpolation");
gimp_procedure_set_static_strings (procedure,
"gimp-context-set-interpolation",
"Set the interpolation type.",
"This procedure modifies the interpolation setting. It affects all transform procedures which can produce sub-pixel results.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_argument (procedure,
g_param_spec_enum ("interpolation",
"interpolation",
"The interpolation type",
GIMP_TYPE_INTERPOLATION_TYPE,
GIMP_INTERPOLATION_NONE,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-get-transform-direction
*/
procedure = gimp_procedure_new (context_get_transform_direction_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-get-transform-direction");
gimp_procedure_set_static_strings (procedure,
"gimp-context-get-transform-direction",
"Get the transform direction.",
"This procedure returns the transform direction. The return value is an integer which corresponds to the values listed in the argument description.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_return_value (procedure,
g_param_spec_enum ("transform-direction",
"transform direction",
"The transform direction",
GIMP_TYPE_TRANSFORM_DIRECTION,
GIMP_TRANSFORM_FORWARD,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-set-transform-direction
*/
procedure = gimp_procedure_new (context_set_transform_direction_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-set-transform-direction");
gimp_procedure_set_static_strings (procedure,
"gimp-context-set-transform-direction",
"Set the transform direction.",
"This procedure modifies the transform direction setting.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_argument (procedure,
g_param_spec_enum ("transform-direction",
"transform direction",
"The transform direction",
GIMP_TYPE_TRANSFORM_DIRECTION,
GIMP_TRANSFORM_FORWARD,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-get-transform-resize
*/
procedure = gimp_procedure_new (context_get_transform_resize_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-get-transform-resize");
gimp_procedure_set_static_strings (procedure,
"gimp-context-get-transform-resize",
"Get the transform resize type.",
"This procedure returns the transform resize setting. The return value is an integer which corresponds to the values listed in the argument description.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_return_value (procedure,
g_param_spec_enum ("transform-resize",
"transform resize",
"The transform resize type",
GIMP_TYPE_TRANSFORM_RESIZE,
GIMP_TRANSFORM_RESIZE_ADJUST,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-set-transform-resize
*/
procedure = gimp_procedure_new (context_set_transform_resize_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-set-transform-resize");
gimp_procedure_set_static_strings (procedure,
"gimp-context-set-transform-resize",
"Set the transform resize type.",
"This procedure modifies the transform resize setting. When transforming pixels, if the result of a transform operation has a different size than the original area, this setting determines how the resulting area is sized.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_argument (procedure,
g_param_spec_enum ("transform-resize",
"transform resize",
"The transform resize type",
GIMP_TYPE_TRANSFORM_RESIZE,
GIMP_TRANSFORM_RESIZE_ADJUST,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-get-transform-recursion
*/
procedure = gimp_procedure_new (context_get_transform_recursion_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-get-transform-recursion");
gimp_procedure_set_static_strings (procedure,
"gimp-context-get-transform-recursion",
"Get the transform supersampling recursion.",
"This procedure returns the transform supersampling recursion level.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_return_value (procedure,
gimp_param_spec_int32 ("transform-recursion",
"transform recursion",
"The transform recursion level",
1, G_MAXINT32, 1,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
/*
* gimp-context-set-transform-recursion
*/
procedure = gimp_procedure_new (context_set_transform_recursion_invoker);
gimp_object_set_static_name (GIMP_OBJECT (procedure),
"gimp-context-set-transform-recursion");
gimp_procedure_set_static_strings (procedure,
"gimp-context-set-transform-recursion",
"Set the transform supersampling recursion.",
"This procedure modifies the transform supersampling recursion level setting. Whether or not a transformation does supersampling is determined by the interplolation type. The recursion level defaults to 3, which is a nice default value.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2010",
NULL);
gimp_procedure_add_argument (procedure,
gimp_param_spec_int32 ("transform-recursion",
"transform recursion",
"The transform recursion level",
1, G_MAXINT32, 1,
GIMP_PARAM_READWRITE));
gimp_pdb_register_procedure (pdb, procedure);
g_object_unref (procedure);
}

View File

@ -38,7 +38,11 @@ enum
PROP_ANTIALIAS,
PROP_FEATHER,
PROP_FEATHER_RADIUS_X,
PROP_FEATHER_RADIUS_Y
PROP_FEATHER_RADIUS_Y,
PROP_INTERPOLATION,
PROP_TRANSFORM_DIRECTION,
PROP_TRANSFORM_RESIZE,
PROP_TRANSFORM_RECURSION
};
@ -85,6 +89,29 @@ gimp_pdb_context_class_init (GimpPDBContextClass *klass)
"feather-radius-y", NULL,
0.0, 1000.0, 10.0,
GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_INTERPOLATION,
"interpolation", NULL,
GIMP_TYPE_INTERPOLATION_TYPE,
GIMP_INTERPOLATION_CUBIC,
GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_TRANSFORM_DIRECTION,
"transform-direction", NULL,
GIMP_TYPE_TRANSFORM_DIRECTION,
GIMP_TRANSFORM_FORWARD,
GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_TRANSFORM_RESIZE,
"transform-resize", NULL,
GIMP_TYPE_TRANSFORM_RESIZE,
GIMP_TRANSFORM_RESIZE_ADJUST,
GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_TRANSFORM_RECURSION,
"transform-recursion", NULL,
1, G_MAXINT32, 3,
GIMP_PARAM_STATIC_STRINGS);
}
static void
@ -118,6 +145,22 @@ gimp_pdb_context_set_property (GObject *object,
options->feather_radius_y = g_value_get_double (value);
break;
case PROP_INTERPOLATION:
options->interpolation = g_value_get_enum (value);
break;
case PROP_TRANSFORM_DIRECTION:
options->transform_direction = g_value_get_enum (value);
break;
case PROP_TRANSFORM_RESIZE:
options->transform_resize = g_value_get_enum (value);
break;
case PROP_TRANSFORM_RECURSION:
options->transform_recursion = g_value_get_int (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@ -150,6 +193,22 @@ gimp_pdb_context_get_property (GObject *object,
g_value_set_double (value, options->feather_radius_y);
break;
case PROP_INTERPOLATION:
g_value_set_enum (value, options->interpolation);
break;
case PROP_TRANSFORM_DIRECTION:
g_value_set_enum (value, options->transform_direction);
break;
case PROP_TRANSFORM_RESIZE:
g_value_set_enum (value, options->transform_resize);
break;
case PROP_TRANSFORM_RECURSION:
g_value_set_int (value, options->transform_recursion);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;

View File

@ -37,12 +37,17 @@ typedef struct _GimpPDBContextClass GimpPDBContextClass;
struct _GimpPDBContext
{
GimpContext parent_instance;
GimpContext parent_instance;
gboolean antialias;
gboolean feather;
gdouble feather_radius_x;
gdouble feather_radius_y;
gboolean antialias;
gboolean feather;
gdouble feather_radius_x;
gdouble feather_radius_y;
GimpInterpolationType interpolation;
GimpTransformDirection transform_direction;
GimpTransformResize transform_resize;
gint transform_recursion;
};
struct _GimpPDBContextClass

View File

@ -28,7 +28,7 @@
#include "internal-procs.h"
/* 640 procedures registered total */
/* 648 procedures registered total */
void
internal_procs_init (GimpPDB *pdb)

View File

@ -76,11 +76,15 @@ EXPORTS
gimp_context_get_font
gimp_context_get_foreground
gimp_context_get_gradient
gimp_context_get_interpolation
gimp_context_get_opacity
gimp_context_get_paint_method
gimp_context_get_paint_mode
gimp_context_get_palette
gimp_context_get_pattern
gimp_context_get_transform_direction
gimp_context_get_transform_recursion
gimp_context_get_transform_resize
gimp_context_list_paint_methods
gimp_context_pop
gimp_context_push
@ -93,11 +97,15 @@ EXPORTS
gimp_context_set_font
gimp_context_set_foreground
gimp_context_set_gradient
gimp_context_set_interpolation
gimp_context_set_opacity
gimp_context_set_paint_method
gimp_context_set_paint_mode
gimp_context_set_palette
gimp_context_set_pattern
gimp_context_set_transform_direction
gimp_context_set_transform_recursion
gimp_context_set_transform_resize
gimp_context_swap_colors
gimp_convert_dither_type_get_type
gimp_convert_palette_type_get_type

View File

@ -1065,3 +1065,260 @@ gimp_context_set_feather_radius (gdouble feather_radius_x,
return success;
}
/**
* gimp_context_get_interpolation:
*
* Get the interpolation type.
*
* This procedure returns the interpolation setting. The return value
* is an integer which corresponds to the values listed in the argument
* description.
*
* Returns: The interpolation type.
*
* Since: GIMP 2.8
*/
GimpInterpolationType
gimp_context_get_interpolation (void)
{
GimpParam *return_vals;
gint nreturn_vals;
GimpInterpolationType interpolation = 0;
return_vals = gimp_run_procedure ("gimp-context-get-interpolation",
&nreturn_vals,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
interpolation = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
return interpolation;
}
/**
* gimp_context_set_interpolation:
* @interpolation: The interpolation type.
*
* Set the interpolation type.
*
* This procedure modifies the interpolation setting. It affects all
* transform procedures which can produce sub-pixel results.
*
* Returns: TRUE on success.
*
* Since: GIMP 2.8
*/
gboolean
gimp_context_set_interpolation (GimpInterpolationType interpolation)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp-context-set-interpolation",
&nreturn_vals,
GIMP_PDB_INT32, interpolation,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_context_get_transform_direction:
*
* Get the transform direction.
*
* This procedure returns the transform direction. The return value is
* an integer which corresponds to the values listed in the argument
* description.
*
* Returns: The transform direction.
*
* Since: GIMP 2.8
*/
GimpTransformDirection
gimp_context_get_transform_direction (void)
{
GimpParam *return_vals;
gint nreturn_vals;
GimpTransformDirection transform_direction = 0;
return_vals = gimp_run_procedure ("gimp-context-get-transform-direction",
&nreturn_vals,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
transform_direction = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
return transform_direction;
}
/**
* gimp_context_set_transform_direction:
* @transform_direction: The transform direction.
*
* Set the transform direction.
*
* This procedure modifies the transform direction setting.
*
* Returns: TRUE on success.
*
* Since: GIMP 2.8
*/
gboolean
gimp_context_set_transform_direction (GimpTransformDirection transform_direction)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp-context-set-transform-direction",
&nreturn_vals,
GIMP_PDB_INT32, transform_direction,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_context_get_transform_resize:
*
* Get the transform resize type.
*
* This procedure returns the transform resize setting. The return
* value is an integer which corresponds to the values listed in the
* argument description.
*
* Returns: The transform resize type.
*
* Since: GIMP 2.8
*/
GimpTransformResize
gimp_context_get_transform_resize (void)
{
GimpParam *return_vals;
gint nreturn_vals;
GimpTransformResize transform_resize = 0;
return_vals = gimp_run_procedure ("gimp-context-get-transform-resize",
&nreturn_vals,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
transform_resize = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
return transform_resize;
}
/**
* gimp_context_set_transform_resize:
* @transform_resize: The transform resize type.
*
* Set the transform resize type.
*
* This procedure modifies the transform resize setting. When
* transforming pixels, if the result of a transform operation has a
* different size than the original area, this setting determines how
* the resulting area is sized.
*
* Returns: TRUE on success.
*
* Since: GIMP 2.8
*/
gboolean
gimp_context_set_transform_resize (GimpTransformResize transform_resize)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp-context-set-transform-resize",
&nreturn_vals,
GIMP_PDB_INT32, transform_resize,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}
/**
* gimp_context_get_transform_recursion:
*
* Get the transform supersampling recursion.
*
* This procedure returns the transform supersampling recursion level.
*
* Returns: The transform recursion level.
*
* Since: GIMP 2.8
*/
gint
gimp_context_get_transform_recursion (void)
{
GimpParam *return_vals;
gint nreturn_vals;
gint transform_recursion = 0;
return_vals = gimp_run_procedure ("gimp-context-get-transform-recursion",
&nreturn_vals,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
transform_recursion = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
return transform_recursion;
}
/**
* gimp_context_set_transform_recursion:
* @transform_recursion: The transform recursion level.
*
* Set the transform supersampling recursion.
*
* This procedure modifies the transform supersampling recursion level
* setting. Whether or not a transformation does supersampling is
* determined by the interplolation type. The recursion level defaults
* to 3, which is a nice default value.
*
* Returns: TRUE on success.
*
* Since: GIMP 2.8
*/
gboolean
gimp_context_set_transform_recursion (gint transform_recursion)
{
GimpParam *return_vals;
gint nreturn_vals;
gboolean success = TRUE;
return_vals = gimp_run_procedure ("gimp-context-set-transform-recursion",
&nreturn_vals,
GIMP_PDB_INT32, transform_recursion,
GIMP_PDB_END);
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
gimp_destroy_params (return_vals, nreturn_vals);
return success;
}

View File

@ -28,40 +28,48 @@ G_BEGIN_DECLS
/* For information look into the C source or the html documentation */
gboolean gimp_context_push (void);
gboolean gimp_context_pop (void);
gboolean gimp_context_list_paint_methods (gint *num_paint_methods,
gchar ***paint_methods);
gchar* gimp_context_get_paint_method (void);
gboolean gimp_context_set_paint_method (const gchar *name);
gboolean gimp_context_get_foreground (GimpRGB *foreground);
gboolean gimp_context_set_foreground (const GimpRGB *foreground);
gboolean gimp_context_get_background (GimpRGB *background);
gboolean gimp_context_set_background (const GimpRGB *background);
gboolean gimp_context_set_default_colors (void);
gboolean gimp_context_swap_colors (void);
gdouble gimp_context_get_opacity (void);
gboolean gimp_context_set_opacity (gdouble opacity);
GimpLayerModeEffects gimp_context_get_paint_mode (void);
gboolean gimp_context_set_paint_mode (GimpLayerModeEffects paint_mode);
gchar* gimp_context_get_brush (void);
gboolean gimp_context_set_brush (const gchar *name);
gchar* gimp_context_get_pattern (void);
gboolean gimp_context_set_pattern (const gchar *name);
gchar* gimp_context_get_gradient (void);
gboolean gimp_context_set_gradient (const gchar *name);
gchar* gimp_context_get_palette (void);
gboolean gimp_context_set_palette (const gchar *name);
gchar* gimp_context_get_font (void);
gboolean gimp_context_set_font (const gchar *name);
gboolean gimp_context_get_antialias (void);
gboolean gimp_context_set_antialias (gboolean antialias);
gboolean gimp_context_get_feather (void);
gboolean gimp_context_set_feather (gboolean feather);
gboolean gimp_context_get_feather_radius (gdouble *feather_radius_x,
gdouble *feather_radius_y);
gboolean gimp_context_set_feather_radius (gdouble feather_radius_x,
gdouble feather_radius_y);
gboolean gimp_context_push (void);
gboolean gimp_context_pop (void);
gboolean gimp_context_list_paint_methods (gint *num_paint_methods,
gchar ***paint_methods);
gchar* gimp_context_get_paint_method (void);
gboolean gimp_context_set_paint_method (const gchar *name);
gboolean gimp_context_get_foreground (GimpRGB *foreground);
gboolean gimp_context_set_foreground (const GimpRGB *foreground);
gboolean gimp_context_get_background (GimpRGB *background);
gboolean gimp_context_set_background (const GimpRGB *background);
gboolean gimp_context_set_default_colors (void);
gboolean gimp_context_swap_colors (void);
gdouble gimp_context_get_opacity (void);
gboolean gimp_context_set_opacity (gdouble opacity);
GimpLayerModeEffects gimp_context_get_paint_mode (void);
gboolean gimp_context_set_paint_mode (GimpLayerModeEffects paint_mode);
gchar* gimp_context_get_brush (void);
gboolean gimp_context_set_brush (const gchar *name);
gchar* gimp_context_get_pattern (void);
gboolean gimp_context_set_pattern (const gchar *name);
gchar* gimp_context_get_gradient (void);
gboolean gimp_context_set_gradient (const gchar *name);
gchar* gimp_context_get_palette (void);
gboolean gimp_context_set_palette (const gchar *name);
gchar* gimp_context_get_font (void);
gboolean gimp_context_set_font (const gchar *name);
gboolean gimp_context_get_antialias (void);
gboolean gimp_context_set_antialias (gboolean antialias);
gboolean gimp_context_get_feather (void);
gboolean gimp_context_set_feather (gboolean feather);
gboolean gimp_context_get_feather_radius (gdouble *feather_radius_x,
gdouble *feather_radius_y);
gboolean gimp_context_set_feather_radius (gdouble feather_radius_x,
gdouble feather_radius_y);
GimpInterpolationType gimp_context_get_interpolation (void);
gboolean gimp_context_set_interpolation (GimpInterpolationType interpolation);
GimpTransformDirection gimp_context_get_transform_direction (void);
gboolean gimp_context_set_transform_direction (GimpTransformDirection transform_direction);
GimpTransformResize gimp_context_get_transform_resize (void);
gboolean gimp_context_set_transform_resize (GimpTransformResize transform_resize);
gint gimp_context_get_transform_recursion (void);
gboolean gimp_context_set_transform_recursion (gint transform_recursion);
G_END_DECLS

View File

@ -864,6 +864,219 @@ CODE
);
}
sub context_get_interpolation {
$blurb = 'Get the interpolation type.';
$help = <<'HELP';
This procedure returns the interpolation setting. The return value
is an integer which corresponds to the values listed in the argument
description.
HELP
&mitch_pdb_misc('2010', '2.8');
@outargs = (
{ name => 'interpolation', type => 'enum GimpInterpolationType',
desc => 'The interpolation type' }
);
%invoke = (
code => <<'CODE'
{
g_object_get (context,
"interpolation", &interpolation,
NULL);
}
CODE
);
}
sub context_set_interpolation {
$blurb = 'Set the interpolation type.';
$help = <<'HELP';
This procedure modifies the interpolation setting. It affects all
transform procedures which can produce sub-pixel results.
HELP
&mitch_pdb_misc('2010', '2.8');
@inargs = (
{ name => 'interpolation', type => 'enum GimpInterpolationType',
desc => 'The interpolation type' }
);
%invoke = (
code => <<'CODE'
{
g_object_set (context,
"interpolation", interpolation,
NULL);
}
CODE
);
}
sub context_get_transform_direction {
$blurb = 'Get the transform direction.';
$help = <<'HELP';
This procedure returns the transform direction. The return value
is an integer which corresponds to the values listed in the argument
description.
HELP
&mitch_pdb_misc('2010', '2.8');
@outargs = (
{ name => 'transform_direction', type => 'enum GimpTransformDirection',
desc => 'The transform direction' }
);
%invoke = (
code => <<'CODE'
{
g_object_get (context,
"transform-direction", &transform_direction,
NULL);
}
CODE
);
}
sub context_set_transform_direction {
$blurb = 'Set the transform direction.';
$help = <<'HELP';
This procedure modifies the transform direction setting.
HELP
&mitch_pdb_misc('2010', '2.8');
@inargs = (
{ name => 'transform_direction', type => 'enum GimpTransformDirection',
desc => 'The transform direction' }
);
%invoke = (
code => <<'CODE'
{
g_object_set (context,
"transform-direction", transform_direction,
NULL);
}
CODE
);
}
sub context_get_transform_resize {
$blurb = 'Get the transform resize type.';
$help = <<'HELP';
This procedure returns the transform resize setting. The return value
is an integer which corresponds to the values listed in the argument
description.
HELP
&mitch_pdb_misc('2010', '2.8');
@outargs = (
{ name => 'transform_resize', type => 'enum GimpTransformResize',
desc => 'The transform resize type' }
);
%invoke = (
code => <<'CODE'
{
g_object_get (context,
"transform-resize", &transform_resize,
NULL);
}
CODE
);
}
sub context_set_transform_resize {
$blurb = 'Set the transform resize type.';
$help = <<'HELP';
This procedure modifies the transform resize setting. When transforming
pixels, if the result of a transform operation has a different size
than the original area, this setting determines how the resulting area
is sized.
HELP
&mitch_pdb_misc('2010', '2.8');
@inargs = (
{ name => 'transform_resize', type => 'enum GimpTransformResize',
desc => 'The transform resize type' }
);
%invoke = (
code => <<'CODE'
{
g_object_set (context,
"transform-resize", transform_resize,
NULL);
}
CODE
);
}
sub context_get_transform_recursion {
$blurb = 'Get the transform supersampling recursion.';
$help = <<'HELP';
This procedure returns the transform supersampling recursion level.
HELP
&mitch_pdb_misc('2010', '2.8');
@outargs = (
{ name => 'transform_recursion', type => '1 <= int32',
desc => 'The transform recursion level' }
);
%invoke = (
code => <<'CODE'
{
g_object_get (context,
"transform-recursion", &transform_recursion,
NULL);
}
CODE
);
}
sub context_set_transform_recursion {
$blurb = 'Set the transform supersampling recursion.';
$help = <<'HELP';
This procedure modifies the transform supersampling recursion level
setting. Whether or not a transformation does supersampling is
determined by the interplolation type. The recursion level defaults
to 3, which is a nice default value.
HELP
&mitch_pdb_misc('2010', '2.8');
@inargs = (
{ name => 'transform_recursion', type => '1 <= int32',
desc => 'The transform recursion level' }
);
%invoke = (
code => <<'CODE'
{
g_object_set (context,
"transform-recursion", transform_recursion,
NULL);
}
CODE
);
}
@headers = qw("core/gimp.h"
"core/gimpcontainer.h"
"core/gimpdatafactory.h"
@ -889,7 +1102,11 @@ CODE
context_get_font context_set_font
context_get_antialias context_set_antialias
context_get_feather context_set_feather
context_get_feather_radius context_set_feather_radius);
context_get_feather_radius context_set_feather_radius
context_get_interpolation context_set_interpolation
context_get_transform_direction context_set_transform_direction
context_get_transform_resize context_set_transform_resize
context_get_transform_recursion context_set_transform_recursion);
%exports = (app => [@procs], lib => [@procs]);