962 lines
23 KiB
Text
962 lines
23 KiB
Text
# GIMP - The GNU Image Manipulation Program
|
|
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
# New Vector Layer PDB API
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
sub vector_layer_new {
|
|
$blurb = 'Create a new vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure creates a new vector layer displaying the specified @path. By
|
|
default, the fill and stroke properties will be defined by the context.
|
|
|
|
|
|
The new layer still needs to be added to the image as this is not
|
|
automatic. Add the new layer with the [method@Image.insert_layer]
|
|
method.
|
|
|
|
|
|
The arguments are kept as simple as necessary for the basic case. All
|
|
vector attributes, however, can be modified with the appropriate
|
|
`gimp_vector_layer_set_*()` procedures.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'image', type => 'image',
|
|
desc => 'The image' },
|
|
{ name => 'path', type => 'path',
|
|
desc => 'The path to create the layer from' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The new vector layer. The object belongs to libgimp and you should not free it.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (path == NULL)
|
|
{
|
|
g_set_error (error, GIMP_PDB_ERROR, GIMP_PDB_ERROR_INVALID_ARGUMENT,
|
|
_("Failed to create vector layer"));
|
|
|
|
success = FALSE;
|
|
}
|
|
|
|
if (success)
|
|
{
|
|
layer = GIMP_VECTOR_LAYER (gimp_vector_layer_new (image, path, context));
|
|
|
|
if (! layer)
|
|
{
|
|
g_set_error (error, GIMP_PDB_ERROR, GIMP_PDB_ERROR_INVALID_ARGUMENT,
|
|
_("Failed to create vector layer"));
|
|
|
|
success = FALSE;
|
|
}
|
|
}
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_refresh {
|
|
$blurb = 'Rerender the vector layer';
|
|
|
|
$help = <<'HELP';
|
|
This procedure causes the vector layer to refresh itself after changes.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_vector_layer_refresh (layer);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_path {
|
|
$blurb = 'Gets the path from the vector layer if one is associated with it.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the path from the vector layer if one is associated with it.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'path', type => 'path',
|
|
desc => 'The path associated with the vector layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
path = gimp_vector_layer_get_path (layer);
|
|
|
|
if (! path)
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_enable_stroke {
|
|
$blurb = 'Check if stroke is enabled in the vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure checks if stroke is enabled in the specified vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'enable_stroke', type => 'boolean',
|
|
desc => 'If the stroke is enabled on the vector layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_get (options,
|
|
"enable-stroke", &enable_stroke,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_enable_stroke {
|
|
$blurb = 'Set whether the stroke is enabled on the vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke's visibility in the vector layer 'layer'.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' },
|
|
{ name => 'enable_stroke', type => 'boolean',
|
|
desc => 'Whether to enable the stroke on the vector layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
{
|
|
g_object_set (options,
|
|
"enable-stroke", &enable_stroke,
|
|
NULL);
|
|
}
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_color {
|
|
$blurb = 'Get the color of the stroke in a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the color of the stroke in a vector layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'color', type => 'geglcolor',
|
|
desc => 'The color of the stroke.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
color = gegl_color_duplicate (gimp_context_get_foreground (
|
|
GIMP_CONTEXT (options->stroke_options)));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_width {
|
|
$blurb = 'Get the stroke width of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke width in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'width', type => "0 <= double",
|
|
desc => 'The stroke width.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
width = gimp_stroke_options_get_width (options->stroke_options);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_width_unit {
|
|
$blurb = 'Get the stroke width unit of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke width unit in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'unit', type => 'unit',
|
|
desc => 'The stroke width unit.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
unit = gimp_stroke_options_get_unit (options->stroke_options);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_cap_style {
|
|
$blurb = 'Get the stroke cap style of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke cap style in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'cap_style', type => 'enum GimpCapStyle',
|
|
desc => 'The stroke cap style.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
cap_style = gimp_stroke_options_get_cap_style (options->stroke_options);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_join_style {
|
|
$blurb = 'Get the stroke join style of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke join style in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'join_style', type => 'enum GimpJoinStyle',
|
|
desc => 'The stroke join style.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
join_style = gimp_stroke_options_get_join_style (options->stroke_options);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_miter_limit {
|
|
$blurb = 'Get the stroke miter limit of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke miter limit in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'miter', type => "0 <= double",
|
|
desc => 'The stroke miter limit.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
miter = gimp_stroke_options_get_miter_limit (options->stroke_options);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_dash_offset {
|
|
$blurb = 'Get the stroke dash offset of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke dash offset in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'dash_offset', type => "0 <= double",
|
|
desc => 'The stroke dash offset.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
dash_offset = gimp_stroke_options_get_dash_offset (options->stroke_options);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_stroke_dash_pattern {
|
|
$blurb = 'Get the stroke dash pattern of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the stroke dash pattern in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'dashes', type => 'doublearray', void_ret => 1,
|
|
desc => 'The stroke dash pattern array.',
|
|
array => { desc => 'The number of dashes in the dash_pattern array' } }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
{
|
|
GArray *pattern =
|
|
gimp_stroke_options_get_dash_info (options->stroke_options);
|
|
|
|
dashes = gimp_dash_pattern_to_double_array (pattern, &num_dashes);
|
|
}
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_color {
|
|
$blurb = 'Set the color of the stroke in the vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke color in the vector layer 'layer'.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' },
|
|
{ name => 'color', type => 'geglcolor',
|
|
desc => 'The color to use for the stroke' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
gimp_context_set_foreground (GIMP_CONTEXT (options->stroke_options),
|
|
color);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_width {
|
|
$blurb = 'Set the stroke width of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke width in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'width', type => "0 <= double",
|
|
desc => 'The stroke width.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options->stroke_options,
|
|
"width", width,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_width_unit {
|
|
$blurb = 'Set the stroke width unit of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke width unit in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'unit', type => 'unit',
|
|
desc => 'The stroke width unit.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options->stroke_options,
|
|
"unit", unit,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_cap_style {
|
|
$blurb = 'Set the stroke cap style of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke cap style in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'cap_style', type => 'enum GimpCapStyle',
|
|
desc => 'The stroke cap style.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options->stroke_options,
|
|
"cap-style", cap_style,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_join_style {
|
|
$blurb = 'Set the stroke join style of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke join style in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'join_style', type => 'enum GimpJoinStyle',
|
|
desc => 'The stroke join style.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options->stroke_options,
|
|
"join-style", join_style,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_miter_limit {
|
|
$blurb = 'Set the stroke miter limit of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke miter limit in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'miter', type => "0 <= double",
|
|
desc => 'The stroke miter limit.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options->stroke_options,
|
|
"miter-limit", miter,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_dash_offset {
|
|
$blurb = 'Set the stroke dash offset of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke dash offset in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'dash_offset', type => "0 <= double",
|
|
desc => 'The stroke dash offset.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options->stroke_options,
|
|
"dash-offset", dash_offset,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_stroke_dash_pattern {
|
|
$blurb = 'Set the stroke dash pattern of a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the stroke dash pattern in a vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' },
|
|
{ name => 'dashes', type => 'doublearray',
|
|
desc => 'The line dash pattern setting',
|
|
array => { desc => 'The number of dashes in the dash pattern array' } }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
GArray *pattern = NULL;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
{
|
|
if (num_dashes > 0)
|
|
{
|
|
pattern = gimp_dash_pattern_from_double_array (num_dashes, dashes);
|
|
|
|
if (! pattern)
|
|
success = FALSE;
|
|
}
|
|
|
|
if (success)
|
|
gimp_stroke_options_take_dash_pattern (options->stroke_options,
|
|
GIMP_DASH_CUSTOM, pattern);
|
|
}
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_enable_fill {
|
|
$blurb = 'Check if fill is enabled in the vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure checks if fill is enabled in the specified vector layer.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'enable_fill', type => 'boolean',
|
|
desc => 'If the fill is enabled on the vector layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_get (options,
|
|
"enable-fill", &enable_fill,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_enable_fill {
|
|
$blurb = 'Set whether the fill is enabled on the vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the fill's visibility in the vector layer 'layer'.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' },
|
|
{ name => 'enable_fill', type => 'boolean',
|
|
desc => 'Whether to enable the fill on the vector layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
g_object_set (options,
|
|
"enable-fill", enable_fill,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_get_fill_color {
|
|
$blurb = 'Get the color of the fill in a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the color of the fill in a vector layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'color', type => 'geglcolor',
|
|
desc => 'The color of the fill.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
color =
|
|
gegl_color_duplicate (gimp_context_get_foreground (
|
|
GIMP_CONTEXT (options->fill_options)));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub vector_layer_set_fill_color {
|
|
$blurb = 'Set the color of the fill in the vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the fill color in the vector layer 'layer'.
|
|
HELP
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'vector_layer',
|
|
desc => 'The vector layer' },
|
|
{ name => 'color', type => 'geglcolor',
|
|
desc => 'The color to use for the fill' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpVectorLayerOptions *options;
|
|
|
|
options = gimp_vector_layer_get_options (layer);
|
|
if (! options)
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
gimp_context_set_foreground (GIMP_CONTEXT (options->fill_options),
|
|
color);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
@headers = qw("libgimpbase/gimpbase.h"
|
|
"core/gimpcontext.h"
|
|
"core/gimpdashpattern.h"
|
|
"core/gimprasterizable.h"
|
|
"core/gimpstrokeoptions.h"
|
|
"path/gimpvectorlayer.h"
|
|
"path/gimpvectorlayeroptions.h"
|
|
"gimppdb-utils.h"
|
|
"gimppdberror.h"
|
|
"gimp-intl.h");
|
|
|
|
@procs = qw(vector_layer_new
|
|
vector_layer_refresh
|
|
vector_layer_get_enable_fill
|
|
vector_layer_get_enable_stroke
|
|
vector_layer_get_fill_color
|
|
vector_layer_get_path
|
|
vector_layer_get_stroke_cap_style
|
|
vector_layer_get_stroke_color
|
|
vector_layer_get_stroke_dash_offset
|
|
vector_layer_get_stroke_dash_pattern
|
|
vector_layer_get_stroke_join_style
|
|
vector_layer_get_stroke_miter_limit
|
|
vector_layer_get_stroke_width
|
|
vector_layer_get_stroke_width_unit
|
|
vector_layer_set_enable_fill
|
|
vector_layer_set_enable_stroke
|
|
vector_layer_set_fill_color
|
|
vector_layer_set_stroke_cap_style
|
|
vector_layer_set_stroke_color
|
|
vector_layer_set_stroke_dash_offset
|
|
vector_layer_set_stroke_dash_pattern
|
|
vector_layer_set_stroke_join_style
|
|
vector_layer_set_stroke_miter_limit
|
|
vector_layer_set_stroke_width
|
|
vector_layer_set_stroke_width_unit);
|
|
|
|
%exports = (app => [@procs], lib => [@procs]);
|
|
|
|
$desc = 'Vector layer procedures';
|
|
$doc_title = 'gimpvectorlayer';
|
|
$doc_short_desc = 'Functions for querying and manipulating vector layers.';
|
|
$doc_long_desc = 'Functions for querying and manipulating vector layers.';
|
|
|
|
1;
|