widget: Remove scrollable_children from EO

It's an internal only function, which IMHO was not required and an
overhead over the simple loop.

Ref T5363
This commit is contained in:
Jean-Philippe Andre 2017-08-08 22:53:58 +09:00
parent 23555ae461
commit 10ec5f5f80
3 changed files with 20 additions and 55 deletions

View File

@ -3510,25 +3510,6 @@ _elm_widget_parents_bounce_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED,
while (parent_obj);
}
EOLIAN static Eina_List*
_elm_widget_scrollable_children_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
{
Eina_List *ret;
ret = NULL;
Eina_List *l;
Evas_Object *child;
EINA_LIST_FOREACH(sd->subobjs, l, child)
{
if (elm_widget_is(child) && _elm_scrollable_is(child))
ret = eina_list_append(ret, child);
}
return ret;
}
EOLIAN static void
_elm_widget_scroll_hold_push(Eo *obj, Elm_Widget_Smart_Data *sd)
{
@ -3539,15 +3520,14 @@ _elm_widget_scroll_hold_push(Eo *obj, Elm_Widget_Smart_Data *sd)
elm_interface_scrollable_hold_set(obj, EINA_TRUE);
else
{
Eina_List *scr_children, *l;
Evas_Object *child;
Eina_List *l;
scr_children = elm_widget_scrollable_children_get(obj);
EINA_LIST_FOREACH(scr_children, l, child)
EINA_LIST_FOREACH(sd->subobjs, l, child)
{
elm_interface_scrollable_hold_set(child, EINA_TRUE);
if (elm_widget_is(child) && _elm_scrollable_is(child))
elm_interface_scrollable_hold_set(child, EINA_TRUE);
}
eina_list_free(scr_children);
}
}
if (sd->parent_obj) elm_obj_widget_scroll_hold_push(sd->parent_obj);
@ -3564,15 +3544,14 @@ _elm_widget_scroll_hold_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
elm_interface_scrollable_hold_set(obj, EINA_FALSE);
else
{
Eina_List *scr_children, *l;
Evas_Object *child;
Eina_List *l;
scr_children = elm_widget_scrollable_children_get(obj);
EINA_LIST_FOREACH(scr_children, l, child)
EINA_LIST_FOREACH(sd->subobjs, l, child)
{
elm_interface_scrollable_hold_set(child, EINA_FALSE);
if (elm_widget_is(child) && _elm_scrollable_is(child))
elm_interface_scrollable_hold_set(child, EINA_FALSE);
}
eina_list_free(scr_children);
}
}
if (sd->parent_obj) elm_obj_widget_scroll_hold_pop(sd->parent_obj);
@ -3595,15 +3574,14 @@ _elm_widget_scroll_freeze_push(Eo *obj, Elm_Widget_Smart_Data *sd)
elm_interface_scrollable_freeze_set(obj, EINA_TRUE);
else
{
Eina_List *scr_children, *l;
Evas_Object *child;
Eina_List *l;
scr_children = elm_widget_scrollable_children_get(obj);
EINA_LIST_FOREACH(scr_children, l, child)
EINA_LIST_FOREACH(sd->subobjs, l, child)
{
elm_interface_scrollable_freeze_set(child, EINA_TRUE);
if (elm_widget_is(child) && _elm_scrollable_is(child))
elm_interface_scrollable_freeze_set(child, EINA_TRUE);
}
eina_list_free(scr_children);
}
}
if (sd->parent_obj) elm_obj_widget_scroll_freeze_push(sd->parent_obj);
@ -3620,15 +3598,14 @@ _elm_widget_scroll_freeze_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
elm_interface_scrollable_freeze_set(obj, EINA_FALSE);
else
{
Eina_List *scr_children, *l;
Evas_Object *child;
Eina_List *l;
scr_children = elm_widget_scrollable_children_get(obj);
EINA_LIST_FOREACH(scr_children, l, child)
EINA_LIST_FOREACH(sd->subobjs, l, child)
{
elm_interface_scrollable_freeze_set(child, EINA_FALSE);
if (elm_widget_is(child) && _elm_scrollable_is(child))
elm_interface_scrollable_freeze_set(child, EINA_FALSE);
}
eina_list_free(scr_children);
}
}
if (sd->parent_obj) elm_obj_widget_scroll_freeze_pop(sd->parent_obj);
@ -4045,13 +4022,12 @@ _elm_widget_drag_child_locked_y_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *
EOLIAN static void
_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd EINA_UNUSED, Eina_Bool enable EINA_UNUSED)
{
return;
}
EOLIAN static Eina_Bool
_elm_widget_item_loop_enabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd EINA_UNUSED)
{
return EINA_FALSE;
return EINA_FALSE;
}
EOLIAN static Elm_Theme_Apply

View File

@ -235,6 +235,8 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
sobj: Efl.Canvas.Object @nullable; [[Hover sub object]]
}
}
/* internal only - most objects use data = null as they work on
themselves except scroller itself */
@property on_show_region_hook {
[[Region hook on show property]]
set {
@ -244,6 +246,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
data: void_ptr @optional; [[Data pointer]]
}
}
/* this is a part api */
@property domain_part_text_translatable {
[[Translate domain text part property]]
set {
@ -272,14 +275,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
label: string; [[Label]]
}
}
@property scrollable_children {
get {
[[Function to operate on a given widget's scrollable children when necessary.
Warning: free the returned list with eina_list_free().]]
return: free(own(list<Efl.Canvas.Object>), eina_list_free) @warn_unused; [[List of scrollable children]]
}
}
@property scroll_hold {
[[Scroll hold property]]
get {

View File

@ -785,12 +785,6 @@ EAPI void elm_widget_focus_region_show_mode_set(Evas_Object *obj, El
EAPI Elm_Focus_Region_Show_Mode elm_widget_focus_region_show_mode_get(const Evas_Object *obj);
EAPI void elm_widget_focus_reconfigure(Evas_Object *obj);
/**
* Function to operate on a given widget's scrollabe children when necessary.
* @warning free the returned list with eina_list_free().
*/
EAPI Eina_List *elm_widget_scrollable_children_get(const Evas_Object *obj);
/* debug function. don't use it unless you are tracking parenting issues */
EAPI void elm_widget_tree_dump(const Evas_Object *top);
EAPI void elm_widget_tree_dot_dump(const Evas_Object *top, FILE *output);