1021 lines
21 KiB
Plaintext
1021 lines
21 KiB
Plaintext
# PIKA - Photo and Image Kooker Application
|
|
# 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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
valid = (PIKA_IS_ITEM (item) &&
|
|
! pika_item_is_removed (PIKA_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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
drawable = (PIKA_IS_DRAWABLE (item) &&
|
|
! pika_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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
layer = (PIKA_IS_LAYER (item) &&
|
|
! pika_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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
text_layer = (PIKA_IS_LAYER (item) &&
|
|
! pika_item_is_removed (item) &&
|
|
pika_item_is_text_layer (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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
channel = (PIKA_IS_CHANNEL (item) &&
|
|
! pika_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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
layer_mask = (PIKA_IS_LAYER_MASK (item) &&
|
|
! pika_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.
|
|
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'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
selection = (PIKA_IS_SELECTION (item) &&
|
|
! pika_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_vectors {
|
|
$blurb = 'Returns whether the item ID is a vectors.';
|
|
|
|
$help = <<HELP;
|
|
This procedure returns TRUE if the specified item ID is a vectors.
|
|
HELP
|
|
|
|
&std_pdb_misc;
|
|
$since = '3.0';
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'vectors', type => 'boolean',
|
|
desc => 'TRUE if the item ID is a vectors, FALSE otherwise' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (pika, item_id);
|
|
|
|
vectors = (PIKA_IS_VECTORS (item) &&
|
|
! pika_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 = pika_item_get_image (PIKA_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 = (pika_viewable_get_children (PIKA_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 = pika_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');
|
|
|
|
$skip_gi = 1;
|
|
|
|
@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'
|
|
{
|
|
PikaContainer *container = pika_viewable_get_children (PIKA_VIEWABLE (item));
|
|
|
|
if (container)
|
|
{
|
|
num_children = pika_container_get_n_children (container);
|
|
|
|
if (num_children)
|
|
{
|
|
GList *list;
|
|
gint i;
|
|
|
|
children = g_new (PikaItem *, num_children);
|
|
|
|
for (list = PIKA_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 = pika_viewable_get_expanded (PIKA_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'
|
|
{
|
|
pika_viewable_set_expanded (PIKA_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 (pika_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 = pika_item_rename (PIKA_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 = pika_item_get_visible (PIKA_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'
|
|
{
|
|
pika_item_set_visible (PIKA_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 = pika_item_get_lock_content (PIKA_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 (pika_item_can_lock_content (PIKA_ITEM (item)))
|
|
pika_item_set_lock_content (PIKA_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 = pika_item_get_lock_position (PIKA_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 (pika_item_can_lock_position (PIKA_ITEM (item)))
|
|
pika_item_set_lock_position (PIKA_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 = pika_item_get_lock_visibility (PIKA_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 (pika_item_can_lock_visibility (PIKA_ITEM (item)))
|
|
pika_item_set_lock_visibility (PIKA_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 PikaColorTag',
|
|
desc => "The item's color tag" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
color_tag = pika_item_get_color_tag (PIKA_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 PikaColorTag',
|
|
desc => "The new item color tag" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
pika_item_set_color_tag (PIKA_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 = pika_item_get_tattoo (PIKA_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'
|
|
{
|
|
pika_item_set_tattoo (PIKA_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 (pika_item_parasite_validate (item, parasite, error))
|
|
pika_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'
|
|
{
|
|
pika_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 = pika_parasite_copy (pika_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 = pika_item_parasite_list (item);
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
@headers = qw("core/pikalayermask.h"
|
|
"core/pikalist.h"
|
|
"core/pikaselection.h"
|
|
"text/pikatextlayer.h"
|
|
"vectors/pikavectors.h"
|
|
"pikapdb-utils.h"
|
|
"pikapdbcontext.h"
|
|
"pika-intl.h");
|
|
|
|
@procs = qw(item_id_is_valid
|
|
item_id_is_drawable
|
|
item_id_is_layer
|
|
item_id_is_text_layer
|
|
item_id_is_channel
|
|
item_id_is_layer_mask
|
|
item_id_is_selection
|
|
item_id_is_vectors
|
|
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 = 'pikaitem';
|
|
$doc_short_desc = 'Functions to manipulate items.';
|
|
$doc_long_desc = 'Functions to manipulate items.';
|
|
|
|
1;
|