summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSangHyeon Jade Lee <sh10233.lee@samsung.com>2019-05-30 13:22:03 +0900
committerSangHyeon Jade Lee <sh10233.lee@samsung.com>2019-05-30 15:01:24 +0900
commit01cb1c32bd8be0854348740f93dcaa1c45a7dff7 (patch)
tree4c7c68e57e253994062c25c1a19246fcd51fb508
parent0e73a88133862b90a3dfdc56ac4073f8f8d18c3f (diff)
downloadefl-01cb1c32bd8be0854348740f93dcaa1c45a7dff7.tar.gz
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
-rw-r--r--data/elementary/themes/edc/efl/grid.edc2
-rw-r--r--data/elementary/themes/edc/efl/list.edc4
-rw-r--r--src/Makefile_Elementary.am8
-rw-r--r--src/examples/elementary/efl_ui_list_example_1.c2
-rw-r--r--src/lib/elementary/Elementary.h8
-rw-r--r--src/lib/elementary/efl_ui_grid_default_item.c57
-rw-r--r--src/lib/elementary/efl_ui_grid_default_item.eo9
-rw-r--r--src/lib/elementary/efl_ui_grid_default_item_part_end.eo9
-rw-r--r--src/lib/elementary/efl_ui_grid_default_item_part_icon.eo9
-rw-r--r--src/lib/elementary/efl_ui_item.c125
-rw-r--r--src/lib/elementary/efl_ui_item_part_content.eo9
-rw-r--r--src/lib/elementary/efl_ui_item_part_extra.eo9
-rw-r--r--src/lib/elementary/efl_ui_item_part_icon.eo9
-rw-r--r--src/lib/elementary/efl_ui_item_part_text.eo11
-rw-r--r--src/lib/elementary/efl_ui_list_default_item.c60
-rw-r--r--src/lib/elementary/efl_ui_list_default_item.eo7
-rw-r--r--src/lib/elementary/efl_ui_list_default_item_part_end.eo9
-rw-r--r--src/lib/elementary/efl_ui_list_default_item_part_icon.eo9
-rw-r--r--src/lib/elementary/efl_ui_list_empty_item.c2
-rw-r--r--src/lib/elementary/efl_ui_list_empty_item.eo5
-rw-r--r--src/lib/elementary/meson.build8
21 files changed, 209 insertions, 162 deletions
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 <efl_ui_slider.eo.h>
# include <efl_ui_slider_interval.eo.h>
# include <efl_ui_layout_factory.eo.h>
+# 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 <efl_ui_item.eo.h>
# include <efl_ui_list_item.eo.h>
-# include <efl_ui_list_default_item_part_icon.eo.h>
-# include <efl_ui_list_default_item_part_end.eo.h>
# include <efl_ui_list_default_item.eo.h>
# include <efl_ui_list_empty_item.eo.h>
# include <efl_ui_list.eo.h>
# include <efl_ui_grid_item.eo.h>
-# include <efl_ui_grid_default_item_part_icon.eo.h>
-# include <efl_ui_grid_default_item_part_end.eo.h>
# include <efl_ui_grid_default_item.eo.h>
# include <efl_ui_grid.eo.h>
# include <efl_ui_list_view_types.eot.h>
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 <Elementary.h>
#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 <Elementary.h>
#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',