diff --git a/src/bin/elementary/test_ui_box.c b/src/bin/elementary/test_ui_box.c index e023f3cde1..dcaacebb4d 100644 --- a/src/bin/elementary/test_ui_box.c +++ b/src/bin/elementary/test_ui_box.c @@ -238,7 +238,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in hbox = efl_add(EFL_UI_BOX_CLASS, win, efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL)); - elm_object_content_set(f, hbox); + efl_content_set(f, hbox); efl_pack_padding_set(hbox, 10, 0, EINA_TRUE); @@ -481,7 +481,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in efl_pack_padding_set(bx, 10, 10, EINA_TRUE); efl_gfx_size_hint_align_set(bx, 0.5, 0.5); efl_gfx_size_hint_weight_set(bx, 1, 1); - elm_object_content_set(f, bx); + efl_content_set(f, bx); objects[i++] = o = elm_button_add(win); elm_object_text_set(o, "Btn1"); diff --git a/src/lib/elementary/efl_ui_frame.c b/src/lib/elementary/efl_ui_frame.c index 805ac5989c..16487b5e27 100644 --- a/src/lib/elementary/efl_ui_frame.c +++ b/src/lib/elementary/efl_ui_frame.c @@ -211,17 +211,22 @@ _efl_ui_frame_class_constructor(Efl_Class *klass) evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } +/* Default text (title) and content */ + ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) +ELM_PART_CONTENT_DEFAULT_SET(efl_ui_frame, "elm.swallow.content") +ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) /* Internal EO APIs and hidden overrides */ -ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX) -ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX) +ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_frame) +ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_frame) #define EFL_UI_FRAME_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_OPS(efl_ui_frame), \ - ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \ - ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX) + ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_frame), \ + ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_frame), \ + ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_frame) #include "efl_ui_frame.eo.c" diff --git a/src/lib/elementary/efl_ui_frame.eo b/src/lib/elementary/efl_ui_frame.eo index dab44bbf35..beddf4cb66 100644 --- a/src/lib/elementary/efl_ui_frame.eo +++ b/src/lib/elementary/efl_ui_frame.eo @@ -1,5 +1,5 @@ class Efl.Ui.Frame (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Text, Efl.Text.Markup, - Efl.Ui.Translatable) + Efl.Ui.Translatable, Efl.Container) { [[Frame widget @@ -60,5 +60,7 @@ class Efl.Ui.Frame (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Text, Efl.Text.Markup, Efl.Text.text { get; set; } Efl.Text.Markup.markup { get; set; } Efl.Ui.Translatable.translatable_text { get; set; } + Efl.Container.content { get; set; } + Efl.Container.content_unset; } } diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 79ca364c5d..17819923bb 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -6992,26 +6992,6 @@ _efl_ui_win_part_file_get(Eo *obj, Efl_Ui_Win_Data *sd, const char *part, const return EINA_FALSE; } -/* Default content */ - -EOLIAN static Eina_Bool -_efl_ui_win_efl_container_content_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Object *content) -{ - return _efl_ui_win_content_set(obj, sd, "content", content); -} - -EOLIAN static Evas_Object* -_efl_ui_win_efl_container_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd) -{ - return _efl_ui_win_content_get(obj, sd, "content"); -} - -EOLIAN static Evas_Object* -_efl_ui_win_efl_container_content_unset(Eo *obj, Efl_Ui_Win_Data *sd) -{ - return _efl_ui_win_content_unset(obj, sd, "content"); -} - /* Efl.Part begin */ static void @@ -7058,6 +7038,7 @@ ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data) ELM_PART_OVERRIDE_CONTENT_GET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data) ELM_PART_OVERRIDE_CONTENT_UNSET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data) ELM_PART_CONTENT_DEFAULT_SET(efl_ui_win, "content") +ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_win, Efl_Ui_Win_Data) #include "efl_ui_win_part.eo.c" /* Efl.Part end */ diff --git a/src/lib/elementary/elm_part_helper.h b/src/lib/elementary/elm_part_helper.h index f776b27eb6..20d13035cb 100644 --- a/src/lib/elementary/elm_part_helper.h +++ b/src/lib/elementary/elm_part_helper.h @@ -23,7 +23,8 @@ struct _Elm_Part_Data // Note: this generic implementation can be improved to support part object // caching or something... - +// FIXME: Some widgets return the alias name, some return the real name +// alias doesn't work for frame, _elm_layout_part_aliasing_eval() fails for scroller #define ELM_PART_CONTENT_DEFAULT_SET(type, part) \ static const char * _ ## type ## _default_content_part_get(const Eo *obj EINA_UNUSED, void *sd EINA_UNUSED) { return part; } @@ -36,6 +37,25 @@ struct _Elm_Part_Data #define ELM_PART_TEXT_DEFAULT_OPS(type) \ EFL_OBJECT_OP_FUNC(elm_widget_default_text_part_get, _ ## type ## _default_text_part_get) +#define ELM_PART_CONTENT_DEFAULT_IMPLEMENT(type, typedata) \ + EOLIAN static Eina_Bool \ + _ ## type ## _efl_container_content_set(Eo *obj, typedata *sd, Evas_Object *content) \ + { \ + return efl_content_set(efl_part(obj, _ ## type ## _default_content_part_get(obj, sd)), content); \ + } \ + \ + EOLIAN static Evas_Object* \ + _ ## type ## _efl_container_content_get(Eo *obj, typedata *sd) \ + { \ + return efl_content_get(efl_part(obj, _ ## type ## _default_content_part_get(obj, sd))); \ + } \ + \ + EOLIAN static Evas_Object* \ + _ ## type ## _efl_container_content_unset(Eo *obj, typedata *sd) \ + { \ + return efl_content_unset(efl_part(obj, _ ## type ## _default_content_part_get(obj, sd))); \ + } + // For any widget that has specific part handling