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)
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 4fa1ee7..fec2e8e 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";
180 rel2.to: "icon_area"; 180 rel2.to: "icon_area";
181 } 181 }
182 } 182 }
183 swallow { "efl.end"; 183 swallow { "efl.extra";
184 clip_to: "icon_area"; 184 clip_to: "icon_area";
185 desc { "default"; 185 desc { "default";
186 fixed: 1 1; 186 fixed: 1 1;
diff --git a/data/elementary/themes/edc/efl/list.edc b/data/elementary/themes/edc/efl/list.edc
index ca3c5b4..e10c64b 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";
99 rel1.to_x: "efl.icon"; 99 rel1.to_x: "efl.icon";
100 rel2.offset: -3 -3; 100 rel2.offset: -3 -3;
101 rel2.relative: 0.0 1.0; 101 rel2.relative: 0.0 1.0;
102 rel2.to_x: "efl.end"; 102 rel2.to_x: "efl.extra";
103 color: FN_COL_DEFAULT; 103 color: FN_COL_DEFAULT;
104 color_class: "list_item"; 104 color_class: "list_item";
105 text { font: FN; size: 10; 105 text { font: FN; size: 10;
@@ -179,7 +179,7 @@ group { "efl/list_item";
179 rel2.offset: 2 -3; 179 rel2.offset: 2 -3;
180 } 180 }
181 } 181 }
182 swallow { "efl.end"; 182 swallow { "efl.extra";
183 desc { "default"; 183 desc { "default";
184 fixed: 1 0; 184 fixed: 1 0;
185 align: 1.0 0.5; 185 align: 1.0 0.5;
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 614ee74..e3fb705 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -80,16 +80,16 @@ elm_public_eolian_files = \
80 lib/elementary/efl_ui_list_view.eo \ 80 lib/elementary/efl_ui_list_view.eo \
81 lib/elementary/efl_ui_list_view_model.eo \ 81 lib/elementary/efl_ui_list_view_model.eo \
82 lib/elementary/efl_ui_list_view_pan.eo \ 82 lib/elementary/efl_ui_list_view_pan.eo \
83 lib/elementary/efl_ui_item_part_text.eo \
84 lib/elementary/efl_ui_item_part_icon.eo \
85 lib/elementary/efl_ui_item_part_extra.eo \
86 lib/elementary/efl_ui_item_part_content.eo \
83 lib/elementary/efl_ui_item.eo \ 87 lib/elementary/efl_ui_item.eo \
84 lib/elementary/efl_ui_list_item.eo \ 88 lib/elementary/efl_ui_list_item.eo \
85 lib/elementary/efl_ui_list_default_item_part_icon.eo \
86 lib/elementary/efl_ui_list_default_item_part_end.eo \
87 lib/elementary/efl_ui_list_default_item.eo \ 89 lib/elementary/efl_ui_list_default_item.eo \
88 lib/elementary/efl_ui_list_empty_item.eo \ 90 lib/elementary/efl_ui_list_empty_item.eo \
89 lib/elementary/efl_ui_list.eo \ 91 lib/elementary/efl_ui_list.eo \
90 lib/elementary/efl_ui_grid_item.eo \ 92 lib/elementary/efl_ui_grid_item.eo \
91 lib/elementary/efl_ui_grid_default_item_part_icon.eo \
92 lib/elementary/efl_ui_grid_default_item_part_end.eo \
93 lib/elementary/efl_ui_grid_default_item.eo \ 93 lib/elementary/efl_ui_grid_default_item.eo \
94 lib/elementary/efl_ui_grid.eo \ 94 lib/elementary/efl_ui_grid.eo \
95 lib/elementary/efl_ui_panes_part.eo \ 95 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 2f4e9c9..f3c29e9 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)
172 172
173 check = efl_add(EFL_UI_CHECK_CLASS, item); 173 check = efl_add(EFL_UI_CHECK_CLASS, item);
174 if ((i % 3) == 0) 174 if ((i % 3) == 0)
175 efl_content_set(efl_part(item, "end"), check); 175 efl_content_set(efl_part(item, "extra"), check);
176 else if ((i % 3) == 1) 176 else if ((i % 3) == 1)
177 efl_content_set(efl_part(item, "icon"), check); 177 efl_content_set(efl_part(item, "icon"), check);
178 else 178 else
diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index 4fa8c3e..07075d2 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -334,16 +334,16 @@ typedef Eo Efl_Ui_Focus_Manager;
334# include <efl_ui_slider.eo.h> 334# include <efl_ui_slider.eo.h>
335# include <efl_ui_slider_interval.eo.h> 335# include <efl_ui_slider_interval.eo.h>
336# include <efl_ui_layout_factory.eo.h> 336# include <efl_ui_layout_factory.eo.h>
337# include <efl_ui_item_part_text.eo.h>
338# include <efl_ui_item_part_icon.eo.h>
339# include <efl_ui_item_part_extra.eo.h>
340# include <efl_ui_item_part_content.eo.h>
337# include <efl_ui_item.eo.h> 341# include <efl_ui_item.eo.h>
338# include <efl_ui_list_item.eo.h> 342# include <efl_ui_list_item.eo.h>
339# include <efl_ui_list_default_item_part_icon.eo.h>
340# include <efl_ui_list_default_item_part_end.eo.h>
341# include <efl_ui_list_default_item.eo.h> 343# include <efl_ui_list_default_item.eo.h>
342# include <efl_ui_list_empty_item.eo.h> 344# include <efl_ui_list_empty_item.eo.h>
343# include <efl_ui_list.eo.h> 345# include <efl_ui_list.eo.h>
344# include <efl_ui_grid_item.eo.h> 346# include <efl_ui_grid_item.eo.h>
345# include <efl_ui_grid_default_item_part_icon.eo.h>
346# include <efl_ui_grid_default_item_part_end.eo.h>
347# include <efl_ui_grid_default_item.eo.h> 347# include <efl_ui_grid_default_item.eo.h>
348# include <efl_ui_grid.eo.h> 348# include <efl_ui_grid.eo.h>
349# include <efl_ui_list_view_types.eot.h> 349# 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 d088429..65d2c24 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 @@
8#include <Elementary.h> 8#include <Elementary.h>
9 9
10#include "elm_priv.h" 10#include "elm_priv.h"
11#include "efl_ui_grid_default_item_part_icon.eo.h"
12#include "efl_ui_grid_default_item_part_end.eo.h"
13#include "elm_part_helper.h" 11#include "elm_part_helper.h"
14 12
15#define MY_CLASS EFL_UI_GRID_DEFAULT_ITEM_CLASS 13#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")
42ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void) 40ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void)
43ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void) 41ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void)
44ELM_PART_CONTENT_DEFAULT_GET(efl_ui_grid_default_item, "efl.icon") 42ELM_PART_CONTENT_DEFAULT_GET(efl_ui_grid_default_item, "efl.icon")
45ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void 43ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_grid_default_item, void)
46)
47
48Eina_Bool
49_efl_ui_grid_default_item_part_icon_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
50{
51 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
52 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
53}
54
55Efl_Gfx_Entity *
56_efl_ui_grid_default_item_part_icon_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
57{
58 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
59 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
60}
61
62Efl_Gfx_Entity *
63_efl_ui_grid_default_item_part_icon_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
64{
65 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
66 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
67}
68#include "efl_ui_grid_default_item_part_icon.eo.c"
69
70Eina_Bool
71_efl_ui_grid_default_item_part_end_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
72{
73 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
74 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
75}
76
77Efl_Gfx_Entity *
78_efl_ui_grid_default_item_part_end_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
79{
80 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
81 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
82}
83
84Efl_Gfx_Entity *
85_efl_ui_grid_default_item_part_end_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
86{
87 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
88 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
89}
90#include "efl_ui_grid_default_item_part_end.eo.c"
91 44
92EOLIAN static Efl_Object * 45EOLIAN static Efl_Object *
93_efl_ui_grid_default_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part) 46_efl_ui_grid_default_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part)
94{ 47{
95 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); 48 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
96 if (eina_streq(part, "text")) 49 if (eina_streq(part, "text"))
97 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text"); 50 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_TEXT_CLASS, obj, "efl.text");
98 else if (eina_streq(part, "icon")) 51 else if (eina_streq(part, "icon"))
99 return ELM_PART_IMPLEMENT(EFL_UI_GRID_DEFAULT_ITEM_PART_ICON_CLASS, obj, "efl.icon"); 52 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_ICON_CLASS, obj, "efl.icon");
100 else if (eina_streq(part, "end")) 53 else if (eina_streq(part, "extra"))
101 return ELM_PART_IMPLEMENT(EFL_UI_GRID_DEFAULT_ITEM_PART_END_CLASS, obj, "efl.end"); 54 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_EXTRA_CLASS, obj, "efl.extra");
102 55
103 return efl_part_get(efl_super(obj, MY_CLASS), part); 56 return efl_part_get(efl_super(obj, MY_CLASS), part);
104} 57}
diff --git a/src/lib/elementary/efl_ui_grid_default_item.eo b/src/lib/elementary/efl_ui_grid_default_item.eo
index 4cbe74e..9b3a0eb 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
11 @Efl.Content or @Efl.Part.]] 11 @Efl.Content or @Efl.Part.]]
12 data: null; 12 data: null;
13 parts { 13 parts {
14 icon: Efl.Ui.Grid_Default_Item_Part_Icon; [[]] 14 text: Efl.Ui.Item_Part_Text; [[The text part for grid default item.
15 end: Efl.Ui.Grid_Default_Item_Part_End; [[]] 15 text part is the caption of grid item.]]
16 icon: Efl.Ui.Item_Part_Icon; [[The icon content part for grid default item.
17 icon part is the main content of grid item.]]
18 end: Efl.Ui.Item_Part_Extra; [[The extra content part for grid default item.
19 extra part is the spare content of grid item.
20 you can swallow small badge widget such as check, radio.]]
16 } 21 }
17 implements { 22 implements {
18 //Efl.Object 23 //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 dc3b6df..0000000
--- a/src/lib/elementary/efl_ui_grid_default_item_part_end.eo
+++ /dev/null
@@ -1,9 +0,0 @@
1class @beta Efl.Ui.Grid_Default_Item_Part_End extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[Grid Default Item internal content of end part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
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 47e290b..0000000
--- a/src/lib/elementary/efl_ui_grid_default_item_part_icon.eo
+++ /dev/null
@@ -1,9 +0,0 @@
1class @beta Efl.Ui.Grid_Default_Item_Part_Icon extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[Grid Default Item internal content of icon part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_item.c b/src/lib/elementary/efl_ui_item.c
index 65f488e..3f87832 100644
--- a/src/lib/elementary/efl_ui_item.c
+++ b/src/lib/elementary/efl_ui_item.c
@@ -9,12 +9,137 @@
9 9
10#include "elm_priv.h" 10#include "elm_priv.h"
11#include "efl_ui_item_private.h" 11#include "efl_ui_item_private.h"
12//part
13#include "efl_ui_item_part_text.eo.h"
14#include "efl_ui_item_part_icon.eo.h"
15#include "efl_ui_item_part_extra.eo.h"
16#include "efl_ui_item_part_content.eo.h"
17#include "elm_part_helper.h"
12 18
13#define MY_CLASS EFL_UI_ITEM_CLASS 19#define MY_CLASS EFL_UI_ITEM_CLASS
14#define MY_CLASS_PFX efl_ui_item 20#define MY_CLASS_PFX efl_ui_item
15 21
16#define MY_CLASS_NAME "Efl.Ui.Item" 22#define MY_CLASS_NAME "Efl.Ui.Item"
17 23
24/* Efl.Part */
25EOLIAN static void
26_efl_ui_item_part_text_efl_text_text_set(Eo *obj, void *pd EINA_UNUSED, const char *text)
27{
28 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
29 efl_text_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), text);
30
31 efl_layout_signal_emit(wd->obj, "efl,state,text,set", "efl");
32 elm_layout_sizing_eval(wd->obj);
33}
34
35EOLIAN static const char*
36_efl_ui_item_part_text_efl_text_text_get(const Eo *obj, void *pd EINA_UNUSED)
37{
38 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
39 return efl_text_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
40}
41
42EOLIAN static void
43_efl_ui_item_part_text_efl_text_markup_markup_set(Eo *obj, void *pd EINA_UNUSED, const char *markup)
44{
45 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
46 efl_text_markup_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), markup);
47
48 efl_layout_signal_emit(obj, "efl,state,text,set", "efl");
49 elm_layout_sizing_eval(obj);
50}
51
52EOLIAN static const char*
53_efl_ui_item_part_text_efl_text_markup_markup_get(const Eo *obj, void *pd EINA_UNUSED)
54{
55 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
56 return efl_text_markup_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
57}
58
59EOLIAN static const char *
60_efl_ui_item_part_text_efl_ui_l10n_l10n_text_get(const Eo *obj, void *_pd EINA_UNUSED, const char **domain)
61{
62 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
63 return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
64}
65
66EOLIAN static void
67_efl_ui_item_part_text_efl_ui_l10n_l10n_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *text, const char *domain)
68{
69 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
70 elm_widget_part_translatable_text_set(pd->obj, pd->part, text, domain);
71}
72#include "efl_ui_item_part_text.eo.c"
73
74/* Efl.Ui.List_Default_Item_Part_Icon */
75
76Eina_Bool
77_efl_ui_item_part_icon_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
78{
79 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
80 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
81}
82
83Efl_Gfx_Entity *
84_efl_ui_item_part_icon_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
85{
86 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
87 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
88}
89
90Efl_Gfx_Entity *
91_efl_ui_item_part_icon_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
92{
93 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
94 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
95}
96#include "efl_ui_item_part_icon.eo.c"
97
98Eina_Bool
99_efl_ui_item_part_extra_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
100{
101 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
102 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
103}
104
105Efl_Gfx_Entity *
106_efl_ui_item_part_extra_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
107{
108 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
109 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
110}
111
112Efl_Gfx_Entity *
113_efl_ui_item_part_extra_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
114{
115 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
116 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
117}
118#include "efl_ui_item_part_extra.eo.c"
119
120Eina_Bool
121_efl_ui_item_part_content_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
122{
123 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
124 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
125}
126
127Efl_Gfx_Entity *
128_efl_ui_item_part_content_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
129{
130 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
131 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
132}
133
134Efl_Gfx_Entity *
135_efl_ui_item_part_content_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
136{
137 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
138 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
139}
140#include "efl_ui_item_part_content.eo.c"
141/* Efl.Part */
142
18static void 143static void
19_item_select(Eo *obj, Efl_Ui_Item_Data *pd) 144_item_select(Eo *obj, Efl_Ui_Item_Data *pd)
20{ 145{
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 0000000..010f850
--- /dev/null
+++ b/src/lib/elementary/efl_ui_item_part_content.eo
@@ -0,0 +1,9 @@
1class @beta Efl.Ui.Item_Part_Content extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[Item internal content part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
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 0000000..c6433fc
--- /dev/null
+++ b/src/lib/elementary/efl_ui_item_part_extra.eo
@@ -0,0 +1,9 @@
1class @beta Efl.Ui.Item_Part_Extra extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[Item internal content of extra part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
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 0000000..5c9a9e3
--- /dev/null
+++ b/src/lib/elementary/efl_ui_item_part_icon.eo
@@ -0,0 +1,9 @@
1class @beta Efl.Ui.Item_Part_Icon extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[Item internal content of icon part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
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 0000000..97fdc0e
--- /dev/null
+++ b/src/lib/elementary/efl_ui_item_part_text.eo
@@ -0,0 +1,11 @@
1class @beta Efl.Ui.Item_Part_Text extends Efl.Ui.Layout_Part implements
2 Efl.Text, Efl.Text_Markup, Efl.Ui.L10n
3{
4 [[Item internal text part class]]
5 data: null;
6 implements {
7 Efl.Text.text { set; get; }
8 Efl.Text_Markup.markup { get; set; }
9 Efl.Ui.L10n.l10n_text { get; set; }
10 }
11}
diff --git a/src/lib/elementary/efl_ui_list_default_item.c b/src/lib/elementary/efl_ui_list_default_item.c
index 3fcf9e7..d95f988 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 @@
8#include <Elementary.h> 8#include <Elementary.h>
9 9
10#include "elm_priv.h" 10#include "elm_priv.h"
11#include "efl_ui_list_default_item_part_icon.eo.h"
12#include "efl_ui_list_default_item_part_end.eo.h"
13#include "elm_part_helper.h" 11#include "elm_part_helper.h"
14 12
15#define MY_CLASS EFL_UI_LIST_DEFAULT_ITEM_CLASS 13#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)
36 efl_destructor(efl_super(obj, MY_CLASS)); 34 efl_destructor(efl_super(obj, MY_CLASS));
37} 35}
38 36
39/* Efl.Part */
40
41ELM_PART_TEXT_DEFAULT_GET(efl_ui_list_default_item, "efl.text") 37ELM_PART_TEXT_DEFAULT_GET(efl_ui_list_default_item, "efl.text")
42ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void) 38ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void)
43ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void) 39ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void)
44ELM_PART_CONTENT_DEFAULT_GET(efl_ui_list_default_item, "efl.icon") 40ELM_PART_CONTENT_DEFAULT_GET(efl_ui_list_default_item, "efl.icon")
45ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void 41ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_list_default_item, void)
46)
47
48Eina_Bool
49_efl_ui_list_default_item_part_icon_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
50{
51 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
52 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
53}
54
55Efl_Gfx_Entity *
56_efl_ui_list_default_item_part_icon_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
57{
58 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
59 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
60}
61
62Efl_Gfx_Entity *
63_efl_ui_list_default_item_part_icon_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
64{
65 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
66 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
67}
68#include "efl_ui_list_default_item_part_icon.eo.c"
69
70Eina_Bool
71_efl_ui_list_default_item_part_end_efl_content_content_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Entity *content)
72{
73 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
74 return efl_content_set(efl_part(efl_super(wd->obj, MY_CLASS), wd->part), content);
75}
76
77Efl_Gfx_Entity *
78_efl_ui_list_default_item_part_end_efl_content_content_get(const Eo *obj, void *pd EINA_UNUSED)
79{
80 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
81 return efl_content_get(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
82}
83
84Efl_Gfx_Entity *
85_efl_ui_list_default_item_part_end_efl_content_content_unset(Eo *obj, void *pd EINA_UNUSED)
86{
87 Elm_Part_Data *wd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
88 return efl_content_unset(efl_part(efl_super(wd->obj, MY_CLASS), wd->part));
89}
90#include "efl_ui_list_default_item_part_end.eo.c"
91 42
92EOLIAN static Efl_Object * 43EOLIAN static Efl_Object *
93_efl_ui_list_default_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part) 44_efl_ui_list_default_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part)
94{ 45{
95 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); 46 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
96 if (eina_streq(part, "text")) 47 if (eina_streq(part, "text"))
97 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text"); 48 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_TEXT_CLASS, obj, "efl.text");
98 else if (eina_streq(part, "icon")) 49 else if (eina_streq(part, "icon"))
99 return ELM_PART_IMPLEMENT(EFL_UI_LIST_DEFAULT_ITEM_PART_ICON_CLASS, obj, "efl.icon"); 50 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_ICON_CLASS, obj, "efl.icon");
100 else if (eina_streq(part, "end")) 51 else if (eina_streq(part, "extra"))
101 return ELM_PART_IMPLEMENT(EFL_UI_LIST_DEFAULT_ITEM_PART_END_CLASS, obj, "efl.end"); 52 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_EXTRA_CLASS, obj, "efl.extra");
102 53
103 return efl_part_get(efl_super(obj, MY_CLASS), part); 54 return efl_part_get(efl_super(obj, MY_CLASS), part);
104} 55}
105/* Efl.Part end */
106 56
107/* Internal EO APIs and hidden overrides */ 57/* Internal EO APIs and hidden overrides */
108#define EFL_UI_LIST_DEFAULT_ITEM_EXTRA_OPS \ 58#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 5ea4d2e..ee4e770 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
9 text and contents can be appliable by efl_text, 9 text and contents can be appliable by efl_text,
10 efl_content or efl_part APIs.]] 10 efl_content or efl_part APIs.]]
11 data: null; 11 data: null;
12 parts {
13 text: Efl.Ui.Item_Part_Text; [[The text part for list default item.]]
14 icon: Efl.Ui.Item_Part_Icon; [[The icon content part for list default item.
15 icon part is the left-side content of list item.]]
16 extra: Efl.Ui.Item_Part_Extra; [[The extra content part for list default item.
17 extra part is the right-side content of list item.]]
18 }
12 implements { 19 implements {
13 //Efl.Object 20 //Efl.Object
14 Efl.Object.finalize; 21 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 9ff2d11..0000000
--- a/src/lib/elementary/efl_ui_list_default_item_part_end.eo
+++ /dev/null
@@ -1,9 +0,0 @@
1class @beta Efl.Ui.List_Default_Item_Part_End extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[List Default Item internal content of end part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
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 232b0d9..0000000
--- a/src/lib/elementary/efl_ui_list_default_item_part_icon.eo
+++ /dev/null
@@ -1,9 +0,0 @@
1class @beta Efl.Ui.List_Default_Item_Part_Icon extends Efl.Ui.Layout_Part implements Efl.Content
2{
3 [[List Default Item internal content of icon part class]]
4 data: null;
5 implements {
6 Efl.Content.content { get; set; }
7 Efl.Content.content_unset;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_list_empty_item.c b/src/lib/elementary/efl_ui_list_empty_item.c
index bc4aab1..8df9b78 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
44{ 44{
45 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); 45 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
46 if (eina_streq(part, "content")) 46 if (eina_streq(part, "content"))
47 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.content"); 47 return ELM_PART_IMPLEMENT(EFL_UI_ITEM_PART_CONTENT_CLASS, obj, "efl.content");
48 48
49 return efl_part_get(efl_super(obj, MY_CLASS), part); 49 return efl_part_get(efl_super(obj, MY_CLASS), part);
50} 50}
diff --git a/src/lib/elementary/efl_ui_list_empty_item.eo b/src/lib/elementary/efl_ui_list_empty_item.eo
index 070b605..a656c75 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
5 thus user can decorate item by filling the swallow with 5 thus user can decorate item by filling the swallow with
6 any kind of container.]] 6 any kind of container.]]
7 data: null; 7 data: null;
8 parts {
9 content: Efl.Ui.Item_Part_Content; [[the content part for list empty item.
10 the content part is empty slot for user customizing.
11 fill the place with container widget such as layout, box, table.]]
12 }
8 implements { 13 implements {
9 //Efl.Object 14 //Efl.Object
10 Efl.Object.finalize; 15 Efl.Object.finalize;
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
index 87e1b21..6aaa474 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -115,16 +115,16 @@ pub_eo_files = [
115 'efl_ui_list_view.eo', 115 'efl_ui_list_view.eo',
116 'efl_ui_list_view_model.eo', 116 'efl_ui_list_view_model.eo',
117 'efl_ui_list_view_pan.eo', 117 'efl_ui_list_view_pan.eo',
118 'efl_ui_item_part_text.eo',
119 'efl_ui_item_part_icon.eo',
120 'efl_ui_item_part_extra.eo',
121 'efl_ui_item_part_content.eo',
118 'efl_ui_item.eo', 122 'efl_ui_item.eo',
119 'efl_ui_list_item.eo', 123 'efl_ui_list_item.eo',
120 'efl_ui_list_default_item_part_icon.eo',
121 'efl_ui_list_default_item_part_end.eo',
122 'efl_ui_list_default_item.eo', 124 'efl_ui_list_default_item.eo',
123 'efl_ui_list_empty_item.eo', 125 'efl_ui_list_empty_item.eo',
124 'efl_ui_list.eo', 126 'efl_ui_list.eo',
125 'efl_ui_grid_item.eo', 127 'efl_ui_grid_item.eo',
126 'efl_ui_grid_default_item_part_icon.eo',
127 'efl_ui_grid_default_item_part_end.eo',
128 'efl_ui_grid_default_item.eo', 128 'efl_ui_grid_default_item.eo',
129 'efl_ui_grid.eo', 129 'efl_ui_grid.eo',
130 'efl_ui_panes_part.eo', 130 'efl_ui_panes_part.eo',