mirror of https://github.com/GNOME/gimp.git
app, libgimp, pdb: add visibility lock API.
This commit is contained in:
parent
de6a57d5c2
commit
47e0e6f519
|
@ -799,6 +799,62 @@ item_set_lock_position_invoker (GimpProcedure *procedure,
|
|||
error ? *error : NULL);
|
||||
}
|
||||
|
||||
static GimpValueArray *
|
||||
item_get_lock_visibility_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
GimpContext *context,
|
||||
GimpProgress *progress,
|
||||
const GimpValueArray *args,
|
||||
GError **error)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
GimpValueArray *return_vals;
|
||||
GimpItem *item;
|
||||
gboolean lock_visibility = FALSE;
|
||||
|
||||
item = g_value_get_object (gimp_value_array_index (args, 0));
|
||||
|
||||
if (success)
|
||||
{
|
||||
lock_visibility = gimp_item_get_lock_visibility (GIMP_ITEM (item));
|
||||
}
|
||||
|
||||
return_vals = gimp_procedure_get_return_values (procedure, success,
|
||||
error ? *error : NULL);
|
||||
|
||||
if (success)
|
||||
g_value_set_boolean (gimp_value_array_index (return_vals, 1), lock_visibility);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
||||
static GimpValueArray *
|
||||
item_set_lock_visibility_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
GimpContext *context,
|
||||
GimpProgress *progress,
|
||||
const GimpValueArray *args,
|
||||
GError **error)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
GimpItem *item;
|
||||
gboolean lock_visibility;
|
||||
|
||||
item = g_value_get_object (gimp_value_array_index (args, 0));
|
||||
lock_visibility = g_value_get_boolean (gimp_value_array_index (args, 1));
|
||||
|
||||
if (success)
|
||||
{
|
||||
if (gimp_item_can_lock_visibility (GIMP_ITEM (item)))
|
||||
gimp_item_set_lock_visibility (GIMP_ITEM (item), lock_visibility, TRUE);
|
||||
else
|
||||
success = FALSE;
|
||||
}
|
||||
|
||||
return gimp_procedure_get_return_values (procedure, success,
|
||||
error ? *error : NULL);
|
||||
}
|
||||
|
||||
static GimpValueArray *
|
||||
item_get_color_tag_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
|
@ -1755,6 +1811,64 @@ register_item_procs (GimpPDB *pdb)
|
|||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-item-get-lock-visibility
|
||||
*/
|
||||
procedure = gimp_procedure_new (item_get_lock_visibility_invoker);
|
||||
gimp_object_set_static_name (GIMP_OBJECT (procedure),
|
||||
"gimp-item-get-lock-visibility");
|
||||
gimp_procedure_set_static_help (procedure,
|
||||
"Get the 'lock visibility' state of the specified item.",
|
||||
"This procedure returns the specified item's lock visibility state.",
|
||||
NULL);
|
||||
gimp_procedure_set_static_attribution (procedure,
|
||||
"Jehan",
|
||||
"Jehan",
|
||||
"2021");
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_item ("item",
|
||||
"item",
|
||||
"The item",
|
||||
FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_procedure_add_return_value (procedure,
|
||||
g_param_spec_boolean ("lock-visibility",
|
||||
"lock visibility",
|
||||
"Whether the item's visibility is locked",
|
||||
FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-item-set-lock-visibility
|
||||
*/
|
||||
procedure = gimp_procedure_new (item_set_lock_visibility_invoker);
|
||||
gimp_object_set_static_name (GIMP_OBJECT (procedure),
|
||||
"gimp-item-set-lock-visibility");
|
||||
gimp_procedure_set_static_help (procedure,
|
||||
"Set the 'lock visibility' state of the specified item.",
|
||||
"This procedure sets the specified item's lock visibility state.",
|
||||
NULL);
|
||||
gimp_procedure_set_static_attribution (procedure,
|
||||
"Jehan",
|
||||
"Jehan",
|
||||
"2021");
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_item ("item",
|
||||
"item",
|
||||
"The item",
|
||||
FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_procedure_add_argument (procedure,
|
||||
g_param_spec_boolean ("lock-visibility",
|
||||
"lock visibility",
|
||||
"The new item 'lock visibility' state",
|
||||
FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-item-get-color-tag
|
||||
*/
|
||||
|
|
|
@ -515,6 +515,7 @@ EXPORTS
|
|||
gimp_item_get_linked
|
||||
gimp_item_get_lock_content
|
||||
gimp_item_get_lock_position
|
||||
gimp_item_get_lock_visibility
|
||||
gimp_item_get_name
|
||||
gimp_item_get_parasite
|
||||
gimp_item_get_parasite_list
|
||||
|
@ -545,6 +546,7 @@ EXPORTS
|
|||
gimp_item_set_linked
|
||||
gimp_item_set_lock_content
|
||||
gimp_item_set_lock_position
|
||||
gimp_item_set_lock_visibility
|
||||
gimp_item_set_name
|
||||
gimp_item_set_tattoo
|
||||
gimp_item_set_visible
|
||||
|
|
|
@ -964,6 +964,80 @@ gimp_item_set_lock_position (GimpItem *item,
|
|||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_item_get_lock_visibility:
|
||||
* @item: The item.
|
||||
*
|
||||
* Get the 'lock visibility' state of the specified item.
|
||||
*
|
||||
* This procedure returns the specified item's lock visibility state.
|
||||
*
|
||||
* Returns: Whether the item's visibility is locked.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
gboolean
|
||||
gimp_item_get_lock_visibility (GimpItem *item)
|
||||
{
|
||||
GimpValueArray *args;
|
||||
GimpValueArray *return_vals;
|
||||
gboolean lock_visibility = FALSE;
|
||||
|
||||
args = gimp_value_array_new_from_types (NULL,
|
||||
GIMP_TYPE_ITEM, item,
|
||||
G_TYPE_NONE);
|
||||
|
||||
return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
||||
"gimp-item-get-lock-visibility",
|
||||
args);
|
||||
gimp_value_array_unref (args);
|
||||
|
||||
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
|
||||
lock_visibility = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
|
||||
|
||||
gimp_value_array_unref (return_vals);
|
||||
|
||||
return lock_visibility;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_item_set_lock_visibility:
|
||||
* @item: The item.
|
||||
* @lock_visibility: The new item 'lock visibility' state.
|
||||
*
|
||||
* Set the 'lock visibility' state of the specified item.
|
||||
*
|
||||
* This procedure sets the specified item's lock visibility state.
|
||||
*
|
||||
* Returns: TRUE on success.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
gboolean
|
||||
gimp_item_set_lock_visibility (GimpItem *item,
|
||||
gboolean lock_visibility)
|
||||
{
|
||||
GimpValueArray *args;
|
||||
GimpValueArray *return_vals;
|
||||
gboolean success = TRUE;
|
||||
|
||||
args = gimp_value_array_new_from_types (NULL,
|
||||
GIMP_TYPE_ITEM, item,
|
||||
G_TYPE_BOOLEAN, lock_visibility,
|
||||
G_TYPE_NONE);
|
||||
|
||||
return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
||||
"gimp-item-set-lock-visibility",
|
||||
args);
|
||||
gimp_value_array_unref (args);
|
||||
|
||||
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
||||
|
||||
gimp_value_array_unref (return_vals);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_item_get_color_tag:
|
||||
* @item: The item.
|
||||
|
|
|
@ -32,52 +32,55 @@ G_BEGIN_DECLS
|
|||
/* For information look into the C source or the html documentation */
|
||||
|
||||
|
||||
gboolean gimp_item_id_is_valid (gint item_id);
|
||||
gboolean gimp_item_id_is_drawable (gint item_id);
|
||||
gboolean gimp_item_id_is_layer (gint item_id);
|
||||
gboolean gimp_item_id_is_text_layer (gint item_id);
|
||||
gboolean gimp_item_id_is_channel (gint item_id);
|
||||
gboolean gimp_item_id_is_layer_mask (gint item_id);
|
||||
gboolean gimp_item_id_is_selection (gint item_id);
|
||||
gboolean gimp_item_id_is_vectors (gint item_id);
|
||||
GimpImage* gimp_item_get_image (GimpItem *item);
|
||||
gboolean gimp_item_delete (GimpItem *item);
|
||||
gboolean gimp_item_is_group (GimpItem *item);
|
||||
GimpItem* gimp_item_get_parent (GimpItem *item);
|
||||
GimpItem** gimp_item_get_children (GimpItem *item,
|
||||
gint *num_children);
|
||||
gboolean gimp_item_get_expanded (GimpItem *item);
|
||||
gboolean gimp_item_set_expanded (GimpItem *item,
|
||||
gboolean expanded);
|
||||
gchar* gimp_item_get_name (GimpItem *item);
|
||||
gboolean gimp_item_set_name (GimpItem *item,
|
||||
const gchar *name);
|
||||
gboolean gimp_item_get_visible (GimpItem *item);
|
||||
gboolean gimp_item_set_visible (GimpItem *item,
|
||||
gboolean visible);
|
||||
gboolean gimp_item_get_linked (GimpItem *item);
|
||||
gboolean gimp_item_set_linked (GimpItem *item,
|
||||
gboolean linked);
|
||||
gboolean gimp_item_get_lock_content (GimpItem *item);
|
||||
gboolean gimp_item_set_lock_content (GimpItem *item,
|
||||
gboolean lock_content);
|
||||
gboolean gimp_item_get_lock_position (GimpItem *item);
|
||||
gboolean gimp_item_set_lock_position (GimpItem *item,
|
||||
gboolean lock_position);
|
||||
GimpColorTag gimp_item_get_color_tag (GimpItem *item);
|
||||
gboolean gimp_item_set_color_tag (GimpItem *item,
|
||||
GimpColorTag color_tag);
|
||||
guint gimp_item_get_tattoo (GimpItem *item);
|
||||
gboolean gimp_item_set_tattoo (GimpItem *item,
|
||||
guint tattoo);
|
||||
gboolean gimp_item_attach_parasite (GimpItem *item,
|
||||
const GimpParasite *parasite);
|
||||
gboolean gimp_item_detach_parasite (GimpItem *item,
|
||||
const gchar *name);
|
||||
GimpParasite* gimp_item_get_parasite (GimpItem *item,
|
||||
const gchar *name);
|
||||
gchar** gimp_item_get_parasite_list (GimpItem *item,
|
||||
gint *num_parasites);
|
||||
gboolean gimp_item_id_is_valid (gint item_id);
|
||||
gboolean gimp_item_id_is_drawable (gint item_id);
|
||||
gboolean gimp_item_id_is_layer (gint item_id);
|
||||
gboolean gimp_item_id_is_text_layer (gint item_id);
|
||||
gboolean gimp_item_id_is_channel (gint item_id);
|
||||
gboolean gimp_item_id_is_layer_mask (gint item_id);
|
||||
gboolean gimp_item_id_is_selection (gint item_id);
|
||||
gboolean gimp_item_id_is_vectors (gint item_id);
|
||||
GimpImage* gimp_item_get_image (GimpItem *item);
|
||||
gboolean gimp_item_delete (GimpItem *item);
|
||||
gboolean gimp_item_is_group (GimpItem *item);
|
||||
GimpItem* gimp_item_get_parent (GimpItem *item);
|
||||
GimpItem** gimp_item_get_children (GimpItem *item,
|
||||
gint *num_children);
|
||||
gboolean gimp_item_get_expanded (GimpItem *item);
|
||||
gboolean gimp_item_set_expanded (GimpItem *item,
|
||||
gboolean expanded);
|
||||
gchar* gimp_item_get_name (GimpItem *item);
|
||||
gboolean gimp_item_set_name (GimpItem *item,
|
||||
const gchar *name);
|
||||
gboolean gimp_item_get_visible (GimpItem *item);
|
||||
gboolean gimp_item_set_visible (GimpItem *item,
|
||||
gboolean visible);
|
||||
gboolean gimp_item_get_linked (GimpItem *item);
|
||||
gboolean gimp_item_set_linked (GimpItem *item,
|
||||
gboolean linked);
|
||||
gboolean gimp_item_get_lock_content (GimpItem *item);
|
||||
gboolean gimp_item_set_lock_content (GimpItem *item,
|
||||
gboolean lock_content);
|
||||
gboolean gimp_item_get_lock_position (GimpItem *item);
|
||||
gboolean gimp_item_set_lock_position (GimpItem *item,
|
||||
gboolean lock_position);
|
||||
gboolean gimp_item_get_lock_visibility (GimpItem *item);
|
||||
gboolean gimp_item_set_lock_visibility (GimpItem *item,
|
||||
gboolean lock_visibility);
|
||||
GimpColorTag gimp_item_get_color_tag (GimpItem *item);
|
||||
gboolean gimp_item_set_color_tag (GimpItem *item,
|
||||
GimpColorTag color_tag);
|
||||
guint gimp_item_get_tattoo (GimpItem *item);
|
||||
gboolean gimp_item_set_tattoo (GimpItem *item,
|
||||
guint tattoo);
|
||||
gboolean gimp_item_attach_parasite (GimpItem *item,
|
||||
const GimpParasite *parasite);
|
||||
gboolean gimp_item_detach_parasite (GimpItem *item,
|
||||
const gchar *name);
|
||||
GimpParasite* gimp_item_get_parasite (GimpItem *item,
|
||||
const gchar *name);
|
||||
gchar** gimp_item_get_parasite_list (GimpItem *item,
|
||||
gint *num_parasites);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -752,6 +752,58 @@ 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.";
|
||||
|
||||
|
@ -1000,6 +1052,7 @@ CODE
|
|||
item_get_linked item_set_linked
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue