elm_scroller: make loop_set/get as generic API
authorShilpa Singh <shilpa.singh@samsung.com>
Tue, 23 Apr 2019 11:39:50 +0000 (11:39 +0000)
committerWoochanlee <wc0917.lee@samsung.com>
Tue, 30 Apr 2019 01:03:07 +0000 (10:03 +0900)
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

src/lib/elementary/elm_scroller.c
src/lib/elementary/elm_scroller_eo.c

index 9208411..6b7cb9c 100644 (file)
@@ -1529,14 +1529,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;
@@ -1544,7 +1539,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)
      {
@@ -1576,6 +1571,23 @@ elm_scroller_loop_set(Evas_Object *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,
                       Eina_Bool *loop_v)
index f2b6a30..4956a1b 100644 (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);
 
 
@@ -137,6 +143,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),