elm_scroller: make loop_set/get as generic API

elm_scroller_loop_set cannot be used for other widgets except scroller,
the API should be generic as this functionality can be implemented by other widgets as well.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8686
This commit is contained in:
Shilpa Singh 2019-04-23 11:39:50 +00:00 committed by Marcel Hollerbach
parent 264f15400f
commit 49f22b60e5
2 changed files with 28 additions and 8 deletions

View File

@ -1255,14 +1255,9 @@ elm_scroller_step_size_get(const Evas_Object *obj,
elm_interface_scrollable_step_size_get((Eo *) obj, x, y);
}
EAPI void
elm_scroller_loop_set(Evas_Object *obj,
Eina_Bool loop_h,
Eina_Bool loop_v)
EOLIAN static void
_elm_scroller_elm_interface_scrollable_content_loop_set(Eo *obj, Elm_Scroller_Data *sd, Eina_Bool loop_h, Eina_Bool loop_v)
{
ELM_SCROLLABLE_CHECK(obj);
ELM_SCROLLER_DATA_GET(obj, sd);
int i;
if (sd->loop_h == loop_h && sd->loop_v == loop_v) return;
@ -1270,7 +1265,7 @@ elm_scroller_loop_set(Evas_Object *obj,
sd->loop_h = loop_h;
sd->loop_v = loop_v;
elm_interface_scrollable_content_loop_set(obj, loop_h, loop_v);
elm_interface_scrollable_content_loop_set(efl_super(obj, MY_CLASS), loop_h, loop_v);
if (sd->content)
{
@ -1301,6 +1296,23 @@ elm_scroller_loop_set(Evas_Object *obj,
elm_layout_sizing_eval(obj);
}
EAPI void
elm_scroller_loop_set(Evas_Object *obj,
Eina_Bool loop_h,
Eina_Bool loop_v)
{
ELM_SCROLLABLE_CHECK(obj);
elm_interface_scrollable_content_loop_set(obj, loop_h, loop_v);
}
EOLIAN static void
_elm_scroller_elm_interface_scrollable_content_loop_get(Eo *obj EINA_UNUSED, Elm_Scroller_Data *sd, Eina_Bool *loop_h, Eina_Bool *loop_v)
{
if (loop_h) *loop_h = sd->loop_h;
if (loop_v) *loop_v = sd->loop_v;
}
EAPI void
elm_scroller_loop_get(const Evas_Object *obj,
Eina_Bool *loop_h,

View File

@ -86,6 +86,12 @@ void _elm_scroller_elm_interface_scrollable_single_direction_set(Eo *obj, Elm_Sc
Elm_Scroller_Single_Direction _elm_scroller_elm_interface_scrollable_single_direction_get(const Eo *obj, Elm_Scroller_Data *pd);
void _elm_scroller_elm_interface_scrollable_content_loop_set(Eo *obj, Elm_Scroller_Data *sd, Eina_Bool loop_h, Eina_Bool loop_v);
void _elm_scroller_elm_interface_scrollable_content_loop_get(Eo *obj EINA_UNUSED, Elm_Scroller_Data *sd, Eina_Bool *loop_h, Eina_Bool *loop_v);
const Efl_Access_Action_Data *_elm_scroller_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_Scroller_Data *pd);
@ -125,6 +131,8 @@ _elm_scroller_class_initializer(Efl_Class *klass)
EFL_OBJECT_OP_FUNC(elm_interface_scrollable_policy_set, _elm_scroller_elm_interface_scrollable_policy_set),
EFL_OBJECT_OP_FUNC(elm_interface_scrollable_single_direction_set, _elm_scroller_elm_interface_scrollable_single_direction_set),
EFL_OBJECT_OP_FUNC(elm_interface_scrollable_single_direction_get, _elm_scroller_elm_interface_scrollable_single_direction_get),
EFL_OBJECT_OP_FUNC(elm_interface_scrollable_content_loop_set, _elm_scroller_elm_interface_scrollable_content_loop_set),
EFL_OBJECT_OP_FUNC(elm_interface_scrollable_content_loop_get, _elm_scroller_elm_interface_scrollable_content_loop_get),
EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_scroller_efl_access_widget_action_elm_actions_get),
EFL_OBJECT_OP_FUNC(efl_part_get, _elm_scroller_efl_part_part_get),
EFL_OBJECT_OP_FUNC(efl_ui_widget_focus_state_apply, _elm_scroller_efl_ui_widget_focus_state_apply),