From 01cb1c32bd8be0854348740f93dcaa1c45a7dff7 Mon Sep 17 00:00:00 2001 From: SangHyeon Jade Lee Date: Thu, 30 May 2019 13:22:03 +0900 Subject: [PATCH] efl_ui : refactoring efl.part in item based classes. Summary: Most of item-based class will have similar efl.part such as text, icon, end. creating this efl part per each class will be very hard to maintaining the class and unnecessary eo generation. so combine them in efl.parts of efl_ui_item. sub item classes can use this efl.part by declairing ther own eo definition. Reviewers: cedric, Jaehyun_Cho, segfaultxavi, eagleeye Reviewed By: cedric, eagleeye Subscribers: herb, woohyun, q66, lauromoura, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8582 --- data/elementary/themes/edc/efl/grid.edc | 2 +- data/elementary/themes/edc/efl/list.edc | 4 +- src/Makefile_Elementary.am | 8 +- .../elementary/efl_ui_list_example_1.c | 2 +- src/lib/elementary/Elementary.h | 8 +- src/lib/elementary/efl_ui_grid_default_item.c | 57 +------- .../elementary/efl_ui_grid_default_item.eo | 9 +- .../efl_ui_grid_default_item_part_end.eo | 9 -- .../efl_ui_grid_default_item_part_icon.eo | 9 -- src/lib/elementary/efl_ui_item.c | 125 ++++++++++++++++++ .../elementary/efl_ui_item_part_content.eo | 9 ++ src/lib/elementary/efl_ui_item_part_extra.eo | 9 ++ src/lib/elementary/efl_ui_item_part_icon.eo | 9 ++ src/lib/elementary/efl_ui_item_part_text.eo | 11 ++ src/lib/elementary/efl_ui_list_default_item.c | 60 +-------- .../elementary/efl_ui_list_default_item.eo | 7 + .../efl_ui_list_default_item_part_end.eo | 9 -- .../efl_ui_list_default_item_part_icon.eo | 9 -- src/lib/elementary/efl_ui_list_empty_item.c | 2 +- src/lib/elementary/efl_ui_list_empty_item.eo | 5 + src/lib/elementary/meson.build | 8 +- 21 files changed, 209 insertions(+), 162 deletions(-) delete mode 100644 src/lib/elementary/efl_ui_grid_default_item_part_end.eo delete mode 100644 src/lib/elementary/efl_ui_grid_default_item_part_icon.eo create mode 100644 src/lib/elementary/efl_ui_item_part_content.eo create mode 100644 src/lib/elementary/efl_ui_item_part_extra.eo create mode 100644 src/lib/elementary/efl_ui_item_part_icon.eo create mode 100644 src/lib/elementary/efl_ui_item_part_text.eo delete mode 100644 src/lib/elementary/efl_ui_list_default_item_part_end.eo delete mode 100644 src/lib/elementary/efl_ui_list_default_item_part_icon.eo diff --git a/data/elementary/themes/edc/efl/grid.edc b/data/elementary/themes/edc/efl/grid.edc index 4fa1ee77ed..fec2e8e110 100644 --- a/data/elementary/themes/edc/efl/grid.edc +++ b/data/elementary/themes/edc/efl/grid.edc @@ -180,7 +180,7 @@ group { "efl/grid_item"; rel2.to: "icon_area"; } } - swallow { "efl.end"; + swallow { "efl.extra"; clip_to: "icon_area"; desc { "default"; fixed: 1 1; diff --git a/data/elementary/themes/edc/efl/list.edc b/data/elementary/themes/edc/efl/list.edc index ca3c5b47ff..e10c64b49a 100644 --- a/data/elementary/themes/edc/efl/list.edc +++ b/data/elementary/themes/edc/efl/list.edc @@ -99,7 +99,7 @@ group { "efl/list_item"; rel1.to_x: "efl.icon"; rel2.offset: -3 -3; rel2.relative: 0.0 1.0; - rel2.to_x: "efl.end"; + rel2.to_x: "efl.extra"; color: FN_COL_DEFAULT; color_class: "list_item"; text { font: FN; size: 10; @@ -179,7 +179,7 @@ group { "efl/list_item"; rel2.offset: 2 -3; } } - swallow { "efl.end"; + swallow { "efl.extra"; desc { "default"; fixed: 1 0; align: 1.0 0.5; diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 614ee74c0a..e3fb705e8e 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -80,16 +80,16 @@ elm_public_eolian_files = \ lib/elementary/efl_ui_list_view.eo \ lib/elementary/efl_ui_list_view_model.eo \ lib/elementary/efl_ui_list_view_pan.eo \ + lib/elementary/efl_ui_item_part_text.eo \ + lib/elementary/efl_ui_item_part_icon.eo \ + lib/elementary/efl_ui_item_part_extra.eo \ + lib/elementary/efl_ui_item_part_content.eo \ lib/elementary/efl_ui_item.eo \ lib/elementary/efl_ui_list_item.eo \ - lib/elementary/efl_ui_list_default_item_part_icon.eo \ - lib/elementary/efl_ui_list_default_item_part_end.eo \ lib/elementary/efl_ui_list_default_item.eo \ lib/elementary/efl_ui_list_empty_item.eo \ lib/elementary/efl_ui_list.eo \ lib/elementary/efl_ui_grid_item.eo \ - lib/elementary/efl_ui_grid_default_item_part_icon.eo \ - lib/elementary/efl_ui_grid_default_item_part_end.eo \ lib/elementary/efl_ui_grid_default_item.eo \ lib/elementary/efl_ui_grid.eo \ lib/elementary/efl_ui_panes_part.eo \ diff --git a/src/examples/elementary/efl_ui_list_example_1.c b/src/examples/elementary/efl_ui_list_example_1.c index 2f4e9c9ee7..f3c29e96e6 100644 --- a/src/examples/elementary/efl_ui_list_example_1.c +++ b/src/examples/elementary/efl_ui_list_example_1.c @@ -172,7 +172,7 @@ elm_main(int argc EINA_UNUSED, char **argv) check = efl_add(EFL_UI_CHECK_CLASS, item); if ((i % 3) == 0) - efl_content_set(efl_part(item, "end"), check); + efl_content_set(efl_part(item, "extra"), check); else if ((i % 3) == 1) efl_content_set(efl_part(item, "icon"), check); else diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 4fa8c3e468..07075d247f 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -334,16 +334,16 @@ typedef Eo Efl_Ui_Focus_Manager; # include # include # include +# include +# include +# include +# include # include # include -# include -# include # include # include # include # include -# include -# include # include # include # include diff --git a/src/lib/elementary/efl_ui_grid_default_item.c b/src/lib/elementary/efl_ui_grid_default_item.c index d0884296b4..65d2c24cf1 100644 --- a/src/lib/elementary/efl_ui_grid_default_item.c +++ b/src/lib/elementary/efl_ui_grid_default_item.c @@ -8,8 +8,6 @@ #include #include "elm_priv.h" -#include "efl_ui_grid_default_item_part_icon.eo.h" -#include "efl_ui_grid_default_item_part_end.eo.h" #include "elm_part_helper.h" #define MY_CLASS EFL_UI_GRID_DEFAULT_ITEM_CLASS @@ -42,63 +40,18 @@ ELM_PART_TEXT_DEFAULT_GET(efl_ui_grid_default_item, "efl.text") ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void) ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void) ELM_PART_CONTENT_DEFAULT_GET(efl_ui_grid_default_item, "efl.icon") -ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void -) - -Eina_Bool -_efl_ui_grid_default_item_part_icon_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); -} - -Efl_Gfx_Entity * -_efl_ui_grid_default_item_part_icon_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} - -Efl_Gfx_Entity * -_efl_ui_grid_default_item_part_icon_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} -#include "efl_ui_grid_default_item_part_icon.eo.c" - -Eina_Bool -_efl_ui_grid_default_item_part_end_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); -} - -Efl_Gfx_Entity * -_efl_ui_grid_default_item_part_end_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} - -Efl_Gfx_Entity * -_efl_ui_grid_default_item_part_end_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} -#include "efl_ui_grid_default_item_part_end.eo.c" +ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void) EOLIAN static Efl_Object * _efl_ui_grid_default_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part) { EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); if (eina_streq(part, "text")) - return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text"); + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_TEXT_CLASS, obj, "efl.text"); else if (eina_streq(part, "icon")) - return ELM_PART_IMPLEMENT(EFL_UI_GRID_DEFAULT_ITEM_PART_ICON_CLASS, obj, "efl.icon"); - else if (eina_streq(part, "end")) - return ELM_PART_IMPLEMENT(EFL_UI_GRID_DEFAULT_ITEM_PART_END_CLASS, obj, "efl.end"); + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_ICON_CLASS, obj, "efl.icon"); + else if (eina_streq(part, "extra")) + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_EXTRA_CLASS, obj, "efl.extra"); return efl_part_get(efl_super(obj, MY_CLASS), part); } diff --git a/src/lib/elementary/efl_ui_grid_default_item.eo b/src/lib/elementary/efl_ui_grid_default_item.eo index 4cbe74e4b9..9b3a0eb890 100644 --- a/src/lib/elementary/efl_ui_grid_default_item.eo +++ b/src/lib/elementary/efl_ui_grid_default_item.eo @@ -11,8 +11,13 @@ class @beta Efl.Ui.Grid_Default_Item extends Efl.Ui.Grid_Item implements @Efl.Content or @Efl.Part.]] data: null; parts { - icon: Efl.Ui.Grid_Default_Item_Part_Icon; [[]] - end: Efl.Ui.Grid_Default_Item_Part_End; [[]] + text: Efl.Ui.Item_Part_Text; [[The text part for grid default item. + text part is the caption of grid item.]] + icon: Efl.Ui.Item_Part_Icon; [[The icon content part for grid default item. + icon part is the main content of grid item.]] + end: Efl.Ui.Item_Part_Extra; [[The extra content part for grid default item. + extra part is the spare content of grid item. + you can swallow small badge widget such as check, radio.]] } implements { //Efl.Object diff --git a/src/lib/elementary/efl_ui_grid_default_item_part_end.eo b/src/lib/elementary/efl_ui_grid_default_item_part_end.eo deleted file mode 100644 index dc3b6dfbbb..0000000000 --- a/src/lib/elementary/efl_ui_grid_default_item_part_end.eo +++ /dev/null @@ -1,9 +0,0 @@ -class @beta Efl.Ui.Grid_Default_Item_Part_End extends Efl.Ui.Layout_Part implements Efl.Content -{ - [[Grid Default Item internal content of end part class]] - data: null; - implements { - Efl.Content.content { get; set; } - Efl.Content.content_unset; - } -} diff --git a/src/lib/elementary/efl_ui_grid_default_item_part_icon.eo b/src/lib/elementary/efl_ui_grid_default_item_part_icon.eo deleted file mode 100644 index 47e290bace..0000000000 --- a/src/lib/elementary/efl_ui_grid_default_item_part_icon.eo +++ /dev/null @@ -1,9 +0,0 @@ -class @beta Efl.Ui.Grid_Default_Item_Part_Icon extends Efl.Ui.Layout_Part implements Efl.Content -{ - [[Grid Default Item internal content of icon part class]] - data: null; - implements { - Efl.Content.content { get; set; } - Efl.Content.content_unset; - } -} diff --git a/src/lib/elementary/efl_ui_item.c b/src/lib/elementary/efl_ui_item.c index 65f488e2e7..3f87832db5 100644 --- a/src/lib/elementary/efl_ui_item.c +++ b/src/lib/elementary/efl_ui_item.c @@ -9,12 +9,137 @@ #include "elm_priv.h" #include "efl_ui_item_private.h" +//part +#include "efl_ui_item_part_text.eo.h" +#include "efl_ui_item_part_icon.eo.h" +#include "efl_ui_item_part_extra.eo.h" +#include "efl_ui_item_part_content.eo.h" +#include "elm_part_helper.h" #define MY_CLASS EFL_UI_ITEM_CLASS #define MY_CLASS_PFX efl_ui_item #define MY_CLASS_NAME "Efl.Ui.Item" +/* Efl.Part */ +EOLIAN static void +_efl_ui_item_part_text_efl_text_text_set(Eo *obj, void *pd EINA_UNUSED, const char *text) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + efl_text_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), text); + + efl_layout_signal_emit(wd->obj, "efl,state,text,set", "efl"); + elm_layout_sizing_eval(wd->obj); +} + +EOLIAN static const char* +_efl_ui_item_part_text_efl_text_text_get(const Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_text_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} + +EOLIAN static void +_efl_ui_item_part_text_efl_text_markup_markup_set(Eo *obj, void *pd EINA_UNUSED, const char *markup) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + efl_text_markup_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), markup); + + efl_layout_signal_emit(obj, "efl,state,text,set", "efl"); + elm_layout_sizing_eval(obj); +} + +EOLIAN static const char* +_efl_ui_item_part_text_efl_text_markup_markup_get(const Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_text_markup_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} + +EOLIAN static const char * +_efl_ui_item_part_text_efl_ui_l10n_l10n_text_get(const Eo *obj, void *_pd EINA_UNUSED, const char **domain) +{ + Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain); +} + +EOLIAN static void +_efl_ui_item_part_text_efl_ui_l10n_l10n_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *text, const char *domain) +{ + Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + elm_widget_part_translatable_text_set(pd->obj, pd->part, text, domain); +} +#include "efl_ui_item_part_text.eo.c" + +/* Efl.Ui.List_Default_Item_Part_Icon */ + +Eina_Bool +_efl_ui_item_part_icon_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); +} + +Efl_Gfx_Entity * +_efl_ui_item_part_icon_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} + +Efl_Gfx_Entity * +_efl_ui_item_part_icon_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} +#include "efl_ui_item_part_icon.eo.c" + +Eina_Bool +_efl_ui_item_part_extra_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); +} + +Efl_Gfx_Entity * +_efl_ui_item_part_extra_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} + +Efl_Gfx_Entity * +_efl_ui_item_part_extra_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} +#include "efl_ui_item_part_extra.eo.c" + +Eina_Bool +_efl_ui_item_part_content_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); +} + +Efl_Gfx_Entity * +_efl_ui_item_part_content_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} + +Efl_Gfx_Entity * +_efl_ui_item_part_content_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) +{ + Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); +} +#include "efl_ui_item_part_content.eo.c" +/* Efl.Part */ + static void _item_select(Eo *obj, Efl_Ui_Item_Data *pd) { diff --git a/src/lib/elementary/efl_ui_item_part_content.eo b/src/lib/elementary/efl_ui_item_part_content.eo new file mode 100644 index 0000000000..010f850ee7 --- /dev/null +++ b/src/lib/elementary/efl_ui_item_part_content.eo @@ -0,0 +1,9 @@ +class @beta Efl.Ui.Item_Part_Content extends Efl.Ui.Layout_Part implements Efl.Content +{ + [[Item internal content part class]] + data: null; + implements { + Efl.Content.content { get; set; } + Efl.Content.content_unset; + } +} diff --git a/src/lib/elementary/efl_ui_item_part_extra.eo b/src/lib/elementary/efl_ui_item_part_extra.eo new file mode 100644 index 0000000000..c6433fc08b --- /dev/null +++ b/src/lib/elementary/efl_ui_item_part_extra.eo @@ -0,0 +1,9 @@ +class @beta Efl.Ui.Item_Part_Extra extends Efl.Ui.Layout_Part implements Efl.Content +{ + [[Item internal content of extra part class]] + data: null; + implements { + Efl.Content.content { get; set; } + Efl.Content.content_unset; + } +} diff --git a/src/lib/elementary/efl_ui_item_part_icon.eo b/src/lib/elementary/efl_ui_item_part_icon.eo new file mode 100644 index 0000000000..5c9a9e38b0 --- /dev/null +++ b/src/lib/elementary/efl_ui_item_part_icon.eo @@ -0,0 +1,9 @@ +class @beta Efl.Ui.Item_Part_Icon extends Efl.Ui.Layout_Part implements Efl.Content +{ + [[Item internal content of icon part class]] + data: null; + implements { + Efl.Content.content { get; set; } + Efl.Content.content_unset; + } +} diff --git a/src/lib/elementary/efl_ui_item_part_text.eo b/src/lib/elementary/efl_ui_item_part_text.eo new file mode 100644 index 0000000000..97fdc0e25b --- /dev/null +++ b/src/lib/elementary/efl_ui_item_part_text.eo @@ -0,0 +1,11 @@ +class @beta Efl.Ui.Item_Part_Text extends Efl.Ui.Layout_Part implements + Efl.Text, Efl.Text_Markup, Efl.Ui.L10n +{ + [[Item internal text part class]] + data: null; + implements { + Efl.Text.text { set; get; } + Efl.Text_Markup.markup { get; set; } + Efl.Ui.L10n.l10n_text { get; set; } + } +} diff --git a/src/lib/elementary/efl_ui_list_default_item.c b/src/lib/elementary/efl_ui_list_default_item.c index 3fcf9e7521..d95f988ee7 100644 --- a/src/lib/elementary/efl_ui_list_default_item.c +++ b/src/lib/elementary/efl_ui_list_default_item.c @@ -8,8 +8,6 @@ #include #include "elm_priv.h" -#include "efl_ui_list_default_item_part_icon.eo.h" -#include "efl_ui_list_default_item_part_end.eo.h" #include "elm_part_helper.h" #define MY_CLASS EFL_UI_LIST_DEFAULT_ITEM_CLASS @@ -36,73 +34,25 @@ _efl_ui_list_default_item_efl_object_destructor(Eo *obj, void *pd EINA_UNUSED) efl_destructor(efl_super(obj, MY_CLASS)); } -/* Efl.Part */ - ELM_PART_TEXT_DEFAULT_GET(efl_ui_list_default_item, "efl.text") ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void) ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void) ELM_PART_CONTENT_DEFAULT_GET(efl_ui_list_default_item, "efl.icon") -ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void -) - -Eina_Bool -_efl_ui_list_default_item_part_icon_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); -} - -Efl_Gfx_Entity * -_efl_ui_list_default_item_part_icon_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} - -Efl_Gfx_Entity * -_efl_ui_list_default_item_part_icon_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} -#include "efl_ui_list_default_item_part_icon.eo.c" - -Eina_Bool -_efl_ui_list_default_item_part_end_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content); -} - -Efl_Gfx_Entity * -_efl_ui_list_default_item_part_end_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} - -Efl_Gfx_Entity * -_efl_ui_list_default_item_part_end_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED) -{ - Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); - return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part)); -} -#include "efl_ui_list_default_item_part_end.eo.c" +ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void) EOLIAN static Efl_Object * _efl_ui_list_default_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part) { EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); if (eina_streq(part, "text")) - return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text"); + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_TEXT_CLASS, obj, "efl.text"); else if (eina_streq(part, "icon")) - return ELM_PART_IMPLEMENT(EFL_UI_LIST_DEFAULT_ITEM_PART_ICON_CLASS, obj, "efl.icon"); - else if (eina_streq(part, "end")) - return ELM_PART_IMPLEMENT(EFL_UI_LIST_DEFAULT_ITEM_PART_END_CLASS, obj, "efl.end"); + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_ICON_CLASS, obj, "efl.icon"); + else if (eina_streq(part, "extra")) + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_EXTRA_CLASS, obj, "efl.extra"); return efl_part_get(efl_super(obj, MY_CLASS), part); } -/* Efl.Part end */ /* Internal EO APIs and hidden overrides */ #define EFL_UI_LIST_DEFAULT_ITEM_EXTRA_OPS \ diff --git a/src/lib/elementary/efl_ui_list_default_item.eo b/src/lib/elementary/efl_ui_list_default_item.eo index 5ea4d2e44a..ee4e770f5d 100644 --- a/src/lib/elementary/efl_ui_list_default_item.eo +++ b/src/lib/elementary/efl_ui_list_default_item.eo @@ -9,6 +9,13 @@ class @beta Efl.Ui.List_Default_Item extends Efl.Ui.List_Item implements text and contents can be appliable by efl_text, efl_content or efl_part APIs.]] data: null; + parts { + text: Efl.Ui.Item_Part_Text; [[The text part for list default item.]] + icon: Efl.Ui.Item_Part_Icon; [[The icon content part for list default item. + icon part is the left-side content of list item.]] + extra: Efl.Ui.Item_Part_Extra; [[The extra content part for list default item. + extra part is the right-side content of list item.]] + } implements { //Efl.Object Efl.Object.finalize; diff --git a/src/lib/elementary/efl_ui_list_default_item_part_end.eo b/src/lib/elementary/efl_ui_list_default_item_part_end.eo deleted file mode 100644 index 9ff2d1160e..0000000000 --- a/src/lib/elementary/efl_ui_list_default_item_part_end.eo +++ /dev/null @@ -1,9 +0,0 @@ -class @beta Efl.Ui.List_Default_Item_Part_End extends Efl.Ui.Layout_Part implements Efl.Content -{ - [[List Default Item internal content of end part class]] - data: null; - implements { - Efl.Content.content { get; set; } - Efl.Content.content_unset; - } -} diff --git a/src/lib/elementary/efl_ui_list_default_item_part_icon.eo b/src/lib/elementary/efl_ui_list_default_item_part_icon.eo deleted file mode 100644 index 232b0d95b1..0000000000 --- a/src/lib/elementary/efl_ui_list_default_item_part_icon.eo +++ /dev/null @@ -1,9 +0,0 @@ -class @beta Efl.Ui.List_Default_Item_Part_Icon extends Efl.Ui.Layout_Part implements Efl.Content -{ - [[List Default Item internal content of icon part class]] - data: null; - implements { - Efl.Content.content { get; set; } - Efl.Content.content_unset; - } -} diff --git a/src/lib/elementary/efl_ui_list_empty_item.c b/src/lib/elementary/efl_ui_list_empty_item.c index bc4aab1b95..8df9b78685 100644 --- a/src/lib/elementary/efl_ui_list_empty_item.c +++ b/src/lib/elementary/efl_ui_list_empty_item.c @@ -44,7 +44,7 @@ _efl_ui_list_empty_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, c { EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); if (eina_streq(part, "content")) - return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.content"); + return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_CONTENT_CLASS, obj, "efl.content"); return efl_part_get(efl_super(obj, MY_CLASS), part); } diff --git a/src/lib/elementary/efl_ui_list_empty_item.eo b/src/lib/elementary/efl_ui_list_empty_item.eo index 070b60531f..a656c75537 100644 --- a/src/lib/elementary/efl_ui_list_empty_item.eo +++ b/src/lib/elementary/efl_ui_list_empty_item.eo @@ -5,6 +5,11 @@ class @beta Efl.Ui.List_Empty_Item extends Efl.Ui.List_Item implements Efl.Conte thus user can decorate item by filling the swallow with any kind of container.]] data: null; + parts { + content: Efl.Ui.Item_Part_Content; [[the content part for list empty item. + the content part is empty slot for user customizing. + fill the place with container widget such as layout, box, table.]] + } implements { //Efl.Object Efl.Object.finalize; diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 87e1b21c43..6aaa474eec 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -115,16 +115,16 @@ pub_eo_files = [ 'efl_ui_list_view.eo', 'efl_ui_list_view_model.eo', 'efl_ui_list_view_pan.eo', + 'efl_ui_item_part_text.eo', + 'efl_ui_item_part_icon.eo', + 'efl_ui_item_part_extra.eo', + 'efl_ui_item_part_content.eo', 'efl_ui_item.eo', 'efl_ui_list_item.eo', - 'efl_ui_list_default_item_part_icon.eo', - 'efl_ui_list_default_item_part_end.eo', 'efl_ui_list_default_item.eo', 'efl_ui_list_empty_item.eo', 'efl_ui_list.eo', 'efl_ui_grid_item.eo', - 'efl_ui_grid_default_item_part_icon.eo', - 'efl_ui_grid_default_item_part_end.eo', 'efl_ui_grid_default_item.eo', 'efl_ui_grid.eo', 'efl_ui_panes_part.eo',