mirror of https://github.com/GNOME/gimp.git
app: add gimp_item_stack_get_item_by_path()
which finds an item by its path as returned by gimp_item_get_path().
This commit is contained in:
parent
3762e03bf6
commit
b2642272a4
|
@ -233,6 +233,39 @@ gimp_item_stack_get_item_by_tattoo (GimpItemStack *stack,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GimpItem *
|
||||||
|
gimp_item_stack_get_item_by_path (GimpItemStack *stack,
|
||||||
|
GList *path)
|
||||||
|
{
|
||||||
|
GimpContainer *container;
|
||||||
|
GimpItem *item = NULL;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_ITEM_STACK (stack), NULL);
|
||||||
|
g_return_val_if_fail (path != NULL, NULL);
|
||||||
|
|
||||||
|
container = GIMP_CONTAINER (stack);
|
||||||
|
|
||||||
|
while (path)
|
||||||
|
{
|
||||||
|
guint32 i = GPOINTER_TO_UINT (path->data);
|
||||||
|
|
||||||
|
item = GIMP_ITEM (gimp_container_get_child_by_index (container, i));
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_ITEM (item), item);
|
||||||
|
|
||||||
|
if (path->next)
|
||||||
|
{
|
||||||
|
container = gimp_viewable_get_children (GIMP_VIEWABLE (item));
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_ITEM_STACK (container), item);
|
||||||
|
}
|
||||||
|
|
||||||
|
path = path->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
GimpItem *
|
GimpItem *
|
||||||
gimp_item_stack_get_parent_by_path (GimpItemStack *stack,
|
gimp_item_stack_get_parent_by_path (GimpItemStack *stack,
|
||||||
GList *path,
|
GList *path,
|
||||||
|
|
|
@ -53,6 +53,8 @@ GList * gimp_item_stack_get_item_iter (GimpItemStack *stack);
|
||||||
GList * gimp_item_stack_get_item_list (GimpItemStack *stack);
|
GList * gimp_item_stack_get_item_list (GimpItemStack *stack);
|
||||||
GimpItem * gimp_item_stack_get_item_by_tattoo (GimpItemStack *stack,
|
GimpItem * gimp_item_stack_get_item_by_tattoo (GimpItemStack *stack,
|
||||||
GimpTattoo tattoo);
|
GimpTattoo tattoo);
|
||||||
|
GimpItem * gimp_item_stack_get_item_by_path (GimpItemStack *stack,
|
||||||
|
GList *path);
|
||||||
GimpItem * gimp_item_stack_get_parent_by_path (GimpItemStack *stack,
|
GimpItem * gimp_item_stack_get_parent_by_path (GimpItemStack *stack,
|
||||||
GList *path,
|
GList *path,
|
||||||
gint *index);
|
gint *index);
|
||||||
|
|
Loading…
Reference in New Issue