The previous PDB generation was losing pre-formatting inside triple-backticked blocks. In particular we were losing indentation (which was already ugly in C, but even syntactically wrong when displaying Python code samples). And it was also making us add double-newlines between every code lines, which was annoying. This updated code now leaves triple-backticked sections as-is. Unfortunately I was completely unable to do this by modifying the existing functions, which were modifying the input arg in-place. So I made them into functions returning the result. But then there is another part of code (niceargs()) where changing array contents doesn't work properly, and worse it seems to corrupt the array somehow (because I have generation breakage in completely-different pieces of the PDB generation code). I believe there is some passing-by reference/value concepts in perl which I don't quite get (they use `&`, `\` and other symbols and even searching for these, I don't quite understand how to use them the right way) but I've spent already too much time on this. So since I've got something working now by having duplicate functions, I'll let someone else from the future, who knows better perl, re-merge these functions if they know how.
1104 lines
23 KiB
Text
1104 lines
23 KiB
Text
# GIMP - The GNU Image Manipulation Program
|
|
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 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/>.
|
|
|
|
# "Perlized" from C source by Manish Singh <yosh@gimp.org>
|
|
|
|
sub item_id_is_valid {
|
|
$blurb = 'Returns %TRUE if the item ID is valid.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure checks if the given item ID is valid and refers to an
|
|
existing item.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. If you got a
|
|
[class@Gimp.Item] from the API, you should trust it is valid. This
|
|
function is mostly for internal usage.
|
|
HELP
|
|
|
|
&neo_pdb_misc('2007', '3.0');
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID to check' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'valid', type => 'boolean',
|
|
desc => 'Whether the item ID is valid' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
valid = (GIMP_IS_ITEM (item) &&
|
|
! gimp_item_is_removed (GIMP_ITEM (item)));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_drawable {
|
|
$blurb = 'Returns whether the item ID is a drawable.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a drawable.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'drawable', type => 'boolean',
|
|
desc => 'TRUE if the item ID is a drawable, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
drawable = (GIMP_IS_DRAWABLE (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_layer {
|
|
$blurb = 'Returns whether the item ID is a layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a layer.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. If the goal
|
|
is to verify the accurate type for a [class@Gimp.Item], you should
|
|
either use [method@Gimp.Item.is_layer] or the specific type-checking
|
|
methods for the used language.
|
|
|
|
|
|
For instance, in C:
|
|
|
|
```C
|
|
if (GIMP_IS_LAYER (item))
|
|
do_something ();
|
|
```
|
|
|
|
Or in the Python binding, you could run:
|
|
|
|
```py3
|
|
if isinstance(item, Gimp.Layer):
|
|
do_something()
|
|
```
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'layer', type => 'boolean',
|
|
desc => 'TRUE if the item is a layer, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
layer = (GIMP_IS_LAYER (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_text_layer {
|
|
$blurb = 'Returns whether the item ID is a text layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a text layer.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&mitch_pdb_misc('2010', '3.0');
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'text_layer', type => 'boolean',
|
|
desc => 'TRUE if the item is a text layer, FALSE otherwise.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
text_layer = (GIMP_IS_LAYER (item) &&
|
|
! gimp_item_is_removed (item) &&
|
|
gimp_item_is_text_layer (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_group_layer {
|
|
$blurb = 'Returns whether the item ID is a group layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a group layer.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&jehan_pdb_misc('2024', '3.0');
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'group_layer', type => 'boolean',
|
|
desc => 'TRUE if the item is a group layer, FALSE otherwise.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
group_layer = (GIMP_IS_GROUP_LAYER (item) && ! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_channel {
|
|
$blurb = 'Returns whether the item ID is a channel.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a channel.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'channel', type => 'boolean',
|
|
desc => 'TRUE if the item ID is a channel, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
channel = (GIMP_IS_CHANNEL (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_layer_mask {
|
|
$blurb = 'Returns whether the item ID is a layer mask.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a layer mask.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'layer_mask', type => 'boolean',
|
|
desc => 'TRUE if the item ID is a layer mask, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
layer_mask = (GIMP_IS_LAYER_MASK (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_selection {
|
|
$blurb = 'Returns whether the item ID is a selection.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a selection.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'selection', type => 'boolean',
|
|
desc => 'TRUE if the item ID is a selection, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
selection = (GIMP_IS_SELECTION (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_path {
|
|
$blurb = 'Returns whether the item ID is a path.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a path.
|
|
|
|
|
|
*Note*: in most use cases, you should not use this function. See
|
|
[func@Gimp.Item.id_is_layer] for a discussion on alternatives.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'path', type => 'boolean',
|
|
desc => 'TRUE if the item ID is a path, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
path = (GIMP_IS_PATH (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_image {
|
|
$blurb = "Returns the item's image.";
|
|
|
|
$help = "This procedure returns the item's image.";
|
|
|
|
&std_pdb_misc;
|
|
$since = '2.8';
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'image', type => 'image',
|
|
desc => "The item's image" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
image = gimp_item_get_image (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_delete {
|
|
$blurb = 'Delete a item.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure deletes the specified item. This must not be done if the
|
|
image containing this item was already deleted or if the item was
|
|
already removed from the image. The only case in which this procedure is
|
|
useful is if you want to get rid of a item which has not yet been
|
|
added to an image.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '2.8';
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item to delete' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (g_object_is_floating (item))
|
|
{
|
|
g_object_ref_sink (item);
|
|
g_object_unref (item);
|
|
}
|
|
else
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_is_group {
|
|
$blurb = 'Returns whether the item is a group item.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item is a group item which
|
|
can have children.
|
|
HELP
|
|
|
|
&mitch_pdb_misc('2010', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'group', type => 'boolean',
|
|
desc => 'TRUE if the item is a group, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
group = (gimp_viewable_get_children (GIMP_VIEWABLE (item)) != NULL);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_parent {
|
|
$blurb = "Returns the item's parent item.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the item's parent item, if any.
|
|
HELP
|
|
|
|
&mitch_pdb_misc('2010', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'parent', type => 'item',
|
|
desc => "The item's parent item" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
parent = gimp_item_get_parent (item);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_children {
|
|
$blurb = "Returns the item's list of children.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the list of items which are children of the specified
|
|
item. The order is topmost to bottommost.
|
|
HELP
|
|
|
|
&mitch_pdb_misc('2010', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'children', type => 'itemarray',
|
|
desc => "The item's list of children",
|
|
array => { name => 'num_children',
|
|
desc => "The item's number of children" } }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpContainer *container = gimp_viewable_get_children (GIMP_VIEWABLE (item));
|
|
|
|
if (container)
|
|
{
|
|
num_children = gimp_container_get_n_children (container);
|
|
|
|
if (num_children)
|
|
{
|
|
GList *list;
|
|
gint i;
|
|
|
|
children = g_new (GimpItem *, num_children);
|
|
|
|
for (list = GIMP_LIST (container)->queue->head, i = 0;
|
|
list;
|
|
list = g_list_next (list), i++)
|
|
{
|
|
children[i] = g_object_ref (list->data);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
success = FALSE;
|
|
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_expanded {
|
|
$blurb = 'Returns whether the item is expanded.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item is expanded.
|
|
HELP
|
|
|
|
&ell_pdb_misc('2017', '2.10');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'expanded', type => 'boolean',
|
|
desc => 'TRUE if the item is expanded, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
expanded = gimp_viewable_get_expanded (GIMP_VIEWABLE (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_expanded {
|
|
$blurb = 'Sets the expanded state of the item.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure expands or collapses the item.
|
|
HELP
|
|
|
|
&ell_pdb_misc('2017', '2.10');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'expanded', type => 'boolean',
|
|
desc => 'TRUE to expand the item, FALSE to collapse the item' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_viewable_set_expanded (GIMP_VIEWABLE (item), expanded);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_name {
|
|
$blurb = "Get the name of the specified item.";
|
|
|
|
$help = "This procedure returns the specified item's name.";
|
|
|
|
&std_pdb_misc;
|
|
$since = '2.8';
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'name', type => 'string',
|
|
desc => "The item name" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
name = g_strdup (gimp_object_get_name (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_name {
|
|
$blurb = "Set the name of the specified item.";
|
|
|
|
$help = "This procedure sets the specified item's name.";
|
|
|
|
&std_pdb_misc;
|
|
$since = '2.8';
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'name', type => 'string',
|
|
desc => "The new item name" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
success = gimp_item_rename (GIMP_ITEM (item), name, error);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_visible {
|
|
$blurb = "Get the visibility of the specified item.";
|
|
|
|
$help = "This procedure returns the specified item's visibility.";
|
|
|
|
&std_pdb_misc;
|
|
$since = '2.8';
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'visible', type => 'boolean',
|
|
desc => "The item visibility" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
visible = gimp_item_get_visible (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_visible {
|
|
$blurb = "Set the visibility of the specified item.";
|
|
|
|
$help = "This procedure sets the specified item's visibility.";
|
|
|
|
&std_pdb_misc;
|
|
$since = '2.8';
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'visible', type => 'boolean',
|
|
desc => "The new item visibility" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_item_set_visible (GIMP_ITEM (item), visible, TRUE);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_lock_content {
|
|
$blurb = "Get the 'lock content' state of the specified item.";
|
|
|
|
$help = "This procedure returns the specified item's lock content state.";
|
|
|
|
&mitch_pdb_misc('2009', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'lock_content', type => 'boolean',
|
|
desc => "Whether the item's contents are locked" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
lock_content = gimp_item_get_lock_content (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_lock_content {
|
|
$blurb = "Set the 'lock content' state of the specified item.";
|
|
|
|
$help = "This procedure sets the specified item's lock content state.";
|
|
|
|
&mitch_pdb_misc('2009', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'lock_content', type => 'boolean',
|
|
desc => "The new item 'lock content' state" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp_item_can_lock_content (GIMP_ITEM (item)))
|
|
gimp_item_set_lock_content (GIMP_ITEM (item), lock_content, TRUE);
|
|
else
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_lock_position {
|
|
$blurb = "Get the 'lock position' state of the specified item.";
|
|
|
|
$help = "This procedure returns the specified item's lock position state.";
|
|
|
|
&mitch_pdb_misc('2012', '2.10');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'lock_position', type => 'boolean',
|
|
desc => "Whether the item's position is locked" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
lock_position = gimp_item_get_lock_position (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_lock_position {
|
|
$blurb = "Set the 'lock position' state of the specified item.";
|
|
|
|
$help = "This procedure sets the specified item's lock position state.";
|
|
|
|
&mitch_pdb_misc('2009', '2.10');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'lock_position', type => 'boolean',
|
|
desc => "The new item 'lock position' state" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp_item_can_lock_position (GIMP_ITEM (item)))
|
|
gimp_item_set_lock_position (GIMP_ITEM (item), lock_position, TRUE);
|
|
else
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_lock_visibility {
|
|
$blurb = "Get the 'lock visibility' state of the specified item.";
|
|
|
|
$help = "This procedure returns the specified item's lock visibility state.";
|
|
|
|
&jehan_pdb_misc('2021', '3.0');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'lock_visibility', type => 'boolean',
|
|
desc => "Whether the item's visibility is locked" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
lock_visibility = gimp_item_get_lock_visibility (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_lock_visibility {
|
|
$blurb = "Set the 'lock visibility' state of the specified item.";
|
|
|
|
$help = "This procedure sets the specified item's lock visibility state.";
|
|
|
|
&jehan_pdb_misc('2021', '3.0');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'lock_visibility', type => 'boolean',
|
|
desc => "The new item 'lock visibility' state" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp_item_can_lock_visibility (GIMP_ITEM (item)))
|
|
gimp_item_set_lock_visibility (GIMP_ITEM (item), lock_visibility, TRUE);
|
|
else
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_color_tag {
|
|
$blurb = "Get the color tag of the specified item.";
|
|
|
|
$help = "This procedure returns the specified item's color tag.";
|
|
|
|
&mitch_pdb_misc('2016', '2.10');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'color_tag', type => 'enum GimpColorTag',
|
|
desc => "The item's color tag" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
color_tag = gimp_item_get_color_tag (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_color_tag {
|
|
$blurb = "Set the color tag of the specified item.";
|
|
|
|
$help = "This procedure sets the specified item's color tag.";
|
|
|
|
&mitch_pdb_misc('2016', '2.10');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'color_tag', type => 'enum GimpColorTag',
|
|
desc => "The new item color tag" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_item_set_color_tag (GIMP_ITEM (item), color_tag, TRUE);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_tattoo {
|
|
$blurb = "Get the tattoo of the specified item.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns the specified item's tattoo. A tattoo is a
|
|
unique and permanent identifier attached to a item that can be
|
|
used to uniquely identify a item within an image even between
|
|
sessions.
|
|
HELP
|
|
|
|
&jay_pdb_misc('1998', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'tattoo', type => 'tattoo',
|
|
desc => "The item tattoo" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
tattoo = gimp_item_get_tattoo (GIMP_ITEM (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_set_tattoo {
|
|
$blurb = "Set the tattoo of the specified item.";
|
|
|
|
$help = <<'HELP';
|
|
This procedure sets the specified item's tattoo. A tattoo is a
|
|
unique and permanent identifier attached to a item that can be
|
|
used to uniquely identify a item within an image even between
|
|
sessions.
|
|
HELP
|
|
|
|
&jay_pdb_misc('1998', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'tattoo', type => 'tattoo',
|
|
desc => "The new item tattoo" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_item_set_tattoo (GIMP_ITEM (item), tattoo);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_attach_parasite {
|
|
$blurb = 'Add a parasite to an item.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure attaches a parasite to an item. It has no return values.
|
|
HELP
|
|
|
|
&jay_pdb_misc('1998', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'parasite', type => 'parasite',
|
|
desc => 'The parasite to attach to the item' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp_item_parasite_validate (item, parasite, error))
|
|
gimp_item_parasite_attach (item, parasite, TRUE);
|
|
else
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_detach_parasite {
|
|
$blurb = 'Removes a parasite from an item.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure detaches a parasite from an item. It has no return values.
|
|
HELP
|
|
|
|
&jay_pdb_misc('1998', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'name', type => 'string',
|
|
desc => 'The name of the parasite to detach from the item.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
gimp_item_parasite_detach (item, name, TRUE);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_parasite {
|
|
$blurb = 'Look up a parasite in an item';
|
|
|
|
$help = <<'HELP';
|
|
Finds and returns the parasite that is attached to an item.
|
|
HELP
|
|
|
|
&jay_pdb_misc('1998', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' },
|
|
{ name => 'name', type => 'string',
|
|
desc => 'The name of the parasite to find' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'parasite', type => 'parasite',
|
|
desc => 'The found parasite' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
parasite = gimp_parasite_copy (gimp_item_parasite_find (item, name));
|
|
|
|
if (! parasite)
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_get_parasite_list {
|
|
$blurb = 'List all parasites.';
|
|
$help = 'Returns a list of all parasites currently attached the an item.';
|
|
|
|
&marc_pdb_misc('1999', '2.8');
|
|
|
|
@inargs = (
|
|
{ name => 'item', type => 'item',
|
|
desc => 'The item' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'parasites', type => 'strv',
|
|
desc => 'The names of currently attached parasites' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
parasites = gimp_item_parasite_list (item);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
@headers = qw("core/gimpgrouplayer.h"
|
|
"core/gimplayermask.h"
|
|
"core/gimplist.h"
|
|
"core/gimpselection.h"
|
|
"text/gimptextlayer.h"
|
|
"vectors/gimppath.h"
|
|
"gimppdb-utils.h"
|
|
"gimppdbcontext.h"
|
|
"gimp-intl.h");
|
|
|
|
@procs = qw(item_id_is_valid
|
|
item_id_is_drawable
|
|
item_id_is_layer
|
|
item_id_is_text_layer
|
|
item_id_is_group_layer
|
|
item_id_is_channel
|
|
item_id_is_layer_mask
|
|
item_id_is_path
|
|
item_id_is_selection
|
|
item_get_image
|
|
item_delete
|
|
item_is_group
|
|
item_get_parent
|
|
item_get_children
|
|
item_get_expanded item_set_expanded
|
|
item_get_name item_set_name
|
|
item_get_visible item_set_visible
|
|
item_get_lock_content item_set_lock_content
|
|
item_get_lock_position item_set_lock_position
|
|
item_get_lock_visibility item_set_lock_visibility
|
|
item_get_color_tag item_set_color_tag
|
|
item_get_tattoo item_set_tattoo
|
|
item_attach_parasite item_detach_parasite
|
|
item_get_parasite
|
|
item_get_parasite_list);
|
|
|
|
%exports = (app => [@procs], lib => [@procs]);
|
|
|
|
$desc = 'Item procedures';
|
|
$doc_title = 'gimpitem';
|
|
$doc_short_desc = 'Functions to manipulate items.';
|
|
$doc_long_desc = 'Functions to manipulate items.';
|
|
|
|
1;
|