mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-10-06 01:12:40 +02:00
Several types functions were using the wording "float" historically to mean double-precision, e.g. the float array type (which was in fact a double array). Or the scanner function gimp_scanner_parse_float() was in fact returning a double value. What if we wanted someday to actually add float (usually this naming means in C the single-precision IEEE 754 floating point representation) support? How would we name this? Now technically it's not entirely wrong (a double is still a floating point). So I've been wondering if that is because maybe we never planned to have float and double precision may be good enough for all usage in a plug-in API (which doesn't have to be as generic so the higher precision is enough)? But how can we be sure? Also we already had some functions using the wording double (e.g. gimp_procedure_add_double_argument()), so let's just go the safe route and use the accurate wording. The additional change in PDB is internal, but there too, I was also finding very confusing that we were naming double-precision float as 'float' type. So I took the opportunity to update this. It doesn't change any signature. In fact the whole commit doesn't change any type or code logic, only naming, except for one bug fix in the middle which I encountered while renaming: in gimp_scanner_parse_deprecated_color(), I discovered a hidden bug in scanning (color-hsv*) values, which was mistakenly using a double type for an array of float.
1043 lines
26 KiB
Plaintext
1043 lines
26 KiB
Plaintext
# GIMP - The GNU Image Manipulation Program
|
|
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
# New Text PDB API
|
|
# Copyright (C) 2008 Marcus Heese <heese@cip.ifi.lmu.de>
|
|
|
|
# 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 text_layer_new {
|
|
$blurb = 'Creates a new text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure creates a new text layer. The arguments are kept as
|
|
simple as necessary for the normal case. All text attributes, however,
|
|
can be modified with the appropriate gimp_text_layer_set_*()
|
|
procedures. The new layer still needs to be added to the image, as
|
|
this is not automatic. Add the new layer using gimp_image_insert_layer().
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
$lib_private = 1;
|
|
|
|
@inargs = (
|
|
{ name => 'image', type => 'image',
|
|
desc => 'The image' },
|
|
{ name => 'text', type => 'string',
|
|
desc => 'The text to generate (in UTF-8 encoding)' },
|
|
{ name => 'font', type => 'font',
|
|
desc => 'The font to write the text with' },
|
|
{ name => 'size', type => '0.0 <= double <= 8192.0',
|
|
desc => 'The size of text in either pixels or points' },
|
|
{ name => 'unit', type => 'unit', allow_pixel => 1,
|
|
desc => 'The units of specified size' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The new text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpText *gimp_text;
|
|
GeglColor *color;
|
|
|
|
color = gimp_context_get_foreground (context);
|
|
|
|
gimp_text = g_object_new (GIMP_TYPE_TEXT,
|
|
"text", text,
|
|
"font", font,
|
|
"font-size", size,
|
|
"font-size-unit", unit,
|
|
"color", color,
|
|
NULL);
|
|
|
|
layer = GIMP_TEXT_LAYER (gimp_text_layer_new (image, gimp_text));
|
|
g_object_unref (gimp_text);
|
|
|
|
if (! layer)
|
|
{
|
|
g_set_error (error, GIMP_PDB_ERROR, GIMP_PDB_ERROR_INVALID_ARGUMENT,
|
|
_("Failed to create text layer"));
|
|
|
|
success = FALSE;
|
|
}
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_text {
|
|
$blurb = 'Get the text from a text layer as string.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the text from a text layer as a string.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'text', type => 'string',
|
|
desc => 'The text from the specified text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"text", &text,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_text {
|
|
$blurb = 'Set the text of a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure changes the text of a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'text', type => 'string',
|
|
desc => 'The new text to set' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"text", text,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_markup {
|
|
$blurb = 'Get the markup from a text layer as string.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the markup of the styles from a text layer.
|
|
The markup will be in the form of Pango's markup - See
|
|
https://www.pango.org/ for more information about Pango and its markup.
|
|
HELP
|
|
|
|
barak_pdb_misc('2010', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'markup', type => 'string',
|
|
desc => 'The markup which represents the style of the specified text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"markup", &markup,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_markup {
|
|
$blurb = 'Set the markup for a text layer from a string.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the markup of the styles for a text layer.
|
|
The markup should be in the form of Pango's markup - See
|
|
https://docs.gtk.org/Pango/pango_markup.html for a reference.
|
|
|
|
Note that GIMP's text tool does not support all of Pango markup. Any unsupported
|
|
markup will still be applied to your text layer, yet would be dropped as soon as
|
|
you edit text with the tool.
|
|
HELP
|
|
|
|
$author = 'Ian Munsie <darkstarsword@gmail.com>';
|
|
$copyright = 'Ian Munsie';
|
|
$date = '2014';
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'markup', type => 'string',
|
|
desc => 'The new markup to set' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gchar *markup_cat = NULL;
|
|
const gchar *markup_ptr = markup;
|
|
|
|
if (strstr(markup, "<markup>") == NULL || strstr(markup, "</markup>") == NULL)
|
|
{
|
|
markup_cat = g_strconcat("<markup>", markup, "</markup>", NULL);
|
|
markup_ptr = markup_cat;
|
|
}
|
|
|
|
if (pango_parse_markup (markup_ptr, -1, 0, NULL, NULL, NULL, error))
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer markup"),
|
|
"markup", markup_ptr,
|
|
NULL);
|
|
}
|
|
else
|
|
{
|
|
success = FALSE;
|
|
}
|
|
|
|
g_free(markup_cat);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_font {
|
|
$blurb = 'Get the font from a text layer as string.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the font from a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'font', type => 'font',
|
|
desc => 'The font which is used in the specified text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"font", &font,
|
|
NULL);
|
|
/* The GimpText keeps a reference. Therefore unref before returning the
|
|
* pointer so that we don't leak a reference.
|
|
*/
|
|
g_object_unref (font);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_font {
|
|
$blurb = 'Set the font of a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure modifies the font used in the specified text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'font', type => 'font',
|
|
desc => 'The new font to use' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"font", font,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_font_size {
|
|
$blurb = 'Get the font size from a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the size of the font which is used in a text
|
|
layer. You will receive the size as a double 'font-size' in 'unit'
|
|
units.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'font_size', type => 'double',
|
|
desc => 'The font size' },
|
|
{ name => 'unit', type => 'unit',
|
|
desc => 'The unit used for the font size' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"font-size", &font_size,
|
|
"font-size-unit", &unit,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_font_size {
|
|
$blurb = 'Set the font size.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure changes the font size of a text layer. The size of your
|
|
font will be a double 'font-size' of 'unit' units.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'font_size', type => '0.0 <= double <= 8192.0',
|
|
desc => 'The font size' },
|
|
{ name => 'unit', type => 'unit',
|
|
desc => 'The unit to use for the font size' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"font-size-unit", unit,
|
|
"font-size", font_size,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_antialias {
|
|
$blurb = 'Check if antialiasing is used in the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure checks if antialiasing is enabled in the specified text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'antialias', type => 'boolean',
|
|
desc => 'A flag which is true if antialiasing is used for rendering the font in the text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"antialias", &antialias,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_antialias {
|
|
$blurb = 'Enable/disable anti-aliasing in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure enables or disables anti-aliasing of the text in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'antialias', type => 'boolean',
|
|
desc => 'Enable/disable antialiasing of the text' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"antialias", antialias,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_hint_style {
|
|
$blurb = 'Get information about hinting in the specified text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure provides information about the hinting that is being
|
|
used in a text layer. Hinting can be optimized for fidelity or contrast
|
|
or it can be turned entirely off.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'style', type => 'enum GimpTextHintStyle',
|
|
desc => 'The hint style used for font outlines' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"hint-style", &style,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_hint_style {
|
|
$blurb = 'Control how font outlines are hinted in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the hint style for font outlines in a text
|
|
layer. This controls whether to fit font outlines to the pixel grid,
|
|
and if so, whether to optimize for fidelity or contrast.
|
|
HELP
|
|
|
|
&neo_pdb_misc('2008', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'style', type => 'enum GimpTextHintStyle',
|
|
desc => 'The new hint style' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"hint-style", style,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_kerning {
|
|
$blurb = 'Check if kerning is used in the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure checks if kerning is enabled in the specified text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'kerning', type => 'boolean',
|
|
desc => 'A flag which is true if kerning is used in the text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"kerning", &kerning,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_kerning {
|
|
$blurb = 'Enable/disable kerning in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure enables or disables kerning in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'kerning', type => 'boolean',
|
|
desc => 'Enable/disable kerning in the text' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"kerning", kerning,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_language {
|
|
$blurb = 'Get the language used in the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the language string which is set for the text
|
|
in the text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'language', type => 'string',
|
|
desc => 'The language used in the text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"language", &language,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_language {
|
|
$blurb = 'Set the language of the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the language of the text in text layer. For some
|
|
scripts the language has an influence of how the text is rendered.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'language', type => 'string',
|
|
desc => 'The new language to use for the text layer' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"language", language,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_base_direction {
|
|
$blurb = 'Get the base direction used for rendering the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the base direction used for rendering the text
|
|
in the text layer
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'direction', type => 'enum GimpTextDirection',
|
|
desc => 'The based direction used for the text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"base-direction", &direction,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_base_direction {
|
|
$blurb = 'Set the base direction in the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the base direction used in applying the Unicode
|
|
bidirectional algorithm when rendering the text.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'direction', type => 'enum GimpTextDirection',
|
|
desc => 'The base direction of the text.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"base-direction", direction,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_justification {
|
|
$blurb = 'Get the text justification information of the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the alignment of the lines in the text layer
|
|
relative to each other.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'justify', type => 'enum GimpTextJustification',
|
|
desc => 'The justification used in the text layer.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"justify", &justify,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_justification {
|
|
$blurb = 'Set the justification of the text in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the alignment of the lines in the text layer
|
|
relative to each other.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'justify', type => 'enum GimpTextJustification',
|
|
desc => 'The justification for your text.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"justify", justify,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_color {
|
|
$blurb = 'Get the color of the text in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the color of the text in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'color', type => 'geglcolor',
|
|
desc => 'The color of the text.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
color = gegl_color_duplicate (gimp_text_layer_get_text (layer)->color);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_color {
|
|
$blurb = 'Set the color of the text in the text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the text color in the text layer 'layer'.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'color', type => 'geglcolor',
|
|
desc => 'The color to use for the text' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"color", color,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_indent {
|
|
$blurb = 'Get the line indentation of text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the indentation of the first line in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'indent', type => 'double',
|
|
desc => 'The indentation value of the first line.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"indent", &indent,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_indent {
|
|
$blurb = 'Set the indentation of the first line in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the indentation of the first line in the text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'indent', type => '-8192.0 <= double <= 8192.0',
|
|
desc => 'The indentation for the first line.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"indent", indent,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_line_spacing {
|
|
$blurb = 'Get the spacing between lines of text.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the line-spacing between lines of text in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'line_spacing', type => 'double',
|
|
desc => 'The line-spacing value.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"line-spacing", &line_spacing,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_line_spacing {
|
|
$blurb = 'Adjust the line spacing in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the additional spacing used between lines a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'line_spacing', type => '-8192.0 <= double <= 8192.0',
|
|
desc => 'The additional line spacing to use.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"line-spacing", line_spacing,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_get_letter_spacing {
|
|
$blurb = 'Get the letter spacing used in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the additional spacing between the single glyphs
|
|
in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer.' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'letter_spacing', type => 'double',
|
|
desc => 'The letter-spacing value.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
g_object_get (gimp_text_layer_get_text (layer),
|
|
"letter-spacing", &letter_spacing,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_set_letter_spacing {
|
|
$blurb = 'Adjust the letter spacing in a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the additional spacing between the single glyphs
|
|
in a text layer.
|
|
HELP
|
|
|
|
&marcus_pdb_misc('2008', '2.6');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'letter_spacing', type => '-8192.0 <= double <= 8192.0',
|
|
desc => 'The additional letter spacing to use.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"letter-spacing", letter_spacing,
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub text_layer_resize {
|
|
$blurb = 'Resize the box of a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure changes the width and height of a text layer while
|
|
keeping it as a text layer and not converting it to a bitmap like
|
|
gimp_layer_resize() would do.
|
|
HELP
|
|
|
|
barak_pdb_misc('2009', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'layer', type => 'text_layer',
|
|
desc => 'The text layer' },
|
|
{ name => 'width', type => '0.0 <= double <= GIMP_MAX_IMAGE_SIZE',
|
|
desc => 'The new box width in pixels' },
|
|
{ name => 'height', type => '0.0 <= double <= GIMP_MAX_IMAGE_SIZE',
|
|
desc => 'The new box height in pixels' },
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpText *text = gimp_text_layer_get_text (layer);
|
|
gdouble xres, yres;
|
|
|
|
gimp_image_get_resolution (gimp_item_get_image (GIMP_ITEM (layer)),
|
|
&xres, &yres);
|
|
|
|
gimp_text_layer_set (layer,
|
|
_("Set text layer attribute"),
|
|
"box-mode", GIMP_TEXT_BOX_FIXED,
|
|
"box-width", gimp_pixels_to_units (width,
|
|
text->box_unit,
|
|
xres),
|
|
"box-height", gimp_pixels_to_units (height,
|
|
text->box_unit,
|
|
yres),
|
|
NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
|
|
@headers = qw(<pango/pango.h>
|
|
"libgimpbase/gimpbase.h"
|
|
"core/gimpcontext.h"
|
|
"text/gimpfont.h"
|
|
"text/gimptext.h"
|
|
"text/gimptextlayer.h"
|
|
"gimppdb-utils.h"
|
|
"gimppdberror.h"
|
|
"gimp-intl.h");
|
|
|
|
@procs = qw(text_layer_new
|
|
text_layer_get_text
|
|
text_layer_set_text
|
|
text_layer_get_markup
|
|
text_layer_set_markup
|
|
text_layer_get_font
|
|
text_layer_set_font
|
|
text_layer_get_font_size
|
|
text_layer_set_font_size
|
|
text_layer_get_antialias
|
|
text_layer_set_antialias
|
|
text_layer_get_hint_style
|
|
text_layer_set_hint_style
|
|
text_layer_get_kerning
|
|
text_layer_set_kerning
|
|
text_layer_get_language
|
|
text_layer_set_language
|
|
text_layer_get_base_direction
|
|
text_layer_set_base_direction
|
|
text_layer_get_justification
|
|
text_layer_set_justification
|
|
text_layer_get_color
|
|
text_layer_set_color
|
|
text_layer_get_indent
|
|
text_layer_set_indent
|
|
text_layer_get_line_spacing
|
|
text_layer_set_line_spacing
|
|
text_layer_get_letter_spacing
|
|
text_layer_set_letter_spacing
|
|
text_layer_resize);
|
|
|
|
%exports = (app => [@procs], lib => [@procs]);
|
|
|
|
$desc = 'Text layer procedures';
|
|
$doc_title = 'gimptextlayer';
|
|
$doc_short_desc = 'Functions for querying and manipulating text layers.';
|
|
$doc_long_desc = 'Functions for querying and manipulating text layers.';
|
|
|
|
1;
|