forked from enlightenment/efl
evas vg: add an new interface efl_canvas_vg_container_children_direct_get()
Summary: We need an efficient method to navigate children faster. Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10989
This commit is contained in:
parent
d79693d1a9
commit
174c593c70
|
@ -304,6 +304,12 @@ _efl_canvas_vg_container_children_get(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Contain
|
||||||
return eina_list_iterator_new(pd->children);
|
return eina_list_iterator_new(pd->children);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const Eina_List *
|
||||||
|
_efl_canvas_vg_container_children_direct_get(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Container_Data *pd)
|
||||||
|
{
|
||||||
|
return pd->children;
|
||||||
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_canvas_vg_container_efl_gfx_path_interpolate(Eo *obj, Efl_Canvas_Vg_Container_Data *pd, const Efl_VG *from, const Efl_VG *to, double pos_map)
|
_efl_canvas_vg_container_efl_gfx_path_interpolate(Eo *obj, Efl_Canvas_Vg_Container_Data *pd, const Efl_VG *from, const Efl_VG *to, double pos_map)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,10 @@ class @beta Efl.Canvas.Vg.Container extends Efl.Canvas.Vg.Node
|
||||||
[[Get all children of container]]
|
[[Get all children of container]]
|
||||||
return: iterator<Efl.Canvas.Vg.Node> @move @no_unused; [[Iterator to children]]
|
return: iterator<Efl.Canvas.Vg.Node> @move @no_unused; [[Iterator to children]]
|
||||||
}
|
}
|
||||||
|
children_direct_get {
|
||||||
|
[[Get all children of container]]
|
||||||
|
return: const(list<Efl.Canvas.Vg.Node>) @no_unused; [[List to children]]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
Efl.Object.constructor;
|
Efl.Object.constructor;
|
||||||
|
|
|
@ -378,11 +378,11 @@ _reset_vg_tree(Efl_VG *node)
|
||||||
//Hide all nodes visibility
|
//Hide all nodes visibility
|
||||||
if (efl_isa(node, EFL_CANVAS_VG_CONTAINER_CLASS))
|
if (efl_isa(node, EFL_CANVAS_VG_CONTAINER_CLASS))
|
||||||
{
|
{
|
||||||
|
Eina_List *list = (Eina_List*) efl_canvas_vg_container_children_direct_get(node);
|
||||||
|
Eina_List *list2;
|
||||||
Efl_VG* child;
|
Efl_VG* child;
|
||||||
Eina_Iterator *itr = efl_canvas_vg_container_children_get(node);
|
EINA_LIST_FOREACH(list, list2, child)
|
||||||
EINA_ITERATOR_FOREACH(itr, child)
|
|
||||||
_reset_vg_tree(child);
|
_reset_vg_tree(child);
|
||||||
if (itr) eina_iterator_free(itr);
|
|
||||||
}
|
}
|
||||||
efl_gfx_entity_visible_set(node, EINA_FALSE);
|
efl_gfx_entity_visible_set(node, EINA_FALSE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue