scroller: Implement default content part

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.
This commit is contained in:
Jean-Philippe Andre 2017-08-02 20:55:20 +09:00
parent 7ba0ab5182
commit ed94e8b535
2 changed files with 22 additions and 1 deletions

View 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"

View 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;