scroller: Implement default content part
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 2 Aug 2017 11:55:20 +0000 (20:55 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Fri, 4 Aug 2017 02:52:16 +0000 (11:52 +0900)
This:
  efl_content_set(efl_part(scroller, "default"), obj)
worked fine, but, this:
  efl_content_set(scroller, obj)
didn't work as expected.

Thanks @JackDanielz for the report.

Note: There is a problem still... "default" should not work
      with efl_part. This is quite bad, actually. It should
      probably be "content" instead.

src/lib/elementary/elm_scroller.c
src/lib/elementary/elm_scroller.eo

index d736884..7e98eeb 100644 (file)
@@ -869,6 +869,24 @@ _elm_scroller_content_unset(Eo *obj, Elm_Scroller_Data *sd, const char *part)
    return ret;
 }
 
+EOLIAN static Eina_Bool
+_elm_scroller_efl_container_content_set(Eo *obj, Elm_Scroller_Data *sd, Eo *content)
+{
+   return _elm_scroller_content_set(obj, sd, "default", content);
+}
+
+EOLIAN static Eo *
+_elm_scroller_efl_container_content_get(Eo *obj, Elm_Scroller_Data *sd)
+{
+   return _elm_scroller_content_get(obj, sd, "default");
+}
+
+EOLIAN static Eo *
+_elm_scroller_efl_container_content_unset(Eo *obj, Elm_Scroller_Data *sd)
+{
+   return _elm_scroller_content_unset(obj, sd, "default");
+}
+
 static void
 _elm_scroller_content_min_limit_cb(Evas_Object *obj,
                                    Eina_Bool w,
@@ -1462,6 +1480,7 @@ ELM_PART_OVERRIDE(elm_scroller, ELM_SCROLLER, ELM_LAYOUT, Elm_Scroller_Data, Elm
 ELM_PART_OVERRIDE_CONTENT_SET(elm_scroller, ELM_SCROLLER, ELM_LAYOUT, Elm_Scroller_Data, Elm_Part_Data)
 ELM_PART_OVERRIDE_CONTENT_GET(elm_scroller, ELM_SCROLLER, ELM_LAYOUT, Elm_Scroller_Data, Elm_Part_Data)
 ELM_PART_OVERRIDE_CONTENT_UNSET(elm_scroller, ELM_SCROLLER, ELM_LAYOUT, Elm_Scroller_Data, Elm_Part_Data)
+// FIXME: should be "content" but "default" was legacy API
 ELM_PART_CONTENT_DEFAULT_SET(elm_scroller, "default")
 #include "elm_scroller_internal_part.eo.c"
 
index 7f0a6cf..2bb9c3c 100644 (file)
@@ -1,6 +1,6 @@
 class Elm.Scroller (Elm.Layout, Elm.Interface_Scrollable,
                     Elm.Interface.Atspi_Widget_Action,
-                    Efl.Ui.Scrollable)
+                    Efl.Ui.Scrollable, Efl.Container)
 {
    [[Elementary scroller class]]
    legacy_prefix: elm_scroller;
@@ -45,6 +45,8 @@ class Elm.Scroller (Elm.Layout, Elm.Interface_Scrollable,
       Efl.Gfx.position { set; }
       Efl.Gfx.size { set; }
       Efl.Canvas.Group.group_member_add;
+      Efl.Container.content { get; set; }
+      Efl.Container.content_unset;
       Elm.Widget.theme_apply;
       Elm.Widget.activate;
       Elm.Widget.focus_next_manager_is;