This patch adds a GimpItemChooser widget for use in GimpProcedureDialog Item parameter GUI creation. This will deprecate the existing GimpDrawableChooser, as it covers all the same cases plus others such as GimpPath.
1259 lines
27 KiB
Text
1259 lines
27 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_TEXT_LAYER (item) &&
|
|
! gimp_item_is_removed (item));
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub item_id_is_vector_layer {
|
|
$blurb = 'Returns whether the item ID is a vector layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a vector 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
|
|
|
|
&alxsa_pdb_misc('2025', '3.2');
|
|
|
|
@inargs = (
|
|
{ name => 'item_id', type => 'int32',
|
|
desc => 'The item ID' }
|
|
);
|
|
|
|
@outargs = (
|
|
{ name => 'vector_layer', type => 'boolean',
|
|
desc => 'TRUE if the item is a vector layer, FALSE otherwise.' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpItem *item = gimp_item_get_by_id (gimp, item_id);
|
|
|
|
vector_layer = (GIMP_IS_VECTOR_LAYER (item) &&
|
|
! gimp_item_is_removed (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_link_layer {
|
|
$blurb = 'Returns whether the item ID is a link layer.';
|
|
|
|
$help = <<'HELP';
|
|
This procedure returns %TRUE if the specified item ID is a link 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('2025', '3.2');
|
|
|
|
@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_LINK_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" }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
GimpContainer *container = gimp_viewable_get_children (GIMP_VIEWABLE (item));
|
|
|
|
if (container)
|
|
{
|
|
gsize num_children = gimp_container_get_n_children (container);
|
|
GList *list;
|
|
gint i;
|
|
|
|
children = g_new0 (GimpItem *, num_children + 1);
|
|
|
|
for (list = GIMP_LIST (container)->queue->head, i = 0;
|
|
list; list = g_list_next (list), i++)
|
|
{
|
|
children[i] = 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
|
|
);
|
|
}
|
|
|
|
sub items_popup {
|
|
$blurb = 'Invokes the item selection dialog.';
|
|
$help = 'Opens a dialog letting a user choose an item .';
|
|
|
|
&alxsa_pdb_misc('2025');
|
|
|
|
@inargs = (
|
|
{ name => 'callback', type => 'string', non_empty => 1,
|
|
desc => 'The callback PDB proc to call when user chooses an item ' },
|
|
{ name => 'popup_title', type => 'string',
|
|
desc => 'Title of the item selection dialog' },
|
|
{ name => 'item_type', type => 'string', non_empty => 1,
|
|
desc => 'The name of the GIMP_TYPE_ITEM subtype' },
|
|
{ name => 'initial_item', type => 'item ', none_ok => 1, no_validate => 1,
|
|
desc => 'The item to set as the initial choice' },
|
|
{ name => 'parent_window', type => 'bytes', none_ok => 1,
|
|
desc => 'An optional parent window handle for the popup to be set transient to' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp->no_interface ||
|
|
! gimp_pdb_lookup_procedure (gimp->pdb, callback) ||
|
|
! gimp_pdb_dialog_new (gimp, context, progress,
|
|
g_type_from_name (item_type),
|
|
parent_window, popup_title, callback,
|
|
GIMP_OBJECT (initial_item),
|
|
NULL))
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub items_close_popup {
|
|
$blurb = 'Close the item selection dialog.';
|
|
$help = 'Closes an open item selection dialog.';
|
|
|
|
&alxsa_pdb_misc('2025');
|
|
|
|
@inargs = (
|
|
{ name => 'callback', type => 'string', non_empty => 1,
|
|
desc => 'The name of the callback registered for this pop-up' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp->no_interface ||
|
|
! gimp_pdb_lookup_procedure (gimp->pdb, callback) ||
|
|
! gimp_pdb_dialog_close (gimp, GIMP_TYPE_ITEM, callback))
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
sub items_set_popup {
|
|
$blurb = 'Sets the selected item in a item selection dialog.';
|
|
$help = $blurb;
|
|
|
|
&alxsa_pdb_misc('2025');
|
|
|
|
@inargs = (
|
|
{ name => 'callback', type => 'string', non_empty => 1,
|
|
desc => 'The name of the callback registered for this pop-up' },
|
|
{ name => 'item', type => 'item', no_validate => 1,
|
|
desc => 'The item to set as selected' }
|
|
);
|
|
|
|
%invoke = (
|
|
code => <<'CODE'
|
|
{
|
|
if (gimp->no_interface ||
|
|
! gimp_pdb_lookup_procedure (gimp->pdb, callback) ||
|
|
! gimp_pdb_dialog_set (gimp, GIMP_TYPE_ITEM, callback, GIMP_OBJECT (item), NULL))
|
|
success = FALSE;
|
|
}
|
|
CODE
|
|
);
|
|
}
|
|
|
|
@headers = qw("core/gimp.h"
|
|
"core/gimpdatafactory.h"
|
|
"core/gimpgrouplayer.h"
|
|
"core/gimplayermask.h"
|
|
"core/gimplinklayer.h"
|
|
"core/gimplist.h"
|
|
"core/gimpselection.h"
|
|
"path/gimppath.h"
|
|
"path/gimpvectorlayer.h"
|
|
"text/gimptextlayer.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_vector_layer
|
|
item_id_is_group_layer
|
|
item_id_is_link_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
|
|
items_popup
|
|
items_close_popup
|
|
items_set_popup);
|
|
|
|
%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;
|