jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=692282e67a2888446743275ce3c8c973d5912b6c

commit 692282e67a2888446743275ce3c8c973d5912b6c
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Aug 30 16:15:34 2017 +0900

    widget: Move item_loop_enabled to scrollable (EO)
    
    I was told that the scrollable interface is being redesigned for EO.
    This API definitely does not belong to the base Widget class, as it's
    quite specific to item-based scrollable widgets, such as lists and
    grids. Since Elm.Interface_Scrollable is itself being revamped, it is a
    good place to move that EO API for now.
    
    Ref T5363
---
 src/lib/elementary/elm_gengrid.c               |  4 ++--
 src/lib/elementary/elm_gengrid.eo              |  2 +-
 src/lib/elementary/elm_genlist.c               |  4 ++--
 src/lib/elementary/elm_genlist.eo              |  2 +-
 src/lib/elementary/elm_interface_scrollable.c  | 12 ++++++++++++
 src/lib/elementary/elm_interface_scrollable.eo |  6 ++++++
 src/lib/elementary/elm_list.c                  |  4 ++--
 src/lib/elementary/elm_list.eo                 |  2 +-
 src/lib/elementary/elm_main.c                  |  6 ++++--
 src/lib/elementary/elm_widget.c                | 11 -----------
 src/lib/elementary/elm_widget.eo               | 11 +++++------
 src/lib/elementary/elm_widget.h                |  2 --
 12 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index 47fd0d696d..07fba28b50 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -5541,13 +5541,13 @@ _elm_gengrid_elm_widget_focused_item_get(Eo *obj 
EINA_UNUSED, Elm_Gengrid_Data *
 }
 
 EOLIAN static void
-_elm_gengrid_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, 
Elm_Gengrid_Data *sd, Eina_Bool enable)
+_elm_gengrid_elm_interface_scrollable_item_loop_enabled_set(Eo *obj 
EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool enable)
 {
    sd->item_loop_enable = !!enable;
 }
 
 EOLIAN static Eina_Bool
-_elm_gengrid_elm_widget_item_loop_enabled_get(Eo *obj EINA_UNUSED, 
Elm_Gengrid_Data *sd)
+_elm_gengrid_elm_interface_scrollable_item_loop_enabled_get(Eo *obj 
EINA_UNUSED, Elm_Gengrid_Data *sd)
 {
    return sd->item_loop_enable;
 }
diff --git a/src/lib/elementary/elm_gengrid.eo 
b/src/lib/elementary/elm_gengrid.eo
index d4145e74af..0a6dcc6ee4 100644
--- a/src/lib/elementary/elm_gengrid.eo
+++ b/src/lib/elementary/elm_gengrid.eo
@@ -558,7 +558,7 @@ class Elm.Gengrid (Efl.Ui.Layout, Elm.Interface_Scrollable,
       Elm.Widget.widget_event;
       Elm.Widget.focus_highlight_geometry { get; }
       Elm.Widget.focused_item { get; }
-      Elm.Widget.item_loop_enabled { get; set; }
+      Elm.Interface_Scrollable.item_loop_enabled { get; set; }
       Elm.Interface_Scrollable.bounce_allow { set; }
       Elm.Interface_Scrollable.policy { get; set; }
       Elm.Interface.Atspi_Accessible.children { get; }
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 369ef1d85e..0abbd87077 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -8526,13 +8526,13 @@ _elm_genlist_elm_widget_focused_item_get(Eo *obj 
EINA_UNUSED, Elm_Genlist_Data *
 }
 
 EOLIAN static void
-_elm_genlist_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, 
Elm_Genlist_Data *sd, Eina_Bool enable)
+_elm_genlist_elm_interface_scrollable_item_loop_enabled_set(Eo *obj 
EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool enable)
 {
    sd->item_loop_enable = !!enable;
 }
 
 EOLIAN static Eina_Bool
-_elm_genlist_elm_widget_item_loop_enabled_get(Eo *obj EINA_UNUSED, 
Elm_Genlist_Data *sd)
+_elm_genlist_elm_interface_scrollable_item_loop_enabled_get(Eo *obj 
EINA_UNUSED, Elm_Genlist_Data *sd)
 {
    return sd->item_loop_enable;
 }
diff --git a/src/lib/elementary/elm_genlist.eo 
b/src/lib/elementary/elm_genlist.eo
index 9e1b041f77..e2a1f2470c 100644
--- a/src/lib/elementary/elm_genlist.eo
+++ b/src/lib/elementary/elm_genlist.eo
@@ -543,7 +543,7 @@ class Elm.Genlist (Efl.Ui.Layout, Elm.Interface_Scrollable, 
Efl.Ui.Clickable,
       Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Widget.focused_item { get; }
-      Elm.Widget.item_loop_enabled { get; set; }
+      Elm.Interface_Scrollable.item_loop_enabled { get; set; }
       Elm.Interface_Scrollable.bounce_allow { get; set; }
       Elm.Interface_Scrollable.policy { get; set; }
       Elm.Interface.Atspi_Accessible.children { get; }
diff --git a/src/lib/elementary/elm_interface_scrollable.c 
b/src/lib/elementary/elm_interface_scrollable.c
index 6b10a029cf..1757d5e990 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -4741,6 +4741,18 @@ 
_elm_interface_scrollable_efl_ui_focus_manager_focus_set(Eo *obj, Elm_Scrollable
    elm_interface_scrollable_region_bring_in(obj, geom.x, geom.y, geom.w, 
geom.h);
 }
 
+EOLIAN static void
+_elm_interface_scrollable_item_loop_enabled_set(Eo *obj EINA_UNUSED, 
Elm_Scrollable_Smart_Interface_Data *pd EINA_UNUSED, Eina_Bool enable 
EINA_UNUSED)
+{
+}
+
+EOLIAN static Eina_Bool
+_elm_interface_scrollable_item_loop_enabled_get(Eo *obj EINA_UNUSED, 
Elm_Scrollable_Smart_Interface_Data *pd EINA_UNUSED)
+{
+   return EINA_FALSE;
+}
+
+
 /* Internal EO APIs and hidden overrides */
 
 #define ELM_PAN_EXTRA_OPS \
diff --git a/src/lib/elementary/elm_interface_scrollable.eo 
b/src/lib/elementary/elm_interface_scrollable.eo
index 452cee7d04..c953ab8bf7 100644
--- a/src/lib/elementary/elm_interface_scrollable.eo
+++ b/src/lib/elementary/elm_interface_scrollable.eo
@@ -658,6 +658,12 @@ mixin Elm.Interface_Scrollable(Efl.Ui.Scrollable, 
Efl.Canvas.Group, Efl.Ui.Focus
             @in h: bool; [[Whether to limit the minimum vertical size]]
          }
       }
+      @property item_loop_enabled {
+         [[Whether scrolling should loop around.]]
+         values {
+            enable: bool; [[True to enable looping.]]
+         }
+      }
    }
    implements {
       class.constructor;
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index abfc36a4e8..a1c355fc38 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -3134,13 +3134,13 @@ _elm_list_elm_widget_focused_item_get(Eo *obj 
EINA_UNUSED, Elm_List_Data *sd)
 }
 
 EOLIAN static void
-_elm_list_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_List_Data 
*sd, Eina_Bool enable)
+_elm_list_elm_interface_scrollable_item_loop_enabled_set(Eo *obj EINA_UNUSED, 
Elm_List_Data *sd, Eina_Bool enable)
 {
    sd->item_loop_enable = !!enable;
 }
 
 EOLIAN static Eina_Bool
-_elm_list_elm_widget_item_loop_enabled_get(Eo *obj EINA_UNUSED, Elm_List_Data 
*sd)
+_elm_list_elm_interface_scrollable_item_loop_enabled_get(Eo *obj EINA_UNUSED, 
Elm_List_Data *sd)
 {
    return sd->item_loop_enable;
 }
diff --git a/src/lib/elementary/elm_list.eo b/src/lib/elementary/elm_list.eo
index b8a20db99a..4b34e79085 100644
--- a/src/lib/elementary/elm_list.eo
+++ b/src/lib/elementary/elm_list.eo
@@ -445,7 +445,7 @@ class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable,
       Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Widget.focused_item { get; }
-      Elm.Widget.item_loop_enabled { get; set; }
+      Elm.Interface_Scrollable.item_loop_enabled { get; set; }
       Elm.Interface_Scrollable.policy { set; }
       Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
       Elm.Interface.Atspi_Accessible.children { get; }
diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c
index 4752d307b1..012b60723a 100644
--- a/src/lib/elementary/elm_main.c
+++ b/src/lib/elementary/elm_main.c
@@ -1862,14 +1862,16 @@ elm_object_scroll_item_loop_enabled_set(Evas_Object 
*obj,
                                         Eina_Bool   enable)
 {
    EINA_SAFETY_ON_NULL_RETURN(obj);
-   elm_widget_item_loop_enabled_set(obj, enable);
+   if (!efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN)) return;
+   elm_interface_scrollable_item_loop_enabled_set(obj, enable);
 }
 
 EAPI Eina_Bool
 elm_object_scroll_item_loop_enabled_get(const Evas_Object *obj)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
-   return elm_widget_item_loop_enabled_get(obj);
+   if (!efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN)) return EINA_FALSE;
+   return elm_interface_scrollable_item_loop_enabled_get(obj);
 }
 
 EAPI Eina_Bool
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 4cefaf0aa4..25c64b71a4 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -4015,17 +4015,6 @@ elm_widget_scroll_child_locked_y_get(const Eo *obj)
    return sd->child_drag_y_locked;
 }
 
-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)
-{
-}
-
-EOLIAN static Eina_Bool
-_elm_widget_item_loop_enabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data 
*sd EINA_UNUSED)
-{
-   return EINA_FALSE;
-}
-
 EOLIAN static Efl_Ui_Theme_Apply
 _elm_widget_theme_object_set(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object 
*edj, const char *wname, const char *welement, const char *wstyle)
 {
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index 7a53bf78ac..f083620154 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -448,12 +448,9 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
             }
          }
       }
-      @property item_loop_enabled {
-         [[Control item loop feature.]]
-         values {
-            enable: bool; [[$true if item loop is enabled, $false otherwise]]
-         }
-      }
+
+      /* FIXME: Scroll API. Not sure how those APIs should be exposed with
+       * the new scrollable API. */
       scroll_hold_push {
          [[Push scroll hold]]
       }
@@ -467,6 +464,8 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
          [[Pop scroller freeze]]
       }
 
+      /* FIXME: This is not 100% related to focus. This documentation needs
+       * further fixing. */
       @property focus_region {
          [[Region to show when focus changes within this widget.
 
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index 73914af080..4a9abca050 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -743,8 +743,6 @@ EAPI void             
elm_widget_scroll_lock_set(Evas_Object *obj, Efl_Ui_Scroll
 EAPI Efl_Ui_Scroll_Block elm_widget_scroll_lock_get(const Evas_Object *obj);
 EAPI int              elm_widget_scroll_child_locked_x_get(const Evas_Object 
*obj);
 EAPI int              elm_widget_scroll_child_locked_y_get(const Evas_Object 
*obj);
-EAPI void             elm_widget_item_loop_enabled_set(Evas_Object *obj, 
Eina_Bool enable);
-EAPI Eina_Bool        elm_widget_item_loop_enabled_get(const Evas_Object *obj);
 EAPI Efl_Ui_Theme_Apply  elm_widget_theme_object_set(Evas_Object *obj, 
Evas_Object *edj, const char *wname, const char *welement, const char *wstyle);
 EAPI Eina_Bool        elm_widget_type_check(const Evas_Object *obj, const char 
*type, const char *func);
 EAPI Evas_Object     *elm_widget_name_find(const Evas_Object *obj, const char 
*name, int recurse);

-- 


Reply via email to