efl_ui_scrollable: apply scroll_hold_push/pop and scroll_freeze_push/pop
authorHosang Kim <hosang12.kim@samsung.com>
Thu, 17 May 2018 09:17:44 +0000 (18:17 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Fri, 1 Jun 2018 01:51:28 +0000 (10:51 +0900)
Test Plan: elementary_test -> Efl.Ui.Scroller -> move slider

Reviewers: jpeg, woohyun, akanad, cedric, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: zmike, Jaehyun_Cho, eagle001, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D5796

src/bin/elementary/test_ui_scroller.c
src/lib/elementary/efl_ui_widget.c

index 5a0a1fc..5d9a689 100644 (file)
@@ -46,6 +46,9 @@ test_efl_ui_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
                 efl_gfx_size_hint_align_set(efl_added, EVAS_HINT_FILL, 0),
                 efl_content_set(sc, efl_added));
 
+   efl_add(EFL_UI_SLIDER_CLASS, bx,
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(160, 0)),
+           efl_pack(bx, efl_added));
 
    for (i = 0; i < 3; i++)
       {
index 2575104..9dc829a 100644 (file)
@@ -207,8 +207,12 @@ static inline Eina_Bool
 _elm_scrollable_is(const Evas_Object *obj)
 {
    INTERNAL_ENTRY EINA_FALSE;
-   return
-      efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN);
+   if (elm_widget_is_legacy(obj))
+     return
+        efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN);
+   else
+     return
+        efl_isa(obj, EFL_UI_SCROLLABLE_INTERACTIVE_INTERFACE);
 }
 
 static void
@@ -2743,7 +2747,12 @@ _efl_ui_widget_scroll_hold_push(Eo *obj, Elm_Widget_Smart_Data *sd)
    if (sd->scroll_hold == 1)
      {
         if (_elm_scrollable_is(obj))
-           elm_interface_scrollable_hold_set(obj, EINA_TRUE);
+          {
+             if (elm_widget_is_legacy(obj))
+               elm_interface_scrollable_hold_set(obj, EINA_TRUE);
+             else
+               efl_ui_scrollable_scroll_hold_set(obj, EINA_TRUE);
+          }
         else
           {
              Evas_Object *child;
@@ -2752,7 +2761,10 @@ _efl_ui_widget_scroll_hold_push(Eo *obj, Elm_Widget_Smart_Data *sd)
              EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
                   if (elm_widget_is(child) && _elm_scrollable_is(child))
-                    elm_interface_scrollable_hold_set(child, EINA_TRUE);
+                    if (elm_widget_is_legacy(obj))
+                      elm_interface_scrollable_hold_set(child, EINA_TRUE);
+                    else
+                      efl_ui_scrollable_scroll_hold_set(child, EINA_TRUE);
                }
           }
      }
@@ -2767,7 +2779,12 @@ _efl_ui_widget_scroll_hold_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
    if (!sd->scroll_hold)
      {
         if (_elm_scrollable_is(obj))
-           elm_interface_scrollable_hold_set(obj, EINA_FALSE);
+          {
+             if (elm_widget_is_legacy(obj))
+               elm_interface_scrollable_hold_set(obj, EINA_FALSE);
+             else
+               efl_ui_scrollable_scroll_hold_set(obj, EINA_FALSE);
+          }
         else
           {
              Evas_Object *child;
@@ -2776,7 +2793,10 @@ _efl_ui_widget_scroll_hold_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
              EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
                   if (elm_widget_is(child) && _elm_scrollable_is(child))
-                    elm_interface_scrollable_hold_set(child, EINA_FALSE);
+                    if (elm_widget_is_legacy(obj))
+                      elm_interface_scrollable_hold_set(child, EINA_FALSE);
+                    else
+                      efl_ui_scrollable_scroll_hold_set(child, EINA_FALSE);
                }
           }
      }
@@ -2800,7 +2820,12 @@ _efl_ui_widget_scroll_freeze_push(Eo *obj, Elm_Widget_Smart_Data *sd)
    if (sd->scroll_freeze == 1)
      {
         if (_elm_scrollable_is(obj))
-           elm_interface_scrollable_freeze_set(obj, EINA_TRUE);
+          {
+             if (elm_widget_is_legacy(obj))
+               elm_interface_scrollable_freeze_set(obj, EINA_TRUE);
+             else
+               efl_ui_scrollable_scroll_freeze_set(obj, EINA_TRUE);
+          }
         else
           {
              Evas_Object *child;
@@ -2809,7 +2834,10 @@ _efl_ui_widget_scroll_freeze_push(Eo *obj, Elm_Widget_Smart_Data *sd)
              EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
                   if (elm_widget_is(child) && _elm_scrollable_is(child))
-                    elm_interface_scrollable_freeze_set(child, EINA_TRUE);
+                    if (elm_widget_is_legacy(obj))
+                      elm_interface_scrollable_freeze_set(child, EINA_TRUE);
+                    else
+                      efl_ui_scrollable_scroll_freeze_set(child, EINA_TRUE);
                }
           }
      }
@@ -2824,7 +2852,12 @@ _efl_ui_widget_scroll_freeze_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
    if (!sd->scroll_freeze)
      {
         if (_elm_scrollable_is(obj))
-           elm_interface_scrollable_freeze_set(obj, EINA_FALSE);
+          {
+             if (elm_widget_is_legacy(obj))
+               elm_interface_scrollable_freeze_set(obj, EINA_FALSE);
+             else
+               efl_ui_scrollable_scroll_freeze_set(obj, EINA_FALSE);
+          }
         else
           {
              Evas_Object *child;
@@ -2833,7 +2866,10 @@ _efl_ui_widget_scroll_freeze_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
              EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
                   if (elm_widget_is(child) && _elm_scrollable_is(child))
-                    elm_interface_scrollable_freeze_set(child, EINA_FALSE);
+                    if (elm_widget_is_legacy(obj))
+                      elm_interface_scrollable_freeze_set(child, EINA_FALSE);
+                    else
+                      efl_ui_scrollable_scroll_freeze_set(child, EINA_FALSE);
                }
           }
      }