summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaehyun Cho <jae_hyun.cho@samsung.com>2018-11-20 13:56:37 +0900
committerJaehyun Cho <jae_hyun.cho@samsung.com>2018-11-20 13:56:37 +0900
commit4f9c8d524c77fdd9eed30dc9ce211e0037efb9d4 (patch)
tree49924466e10d695fafc5edfbf2a3ff1cd386af69
parent0611620301b3ada285bc48fc801cac2c5ba3e0a7 (diff)
efl_ui_theme: Introduce Efl.Ui.Theme class
Summary: Efl.Ui.Theme class is required to support language bindings. Efl.Ui.Theme works based on current elm_theme features. This patch fixes T7357. Reviewers: segfaultxavi, cedric, lauromoura, woohyun, zmike, SanghyeonLee Reviewed By: segfaultxavi, SanghyeonLee Subscribers: SanghyeonLee, herdsman, #reviewers, #committers Tags: #efl Maniphest Tasks: T7357 Differential Revision: https://phab.enlightenment.org/D7244
-rw-r--r--src/Makefile_Elementary.am1
-rw-r--r--src/examples/elementary.mk11
-rw-r--r--src/examples/elementary/efl_ui_theme_example.edc190
-rw-r--r--src/examples/elementary/efl_ui_theme_example_01.c84
-rw-r--r--src/examples/elementary/efl_ui_theme_example_02.c84
-rw-r--r--src/lib/elementary/Efl_Ui.h1
-rw-r--r--src/lib/elementary/Elementary.h1
-rw-r--r--src/lib/elementary/efl_ui.eot4
-rw-r--r--src/lib/elementary/efl_ui_button.c6
-rw-r--r--src/lib/elementary/efl_ui_calendar.c6
-rw-r--r--src/lib/elementary/efl_ui_check.c14
-rw-r--r--src/lib/elementary/efl_ui_clock.c6
-rw-r--r--src/lib/elementary/efl_ui_flip.c6
-rw-r--r--src/lib/elementary/efl_ui_image.c6
-rw-r--r--src/lib/elementary/efl_ui_image_zoomable.c6
-rw-r--r--src/lib/elementary/efl_ui_layout.c32
-rw-r--r--src/lib/elementary/efl_ui_layout.eo4
-rw-r--r--src/lib/elementary/efl_ui_list.c10
-rw-r--r--src/lib/elementary/efl_ui_list_default_item.c4
-rw-r--r--src/lib/elementary/efl_ui_list_empty_item.c4
-rw-r--r--src/lib/elementary/efl_ui_nstate.c6
-rw-r--r--src/lib/elementary/efl_ui_panes.c6
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c14
-rw-r--r--src/lib/elementary/efl_ui_radio.c14
-rw-r--r--src/lib/elementary/efl_ui_scroller.c6
-rw-r--r--src/lib/elementary/efl_ui_slider.c8
-rw-r--r--src/lib/elementary/efl_ui_spin_button.c8
-rw-r--r--src/lib/elementary/efl_ui_tab_bar.c4
-rw-r--r--src/lib/elementary/efl_ui_table.c6
-rw-r--r--src/lib/elementary/efl_ui_text.c6
-rw-r--r--src/lib/elementary/efl_ui_textpath.c6
-rw-r--r--src/lib/elementary/efl_ui_theme.eo71
-rw-r--r--src/lib/elementary/efl_ui_widget.c30
-rw-r--r--src/lib/elementary/efl_ui_widget.eo6
-rw-r--r--src/lib/elementary/efl_ui_win.c18
-rw-r--r--src/lib/elementary/elc_combobox.c8
-rw-r--r--src/lib/elementary/elc_ctxpopup.c6
-rw-r--r--src/lib/elementary/elc_fileselector.c6
-rw-r--r--src/lib/elementary/elc_fileselector_button.c8
-rw-r--r--src/lib/elementary/elc_fileselector_entry.c8
-rw-r--r--src/lib/elementary/elc_hoversel.c8
-rw-r--r--src/lib/elementary/elc_multibuttonentry.c6
-rw-r--r--src/lib/elementary/elc_naviframe.c4
-rw-r--r--src/lib/elementary/elc_player.c6
-rw-r--r--src/lib/elementary/elc_popup.c4
-rw-r--r--src/lib/elementary/elm_actionslider.c8
-rw-r--r--src/lib/elementary/elm_box.c8
-rw-r--r--src/lib/elementary/elm_calendar.c6
-rw-r--r--src/lib/elementary/elm_clock.c6
-rw-r--r--src/lib/elementary/elm_code_widget.c6
-rw-r--r--src/lib/elementary/elm_colorselector.c8
-rw-r--r--src/lib/elementary/elm_conform.c6
-rw-r--r--src/lib/elementary/elm_dayselector.c6
-rw-r--r--src/lib/elementary/elm_diskselector.c6
-rw-r--r--src/lib/elementary/elm_entry.c10
-rw-r--r--src/lib/elementary/elm_flipselector.c8
-rw-r--r--src/lib/elementary/elm_gengrid.c10
-rw-r--r--src/lib/elementary/elm_genlist.c10
-rw-r--r--src/lib/elementary/elm_grid.c6
-rw-r--r--src/lib/elementary/elm_hover.c6
-rw-r--r--src/lib/elementary/elm_icon.c6
-rw-r--r--src/lib/elementary/elm_index.c6
-rw-r--r--src/lib/elementary/elm_label.c8
-rw-r--r--src/lib/elementary/elm_list.c6
-rw-r--r--src/lib/elementary/elm_main.c2
-rw-r--r--src/lib/elementary/elm_map.c8
-rw-r--r--src/lib/elementary/elm_mapbuf.c6
-rw-r--r--src/lib/elementary/elm_menu.c6
-rw-r--r--src/lib/elementary/elm_notify.c8
-rw-r--r--src/lib/elementary/elm_panel.c8
-rw-r--r--src/lib/elementary/elm_photo.c6
-rw-r--r--src/lib/elementary/elm_plug.c6
-rw-r--r--src/lib/elementary/elm_priv.h14
-rw-r--r--src/lib/elementary/elm_route.c6
-rw-r--r--src/lib/elementary/elm_scroller.c6
-rw-r--r--src/lib/elementary/elm_segment_control.c6
-rw-r--r--src/lib/elementary/elm_separator.c6
-rw-r--r--src/lib/elementary/elm_slider.c10
-rw-r--r--src/lib/elementary/elm_spinner.c8
-rw-r--r--src/lib/elementary/elm_table.c6
-rw-r--r--src/lib/elementary/elm_theme.c294
-rw-r--r--src/lib/elementary/elm_toolbar.c10
-rw-r--r--src/lib/elementary/elm_widget.h8
-rw-r--r--src/lib/elementary/meson.build1
84 files changed, 953 insertions, 361 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 2f4f9c0..dd05b9d 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -110,6 +110,7 @@ elm_public_eolian_files = \
110 lib/elementary/efl_access_value.eo \ 110 lib/elementary/efl_access_value.eo \
111 lib/elementary/efl_access_widget_action.eo \ 111 lib/elementary/efl_access_widget_action.eo \
112 lib/elementary/efl_access_window.eo \ 112 lib/elementary/efl_access_window.eo \
113 lib/elementary/efl_ui_theme.eo \
113 lib/elementary/efl_config_global.eo \ 114 lib/elementary/efl_config_global.eo \
114 lib/elementary/elm_code_widget.eo \ 115 lib/elementary/elm_code_widget.eo \
115 lib/elementary/efl_selection.eo \ 116 lib/elementary/efl_selection.eo \
diff --git a/src/examples/elementary.mk b/src/examples/elementary.mk
index e928d9d..0d81725 100644
--- a/src/examples/elementary.mk
+++ b/src/examples/elementary.mk
@@ -123,7 +123,9 @@ elementary/efl_ui_list_example_1.c \
123elementary/efl_ui_list_view_example_1.c \ 123elementary/efl_ui_list_view_example_1.c \
124elementary/efl_ui_list_view_example_2.c \ 124elementary/efl_ui_list_view_example_2.c \
125elementary/efl_ui_list_view_example_3.c \ 125elementary/efl_ui_list_view_example_3.c \
126elementary/efl_canvas_layout_text.c 126elementary/efl_canvas_layout_text.c \
127elementary/efl_ui_theme_example_01.c \
128elementary/efl_ui_theme_example_02.c
127 129
128ELM_SRCS += \ 130ELM_SRCS += \
129elementary/bg_cxx_example_01.cc \ 131elementary/bg_cxx_example_01.cc \
@@ -156,7 +158,8 @@ elementary/layout_example.edc \
156elementary/codegen_example.edc \ 158elementary/codegen_example.edc \
157elementary/efl_ui_list_view_example.edc \ 159elementary/efl_ui_list_view_example.edc \
158elementary/prefs_example_03.edc \ 160elementary/prefs_example_03.edc \
159elementary/efl_canvas_layout_text.edc 161elementary/efl_canvas_layout_text.edc \
162elementary/efl_ui_theme_example.edc
160 163
161ELM_EPCS = \ 164ELM_EPCS = \
162elementary/prefs_example_01.epc \ 165elementary/prefs_example_01.epc \
@@ -339,7 +342,9 @@ elementary/efl_ui_list_example_1 \
339elementary/efl_ui_list_view_example_1 \ 342elementary/efl_ui_list_view_example_1 \
340elementary/efl_ui_list_view_example_2 \ 343elementary/efl_ui_list_view_example_2 \
341elementary/efl_ui_list_view_example_3 \ 344elementary/efl_ui_list_view_example_3 \
342elementary/efl_canvas_layout_text 345elementary/efl_canvas_layout_text \
346elementary/efl_ui_theme_example_01 \
347elementary/efl_ui_theme_example_02
343#benchmark3d 348#benchmark3d
344#sphere-hunter 349#sphere-hunter
345 350
diff --git a/src/examples/elementary/efl_ui_theme_example.edc b/src/examples/elementary/efl_ui_theme_example.edc
new file mode 100644
index 0000000..341663a
--- /dev/null
+++ b/src/examples/elementary/efl_ui_theme_example.edc
@@ -0,0 +1,190 @@
1collections {
2 group { "efl/button:custom";
3 alias: "efl/button";
4 parts {
5 rect { "border";
6 desc { "default";
7 color: 0 0 0 255;
8 }
9 desc { "in";
10 color: 50 180 180 255;
11 }
12 }
13 rect { "base";
14 mouse_events: 1;
15 desc { "default";
16 rel1.to: "border";
17 rel1.offset: 1 1;
18 rel2.to: "border";
19 rel2.offset: -2 -2;
20 }
21 desc { "disabled";
22 inherit: "default";
23 color: 230 230 230 255;
24 }
25 }
26 swallow { "efl.swallow.content";
27 mouse_events: 0;
28 desc { "default";
29 fixed: 1 0;
30 hid;
31 align: 0.0 0.5;
32 rel1.offset: 4 4;
33 rel2.offset: 3 -5;
34 rel2.relative: 0.0 1.0;
35 }
36 desc { "visible";
37 inherit: "default";
38 vis;
39 aspect: 1.0 1.0;
40 aspect_preference: VERTICAL;
41 rel2.offset: 4 -5;
42 }
43 desc { "icononly";
44 inherit: "default";
45 fixed: 0 0;
46 vis;
47 align: 0.5 0.5;
48 aspect: 1.0 1.0;
49 aspect_preference: VERTICAL;
50 rel2.offset: -5 -5;
51 rel2.relative: 1.0 1.0;
52 }
53 }
54 text { "efl.text";
55 mouse_events: 0;
56 scale: 1;
57 desc { "default";
58 vis;
59 rel1.to_x: "efl.swallow.content";
60 rel1.relative: 1.0 0.0;
61 rel1.offset: 0 4;
62 rel2.offset: -5 -5;
63 color: 0 0 0 255;
64 text {
65 font: "Sans";
66 size: 10;
67 min: 0 0;
68 text_class: "button";
69 }
70 }
71 desc { "visible";
72 inherit: "default";
73 vis;
74 text.min: 1 1;
75 text.ellipsis: -1;
76 }
77 desc { "disabled";
78 inherit: "default";
79 }
80 desc { "disabled_visible";
81 inherit: "default";
82 vis;
83 text.min: 1 1;
84 text.ellipsis: -1;
85 }
86 }
87 programs {
88 program { "button_mouse_in";
89 signal: "mouse,in";
90 source: "base";
91 action: STATE_SET "in" 0.0;
92 target: "border";
93 }
94 program { "button_mouse_out";
95 signal: "mouse,out";
96 source: "base";
97 action: STATE_SET "default" 0.0;
98 target: "border";
99 }
100 program { "button_unclick";
101 signal: "mouse,up,1";
102 source: "base";
103 action: SIGNAL_EMIT "efl,action,click" "";
104 }
105 program { "button_click";
106 signal: "mouse,down,1";
107 source: "base";
108 }
109 program { "text_show";
110 signal: "efl,state,text,visible";
111 source: "efl";
112 script {
113 new st[31];
114 new Float:vl;
115 get_state(PART:"efl.swallow.content", st, 30, vl);
116 if (!strcmp(st, "icononly"))
117 set_state(PART:"efl.swallow.content", "visible", 0.0);
118 set_state(PART:"efl.text", "visible", 0.0);
119 }
120 }
121 program { "text_hide";
122 signal: "efl,state,text,hidden";
123 source: "efl";
124 script {
125 new st[31];
126 new Float:vl;
127 get_state(PART:"efl.swallow.content", st, 30, vl);
128 if (!strcmp(st, "visible"))
129 set_state(PART:"efl.swallow.content", "icononly", 0.0);
130 set_state(PART:"efl.text", "default", 0.0);
131 }
132 }
133 program { "icon_show";
134 signal: "efl,state,icon,visible";
135 source: "efl";
136 script {
137 new st[31];
138 new Float:vl;
139 get_state(PART:"efl.text", st, 30, vl);
140 if (!strcmp(st, "visible"))
141 set_state(PART:"efl.swallow.content", "visible", 0.0);
142 else
143 set_state(PART:"efl.swallow.content", "icononly", 0.0);
144 }
145 }
146 program { "icon_hide";
147 signal: "efl,state,icon,hidden";
148 source: "efl";
149 action: STATE_SET "default" 0.0;
150 target: "efl.swallow.content";
151 }
152 program { "disable";
153 signal: "efl,state,disabled";
154 source: "efl";
155 action: STATE_SET "disabled" 0.0;
156 target: "base";
157 after: "disable_text";
158 }
159 program { "disable_text";
160 script {
161 new st[31];
162 new Float:vl;
163 get_state(PART:"efl.text", st, 30, vl);
164 if (!strcmp(st, "visible"))
165 set_state(PART:"efl.text", "disabled_visible", 0.0);
166 else if (!strcmp(st, "default"))
167 set_state(PART:"efl.text", "disabled", 0.0);
168 }
169 }
170 program { "enable";
171 signal: "efl,state,enabled";
172 source: "efl";
173 action: STATE_SET "default" 0.0;
174 target: "base";
175 after: "enable_text";
176 }
177 program { "enable_text";
178 script {
179 new st[31];
180 new Float:vl;
181 get_state(PART:"efl.text", st, 30, vl);
182 if (!strcmp(st, "disabled_visible"))
183 set_state(PART:"efl.text", "visible", 0.0);
184 else if (!strcmp(st, "disabled"))
185 set_state(PART:"efl.text", "default", 0.0);
186 }
187 }
188 }
189 }
190}
diff --git a/src/examples/elementary/efl_ui_theme_example_01.c b/src/examples/elementary/efl_ui_theme_example_01.c
new file mode 100644
index 0000000..1c901a5
--- /dev/null
+++ b/src/examples/elementary/efl_ui_theme_example_01.c
@@ -0,0 +1,84 @@
1/*
2 * edje_cc efl_ui_theme_example.edc efl_ui_theme_example.edj
3 * gcc -o efl_ui_theme_example_01 efl_ui_theme_example_01.c `pkg-config --cflags --libs elementary`
4 */
5#define EFL_BETA_API_SUPPORT 1
6#define EFL_EO_API_SUPPORT 1
7
8#define EFL_UI_WIDGET_PROTECTED
9#include <Elementary.h>
10
11#define EXAMPLE_EDJ_FILE_PATH "./efl_ui_theme_example.edj"
12
13static void
14_btn_extension_clicked_cb(void *data EINA_UNUSED, const Efl_Event *event)
15{
16 static Eina_Bool loaded = EINA_TRUE;
17 Efl_Ui_Theme *default_theme;
18
19 default_theme = efl_ui_theme_default_get(efl_ui_theme_class_get());
20
21 if (loaded)
22 {
23 efl_ui_theme_extension_del(default_theme, EXAMPLE_EDJ_FILE_PATH);
24 efl_text_set(event->object, "Load extension");
25 }
26 else
27 {
28 efl_ui_theme_extension_add(default_theme, EXAMPLE_EDJ_FILE_PATH);
29 efl_text_set(event->object, "Unload extension");
30 }
31
32 loaded = !loaded;
33}
34
35EAPI_MAIN void
36efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
37{
38 Eo *win, *box;
39 Efl_Ui_Theme *default_theme;
40
41 elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
42
43 if (!ecore_file_exists(EXAMPLE_EDJ_FILE_PATH))
44 {
45 printf("efl_ui_theme_example.edj does not exist!\n"
46 "Please execute the following command first!\n"
47 "edje_cc efl_ui_theme_example.edc efl_ui_theme_example.edj\n");
48 efl_exit(0);
49 }
50
51 default_theme = efl_ui_theme_default_get(efl_ui_theme_class_get());
52 efl_ui_theme_extension_add(default_theme, EXAMPLE_EDJ_FILE_PATH);
53
54 win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
55 efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC),
56 efl_text_set(efl_added, "Efl.Ui.Theme example"),
57 efl_ui_win_autodel_set(efl_added, EINA_TRUE)
58 );
59
60 box = efl_add(EFL_UI_BOX_CLASS, win,
61 efl_content_set(win, efl_added));
62
63 efl_add(EFL_UI_BUTTON_CLASS, box,
64 efl_text_set(efl_added, "Unload extension"),
65 efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _btn_extension_clicked_cb, NULL),
66 efl_pack_end(box, efl_added));
67
68 efl_add(EFL_UI_BUTTON_CLASS, box,
69 efl_ui_widget_style_set(efl_added, "custom"),
70 efl_text_set(efl_added, "custom style"),
71 efl_pack_end(box, efl_added));
72
73 efl_add(EFL_UI_BUTTON_CLASS, box,
74 efl_text_set(efl_added, "default style"),
75 efl_pack_end(box, efl_added));
76
77 efl_add(EFL_UI_BUTTON_CLASS, box,
78 efl_ui_widget_style_set(efl_added, "anchor"),
79 efl_text_set(efl_added, "anchor style"),
80 efl_pack_end(box, efl_added));
81
82 efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 320));
83}
84EFL_MAIN()
diff --git a/src/examples/elementary/efl_ui_theme_example_02.c b/src/examples/elementary/efl_ui_theme_example_02.c
new file mode 100644
index 0000000..f742d1d
--- /dev/null
+++ b/src/examples/elementary/efl_ui_theme_example_02.c
@@ -0,0 +1,84 @@
1/*
2 * edje_cc efl_ui_theme_example.edc efl_ui_theme_example.edj
3 * gcc -o efl_ui_theme_example_02 efl_ui_theme_example_02.c `pkg-config --cflags --libs elementary`
4 */
5#define EFL_BETA_API_SUPPORT 1
6#define EFL_EO_API_SUPPORT 1
7
8#define EFL_UI_WIDGET_PROTECTED
9#include <Elementary.h>
10
11#define EXAMPLE_EDJ_FILE_PATH "./efl_ui_theme_example.edj"
12
13static void
14_btn_overlay_clicked_cb(void *data EINA_UNUSED, const Efl_Event *event)
15{
16 static Eina_Bool loaded = EINA_TRUE;
17 Efl_Ui_Theme *default_theme;
18
19 default_theme = efl_ui_theme_default_get(efl_ui_theme_class_get());
20
21 if (loaded)
22 {
23 efl_ui_theme_overlay_del(default_theme, EXAMPLE_EDJ_FILE_PATH);
24 efl_text_set(event->object, "Load overlay");
25 }
26 else
27 {
28 efl_ui_theme_overlay_add(default_theme, EXAMPLE_EDJ_FILE_PATH);
29 efl_text_set(event->object, "Unload overlay");
30 }
31
32 loaded = !loaded;
33}
34
35EAPI_MAIN void
36efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
37{
38 Eo *win, *box;
39 Efl_Ui_Theme *default_theme;
40
41 elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
42
43 if (!ecore_file_exists(EXAMPLE_EDJ_FILE_PATH))
44 {
45 printf("efl_ui_theme_example.edj does not exist!\n"
46 "Please execute the following command first!\n"
47 "edje_cc efl_ui_theme_example.edc efl_ui_theme_example.edj\n");
48 efl_exit(0);
49 }
50
51 default_theme = efl_ui_theme_default_get(efl_ui_theme_class_get());
52 efl_ui_theme_overlay_add(default_theme, EXAMPLE_EDJ_FILE_PATH);
53
54 win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
55 efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC),
56 efl_text_set(efl_added, "Efl.Ui.Theme example"),
57 efl_ui_win_autodel_set(efl_added, EINA_TRUE)
58 );
59
60 box = efl_add(EFL_UI_BOX_CLASS, win,
61 efl_content_set(win, efl_added));
62
63 efl_add(EFL_UI_BUTTON_CLASS, box,
64 efl_text_set(efl_added, "Unload overlay"),
65 efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _btn_overlay_clicked_cb, NULL),
66 efl_pack_end(box, efl_added));
67
68 efl_add(EFL_UI_BUTTON_CLASS, box,
69 efl_ui_widget_style_set(efl_added, "custom"),
70 efl_text_set(efl_added, "custom style"),
71 efl_pack_end(box, efl_added));
72
73 efl_add(EFL_UI_BUTTON_CLASS, box,
74 efl_text_set(efl_added, "default style"),
75 efl_pack_end(box, efl_added));
76
77 efl_add(EFL_UI_BUTTON_CLASS, box,
78 efl_ui_widget_style_set(efl_added, "anchor"),
79 efl_text_set(efl_added, "anchor style"),
80 efl_pack_end(box, efl_added));
81
82 efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 320));
83}
84EFL_MAIN()
diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h
index 511afab..57b9494 100644
--- a/src/lib/elementary/Efl_Ui.h
+++ b/src/lib/elementary/Efl_Ui.h
@@ -171,6 +171,7 @@ typedef Eo Efl_Ui_Focus_Manager;
171# include <efl_access_selection.eo.h> 171# include <efl_access_selection.eo.h>
172# include <efl_access_value.eo.h> 172# include <efl_access_value.eo.h>
173 173
174# include <efl_ui_theme.eo.h>
174# include <efl_config_global.eo.h> 175# include <efl_config_global.eo.h>
175# include <efl_ui_widget_part.eo.h> 176# include <efl_ui_widget_part.eo.h>
176# include <efl_ui_layout_part.eo.h> 177# include <efl_ui_layout_part.eo.h>
diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index f6dfa55..1c220a1 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -281,6 +281,7 @@ typedef Eo Efl_Ui_Focus_Manager;
281 281
282#ifdef EFL_EO_API_SUPPORT 282#ifdef EFL_EO_API_SUPPORT
283# include <efl_selection_types.eot.h> 283# include <efl_selection_types.eot.h>
284# include <efl_ui_theme.eo.h>
284# include <efl_config_global.eo.h> 285# include <efl_config_global.eo.h>
285# include <efl_ui_widget.eo.h> 286# include <efl_ui_widget.eo.h>
286# include <efl_ui_widget_part.eo.h> 287# include <efl_ui_widget_part.eo.h>
diff --git a/src/lib/elementary/efl_ui.eot b/src/lib/elementary/efl_ui.eot
index 3a0fa62..ce17980 100644
--- a/src/lib/elementary/efl_ui.eot
+++ b/src/lib/elementary/efl_ui.eot
@@ -1,9 +1,9 @@
1/* Efl.Ui enum and struct types */ 1/* Efl.Ui enum and struct types */
2 2
3enum Efl.Ui.Theme.Apply 3enum Efl.Ui.Theme_Apply_Result
4{ 4{
5 [[Return error code when setting the style on a widget.]] 5 [[Return error code when setting the style on a widget.]]
6 failed = 0, [[Failed to apply theme. The widget may become unusable.]] 6 fail = 0, [[Failed to apply theme. The widget may become unusable.]]
7 default = 1, [[Successfully applied the default style. The widget may 7 default = 1, [[Successfully applied the default style. The widget may
8 look different from the rest of the UI if a custom theme 8 look different from the rest of the UI if a custom theme
9 is in use, but it should be usable.]] 9 is in use, but it should be usable.]]
diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c
index a26be9c..1be677d 100644
--- a/src/lib/elementary/efl_ui_button.c
+++ b/src/lib/elementary/efl_ui_button.c
@@ -442,13 +442,13 @@ _icon_signal_emit(Evas_Object *obj)
442/* FIXME: replicated from elm_layout just because button's icon spot 442/* FIXME: replicated from elm_layout just because button's icon spot
443 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we 443 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
444 * can changed the theme API */ 444 * can changed the theme API */
445EOLIAN static Efl_Ui_Theme_Apply 445EOLIAN static Efl_Ui_Theme_Apply_Result
446_efl_ui_button_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED) 446_efl_ui_button_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED)
447{ 447{
448 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 448 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
449 449
450 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_BUTTON_LEGACY_CLASS)); 450 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_BUTTON_LEGACY_CLASS));
451 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 451 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
452 _icon_signal_emit(obj); 452 _icon_signal_emit(obj);
453 453
454 return int_ret; 454 return int_ret;
diff --git a/src/lib/elementary/efl_ui_calendar.c b/src/lib/elementary/efl_ui_calendar.c
index a2bd8fa..1e05e58 100644
--- a/src/lib/elementary/efl_ui_calendar.c
+++ b/src/lib/elementary/efl_ui_calendar.c
@@ -510,13 +510,13 @@ _spinner_buttons_add(Evas_Object *obj, Efl_Ui_Calendar_Data *sd)
510 } 510 }
511} 511}
512 512
513EOLIAN static Efl_Ui_Theme_Apply 513EOLIAN static Efl_Ui_Theme_Apply_Result
514_efl_ui_calendar_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Calendar_Data *sd) 514_efl_ui_calendar_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Calendar_Data *sd)
515{ 515{
516 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 516 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
517 517
518 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 518 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
519 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 519 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
520 520
521 _spinner_buttons_add(obj, sd); 521 _spinner_buttons_add(obj, sd);
522 522
diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c
index a034d7d..1b9a19b 100644
--- a/src/lib/elementary/efl_ui_check.c
+++ b/src/lib/elementary/efl_ui_check.c
@@ -135,16 +135,16 @@ _key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
135 return EINA_TRUE; 135 return EINA_TRUE;
136} 136}
137 137
138EOLIAN static Efl_Ui_Theme_Apply 138EOLIAN static Efl_Ui_Theme_Apply_Result
139_efl_ui_check_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Check_Data *sd EINA_UNUSED) 139_efl_ui_check_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Check_Data *sd EINA_UNUSED)
140{ 140{
141 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 141 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
142 142
143 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 143 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
144 144
145 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 145 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
146 146
147 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 147 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
148 148
149 if (elm_widget_is_legacy(obj)) 149 if (elm_widget_is_legacy(obj))
150 { 150 {
@@ -492,13 +492,13 @@ _icon_signal_emit(Evas_Object *obj)
492/* FIXME: replicated from elm_layout just because check's icon spot 492/* FIXME: replicated from elm_layout just because check's icon spot
493 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we 493 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
494 * can changed the theme API */ 494 * can changed the theme API */
495EOLIAN static Efl_Ui_Theme_Apply 495EOLIAN static Efl_Ui_Theme_Apply_Result
496_efl_ui_check_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED) 496_efl_ui_check_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED)
497{ 497{
498 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 498 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
499 499
500 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_CHECK_LEGACY_CLASS)); 500 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_CHECK_LEGACY_CLASS));
501 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 501 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
502 502
503 _icon_signal_emit(obj); 503 _icon_signal_emit(obj);
504 504
diff --git a/src/lib/elementary/efl_ui_clock.c b/src/lib/elementary/efl_ui_clock.c
index 13d4628..5f1d16c 100644
--- a/src/lib/elementary/efl_ui_clock.c
+++ b/src/lib/elementary/efl_ui_clock.c
@@ -531,10 +531,10 @@ _efl_ui_clock_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Clock_Data *sd)
531 evas_object_size_hint_max_set(obj, -1, -1); 531 evas_object_size_hint_max_set(obj, -1, -1);
532} 532}
533 533
534EOLIAN static Efl_Ui_Theme_Apply 534EOLIAN static Efl_Ui_Theme_Apply_Result
535_efl_ui_clock_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Clock_Data *sd) 535_efl_ui_clock_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Clock_Data *sd)
536{ 536{
537 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 537 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
538 538
539 Clock_Field *field; 539 Clock_Field *field;
540 char buf[BUFFER_SIZE]; 540 char buf[BUFFER_SIZE];
@@ -544,7 +544,7 @@ _efl_ui_clock_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Clock_Data *sd)
544 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 544 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
545 545
546 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 546 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
547 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 547 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
548 548
549 dt_mod = _dt_mod_init(); 549 dt_mod = _dt_mod_init();
550 if ((!dt_mod) || (!dt_mod->field_value_display)) return EINA_TRUE; 550 if ((!dt_mod) || (!dt_mod->field_value_display)) return EINA_TRUE;
diff --git a/src/lib/elementary/efl_ui_flip.c b/src/lib/elementary/efl_ui_flip.c
index 8149913..38e5aca 100644
--- a/src/lib/elementary/efl_ui_flip.c
+++ b/src/lib/elementary/efl_ui_flip.c
@@ -97,12 +97,12 @@ _sizing_eval(Evas_Object *obj)
97 evas_object_size_hint_max_set(obj, maxw, maxh); 97 evas_object_size_hint_max_set(obj, maxw, maxh);
98} 98}
99 99
100EOLIAN static Efl_Ui_Theme_Apply 100EOLIAN static Efl_Ui_Theme_Apply_Result
101_efl_ui_flip_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Flip_Data *sd EINA_UNUSED) 101_efl_ui_flip_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Flip_Data *sd EINA_UNUSED)
102{ 102{
103 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 103 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
104 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 104 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
105 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 105 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
106 106
107 _sizing_eval(obj); 107 _sizing_eval(obj);
108 108
diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c
index d440d14..88c35db 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -717,16 +717,16 @@ _efl_ui_image_efl_canvas_object_clip_set(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Ob
717 if (sd->prev_img) evas_object_clip_set(sd->prev_img, clip); 717 if (sd->prev_img) evas_object_clip_set(sd->prev_img, clip);
718} 718}
719 719
720EOLIAN static Efl_Ui_Theme_Apply 720EOLIAN static Efl_Ui_Theme_Apply_Result
721_efl_ui_image_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Image_Data *sd EINA_UNUSED) 721_efl_ui_image_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Image_Data *sd EINA_UNUSED)
722{ 722{
723 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 723 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
724 724
725 if (sd->stdicon) 725 if (sd->stdicon)
726 _elm_theme_object_icon_set(obj, sd->stdicon, elm_widget_style_get(obj)); 726 _elm_theme_object_icon_set(obj, sd->stdicon, elm_widget_style_get(obj));
727 727
728 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 728 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
729 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 729 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
730 730
731 _efl_ui_image_sizing_eval(obj); 731 _efl_ui_image_sizing_eval(obj);
732 732
diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c
index a11f217..1519150 100644
--- a/src/lib/elementary/efl_ui_image_zoomable.c
+++ b/src/lib/elementary/efl_ui_image_zoomable.c
@@ -923,17 +923,17 @@ _efl_ui_image_zoomable_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Image
923 return EINA_TRUE; 923 return EINA_TRUE;
924} 924}
925 925
926EOLIAN static Efl_Ui_Theme_Apply 926EOLIAN static Efl_Ui_Theme_Apply_Result
927_efl_ui_image_zoomable_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd) 927_efl_ui_image_zoomable_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd)
928{ 928{
929 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 929 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
930 Eina_Bool fdo = EINA_FALSE; 930 Eina_Bool fdo = EINA_FALSE;
931 931
932 if (sd->stdicon) 932 if (sd->stdicon)
933 _internal_efl_ui_image_zoomable_icon_set(obj, sd->stdicon, &fdo, EINA_TRUE); 933 _internal_efl_ui_image_zoomable_icon_set(obj, sd->stdicon, &fdo, EINA_TRUE);
934 934
935 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 935 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
936 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 936 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
937 937
938 efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj)); 938 efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj));
939 939
diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c
index 66ee479..0b46b4e 100644
--- a/src/lib/elementary/efl_ui_layout.c
+++ b/src/lib/elementary/efl_ui_layout.c
@@ -441,12 +441,12 @@ _efl_ui_layout_efl_ui_widget_on_disabled_update(Eo *obj, Efl_Ui_Layout_Data *_pd
441 return EINA_TRUE; 441 return EINA_TRUE;
442} 442}
443 443
444static Efl_Ui_Theme_Apply 444static Efl_Ui_Theme_Apply_Result
445_efl_ui_layout_theme_internal(Eo *obj, Efl_Ui_Layout_Data *sd) 445_efl_ui_layout_theme_internal(Eo *obj, Efl_Ui_Layout_Data *sd)
446{ 446{
447 Efl_Ui_Theme_Apply ret = EFL_UI_THEME_APPLY_FAILED; 447 Efl_Ui_Theme_Apply_Result ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
448 448
449 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 449 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
450 450
451 /* function already prints error messages, if any */ 451 /* function already prints error messages, if any */
452 if (!sd->file_set) 452 if (!sd->file_set)
@@ -462,21 +462,21 @@ _efl_ui_layout_theme_internal(Eo *obj, Efl_Ui_Layout_Data *sd)
462 efl_event_callback_legacy_call(obj, EFL_UI_LAYOUT_EVENT_THEME_CHANGED, NULL); 462 efl_event_callback_legacy_call(obj, EFL_UI_LAYOUT_EVENT_THEME_CHANGED, NULL);
463 463
464 if (!_visuals_refresh(obj, sd)) 464 if (!_visuals_refresh(obj, sd))
465 ret = EFL_UI_THEME_APPLY_FAILED; 465 ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
466 466
467 return ret; 467 return ret;
468} 468}
469 469
470EOLIAN static Efl_Ui_Theme_Apply 470EOLIAN static Efl_Ui_Theme_Apply_Result
471_efl_ui_layout_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Layout_Data *sd) 471_efl_ui_layout_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Layout_Data *sd)
472{ 472{
473 Efl_Ui_Theme_Apply theme_apply = EFL_UI_THEME_APPLY_FAILED; 473 Efl_Ui_Theme_Apply_Result theme_apply_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
474 474
475 theme_apply = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 475 theme_apply_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
476 if (!theme_apply) return EFL_UI_THEME_APPLY_FAILED; 476 if (!theme_apply_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
477 477
478 theme_apply &= _efl_ui_layout_theme_internal(obj, sd); 478 theme_apply_ret &= _efl_ui_layout_theme_internal(obj, sd);
479 return theme_apply; 479 return theme_apply_ret;
480} 480}
481 481
482EOLIAN static Eina_Bool 482EOLIAN static Eina_Bool
@@ -904,7 +904,7 @@ _efl_ui_layout_efl_file_mmap_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUS
904 efl_file_mmap_get(wd->resize_obj, file, group); 904 efl_file_mmap_get(wd->resize_obj, file, group);
905} 905}
906 906
907EOLIAN static Efl_Ui_Theme_Apply 907EOLIAN static Efl_Ui_Theme_Apply_Result
908_efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style) 908_efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style)
909{ 909{
910 Eina_Bool changed = EINA_FALSE; 910 Eina_Bool changed = EINA_FALSE;
@@ -912,7 +912,7 @@ _efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, con
912 if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj)) 912 if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj))
913 { 913 {
914 ERR("Efl.Ui.Layout_theme can only be set before finalize!"); 914 ERR("Efl.Ui.Layout_theme can only be set before finalize!");
915 return EFL_UI_THEME_APPLY_FAILED; 915 return EFL_UI_THEME_APPLY_RESULT_FAIL;
916 } 916 }
917 917
918 if (sd->file_set) sd->file_set = EINA_FALSE; 918 if (sd->file_set) sd->file_set = EINA_FALSE;
@@ -923,7 +923,7 @@ _efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, con
923 923
924 if (changed) 924 if (changed)
925 return efl_ui_widget_theme_apply(obj); 925 return efl_ui_widget_theme_apply(obj);
926 return EFL_UI_THEME_APPLY_SUCCESS; 926 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
927} 927}
928 928
929EOLIAN static void 929EOLIAN static void
@@ -2786,10 +2786,10 @@ elm_layout_data_get(const Evas_Object *obj, const char *key)
2786EAPI Eina_Bool 2786EAPI Eina_Bool
2787elm_layout_theme_set(Evas_Object *obj, const char *klass, const char *group, const char *style) 2787elm_layout_theme_set(Evas_Object *obj, const char *klass, const char *group, const char *style)
2788{ 2788{
2789 Efl_Ui_Theme_Apply ta; 2789 Efl_Ui_Theme_Apply_Result theme_apply_ret;
2790 2790
2791 ta = efl_ui_layout_theme_set(obj, klass, group, style); 2791 theme_apply_ret = efl_ui_layout_theme_set(obj, klass, group, style);
2792 return (ta != EFL_UI_THEME_APPLY_FAILED); 2792 return (theme_apply_ret != EFL_UI_THEME_APPLY_RESULT_FAIL);
2793} 2793}
2794 2794
2795#include "efl_ui_layout_legacy.eo.c" 2795#include "efl_ui_layout_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_layout.eo b/src/lib/elementary/efl_ui_layout.eo
index 510096c..0f40faf 100644
--- a/src/lib/elementary/efl_ui_layout.eo
+++ b/src/lib/elementary/efl_ui_layout.eo
@@ -27,9 +27,9 @@ class Efl.Ui.Layout (Efl.Ui.Widget, Efl.Part, Efl.Container, Efl.File,
27 If this returns $false the widget is very likely to become 27 If this returns $false the widget is very likely to become
28 non-functioning. 28 non-functioning.
29 ]] 29 ]]
30 return: Efl.Ui.Theme.Apply(0); 30 return: Efl.Ui.Theme_Apply_Result(0);
31 [[Whether the style was successfully applied or not, see 31 [[Whether the style was successfully applied or not, see
32 the values of @Efl.Ui.Theme.Apply for more information.]] 32 the values of @Efl.Ui.Theme_Apply_Result for more information.]]
33 } 33 }
34 /* 34 /*
35 TODO: 35 TODO:
diff --git a/src/lib/elementary/efl_ui_list.c b/src/lib/elementary/efl_ui_list.c
index 8a9a299..0184234 100644
--- a/src/lib/elementary/efl_ui_list.c
+++ b/src/lib/elementary/efl_ui_list.c
@@ -427,8 +427,8 @@ _efl_ui_list_efl_object_finalize(Eo *obj,
427 427
428 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); 428 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
429 429
430 Efl_Ui_Theme_Apply theme_apply = efl_ui_layout_theme_set(obj, "list", "base", efl_ui_widget_style_get(obj)); 430 Efl_Ui_Theme_Apply_Result theme_apply_ret = efl_ui_layout_theme_set(obj, "list", "base", efl_ui_widget_style_get(obj));
431 if (theme_apply == EFL_UI_THEME_APPLY_FAILED) 431 if (theme_apply_ret == EFL_UI_THEME_APPLY_RESULT_FAIL)
432 CRI("list(%p) failed to set theme [efl/list:%s]!", obj, efl_ui_widget_style_get(obj) ?: "NULL"); 432 CRI("list(%p) failed to set theme [efl/list:%s]!", obj, efl_ui_widget_style_get(obj) ?: "NULL");
433 433
434 pd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj); 434 pd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj);
@@ -599,12 +599,12 @@ _efl_ui_list_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_List_Data
599 } 599 }
600 */ 600 */
601 601
602EOLIAN static Efl_Ui_Theme_Apply 602EOLIAN static Efl_Ui_Theme_Apply_Result
603_efl_ui_list_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_List_Data *pd) 603_efl_ui_list_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_List_Data *pd)
604{ 604{
605 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 605 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
606 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 606 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
607 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 607 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
608 608
609 efl_ui_mirrored_set(pd->smanager, efl_ui_mirrored_get(obj)); 609 efl_ui_mirrored_set(pd->smanager, efl_ui_mirrored_get(obj));
610 610
diff --git a/src/lib/elementary/efl_ui_list_default_item.c b/src/lib/elementary/efl_ui_list_default_item.c
index fc41087..98138b1 100644
--- a/src/lib/elementary/efl_ui_list_default_item.c
+++ b/src/lib/elementary/efl_ui_list_default_item.c
@@ -23,9 +23,9 @@ _efl_ui_list_default_item_efl_object_finalize(Eo *obj, void *pd EINA_UNUSED)
23 Eo *eo; 23 Eo *eo;
24 eo = efl_finalize(efl_super(obj, MY_CLASS)); 24 eo = efl_finalize(efl_super(obj, MY_CLASS));
25 ELM_WIDGET_DATA_GET_OR_RETURN(eo, wd, eo); 25 ELM_WIDGET_DATA_GET_OR_RETURN(eo, wd, eo);
26 Efl_Ui_Theme_Apply theme_apply = efl_ui_layout_theme_set(obj, "list_item", NULL, NULL); 26 Efl_Ui_Theme_Apply_Result theme_apply_ret = efl_ui_layout_theme_set(obj, "list_item", NULL, NULL);
27 27
28 if (theme_apply == EFL_UI_THEME_APPLY_FAILED) 28 if (theme_apply_ret == EFL_UI_THEME_APPLY_RESULT_FAIL)
29 CRI("Default Item(%p) failed to set theme [efl/list_item]!", eo); 29 CRI("Default Item(%p) failed to set theme [efl/list_item]!", eo);
30 return eo; 30 return eo;
31} 31}
diff --git a/src/lib/elementary/efl_ui_list_empty_item.c b/src/lib/elementary/efl_ui_list_empty_item.c
index 8435489..3325950 100644
--- a/src/lib/elementary/efl_ui_list_empty_item.c
+++ b/src/lib/elementary/efl_ui_list_empty_item.c
@@ -21,9 +21,9 @@ _efl_ui_list_empty_item_efl_object_finalize(Eo *obj, void *pd EINA_UNUSED)
21 Eo *eo; 21 Eo *eo;
22 eo = efl_finalize(efl_super(obj, MY_CLASS)); 22 eo = efl_finalize(efl_super(obj, MY_CLASS));
23 ELM_WIDGET_DATA_GET_OR_RETURN(eo, wd, eo); 23 ELM_WIDGET_DATA_GET_OR_RETURN(eo, wd, eo);
24 Efl_Ui_Theme_Apply theme_apply = efl_ui_layout_theme_set(obj, "list_item", NULL, "empty"); 24 Efl_Ui_Theme_Apply_Result theme_apply_ret = efl_ui_layout_theme_set(obj, "list_item", NULL, "empty");
25 25
26 if (theme_apply == EFL_UI_THEME_APPLY_FAILED) 26 if (theme_apply_ret == EFL_UI_THEME_APPLY_RESULT_FAIL)
27 CRI("Empty Item(%p) failed to set theme [efl/list_item:empty]!", eo); 27 CRI("Empty Item(%p) failed to set theme [efl/list_item:empty]!", eo);
28 return eo; 28 return eo;
29} 29}
diff --git a/src/lib/elementary/efl_ui_nstate.c b/src/lib/elementary/efl_ui_nstate.c
index 3811bbb..1ee831e 100644
--- a/src/lib/elementary/efl_ui_nstate.c
+++ b/src/lib/elementary/efl_ui_nstate.c
@@ -116,13 +116,13 @@ _efl_ui_nstate_value_set(Eo *obj, Efl_Ui_Nstate_Data *pd, int state)
116 _state_active(obj, pd); 116 _state_active(obj, pd);
117} 117}
118 118
119EOLIAN static Efl_Ui_Theme_Apply 119EOLIAN static Efl_Ui_Theme_Apply_Result
120_efl_ui_nstate_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Nstate_Data *pd) 120_efl_ui_nstate_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Nstate_Data *pd)
121{ 121{
122 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 122 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
123 123
124 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 124 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
125 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 125 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
126 126
127 _state_signal_emit(obj, pd); 127 _state_signal_emit(obj, pd);
128 128
diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c
index 0af185b..97dcd75 100644
--- a/src/lib/elementary/efl_ui_panes.c
+++ b/src/lib/elementary/efl_ui_panes.c
@@ -110,14 +110,14 @@ _efl_ui_panes_theme_group_get(Evas_Object *obj, Efl_Ui_Panes_Data *sd)
110 return eina_strbuf_release(new_group); 110 return eina_strbuf_release(new_group);
111} 111}
112 112
113EOLIAN static Efl_Ui_Theme_Apply 113EOLIAN static Efl_Ui_Theme_Apply_Result
114_efl_ui_panes_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Panes_Data *sd) 114_efl_ui_panes_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Panes_Data *sd)
115{ 115{
116 double size; 116 double size;
117 Evas_Coord minw = 0, minh = 0; 117 Evas_Coord minw = 0, minh = 0;
118 char *group; 118 char *group;
119 119
120 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 120 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
121 121
122 group = _efl_ui_panes_theme_group_get(obj, sd); 122 group = _efl_ui_panes_theme_group_get(obj, sd);
123 if (group) 123 if (group)
@@ -131,7 +131,7 @@ _efl_ui_panes_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Panes_Data *sd)
131 evas_object_size_hint_min_set(sd->event, minw, minh); 131 evas_object_size_hint_min_set(sd->event, minw, minh);
132 132
133 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 133 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
134 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 134 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
135 135
136 size = elm_panes_content_left_size_get(obj); 136 size = elm_panes_content_left_size_get(obj);
137 137
diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c
index efeac3d..19d6c25 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -231,11 +231,11 @@ _efl_ui_progressbar_theme_group_get(Evas_Object *obj, Efl_Ui_Progressbar_Data *s
231 return eina_strbuf_release(new_group); 231 return eina_strbuf_release(new_group);
232} 232}
233 233
234EOLIAN static Efl_Ui_Theme_Apply 234EOLIAN static Efl_Ui_Theme_Apply_Result
235_efl_ui_progressbar_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Progressbar_Data *sd) 235_efl_ui_progressbar_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Progressbar_Data *sd)
236{ 236{
237 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 237 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
238 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 238 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
239 char *group; 239 char *group;
240 240
241 group = _efl_ui_progressbar_theme_group_get(obj, sd); 241 group = _efl_ui_progressbar_theme_group_get(obj, sd);
@@ -246,7 +246,7 @@ _efl_ui_progressbar_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Progressbar_Data *
246 } 246 }
247 247
248 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 248 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
249 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 249 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
250 250
251 if (elm_widget_is_legacy(obj)) 251 if (elm_widget_is_legacy(obj))
252 { 252 {
@@ -819,13 +819,13 @@ _icon_signal_emit(Evas_Object *obj)
819/* FIXME: replicated from elm_layout just because progressbar's icon spot 819/* FIXME: replicated from elm_layout just because progressbar's icon spot
820 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we 820 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
821 * can changed the theme API */ 821 * can changed the theme API */
822EOLIAN static Efl_Ui_Theme_Apply 822EOLIAN static Efl_Ui_Theme_Apply_Result
823_efl_ui_progressbar_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED) 823_efl_ui_progressbar_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED)
824{ 824{
825 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 825 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
826 826
827 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_PROGRESSBAR_LEGACY_CLASS)); 827 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_PROGRESSBAR_LEGACY_CLASS));
828 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 828 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
829 _icon_signal_emit(obj); 829 _icon_signal_emit(obj);
830 830
831 return int_ret; 831 return int_ret;
diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c
index 6f3fad8..009ca71 100644
--- a/src/lib/elementary/efl_ui_radio.c
+++ b/src/lib/elementary/efl_ui_radio.c
@@ -147,13 +147,13 @@ _key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
147 return EINA_TRUE; 147 return EINA_TRUE;
148} 148}
149 149
150EOLIAN static Efl_Ui_Theme_Apply 150EOLIAN static Efl_Ui_Theme_Apply_Result
151_efl_ui_radio_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Radio_Data *sd) 151_efl_ui_radio_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Radio_Data *sd)
152{ 152{
153 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 153 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
154 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 154 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
155 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_CHECK_CLASS)); 155 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_CHECK_CLASS));
156 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 156 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
157 157
158 if (elm_widget_is_legacy(obj)) 158 if (elm_widget_is_legacy(obj))
159 { 159 {
@@ -414,12 +414,12 @@ _icon_signal_emit(Evas_Object *obj)
414 elm_layout_sizing_eval(obj); 414 elm_layout_sizing_eval(obj);
415} 415}
416 416
417EOLIAN static Efl_Ui_Theme_Apply 417EOLIAN static Efl_Ui_Theme_Apply_Result
418_efl_ui_radio_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED) 418_efl_ui_radio_legacy_efl_ui_widget_theme_apply(Eo *obj, void *_pd EINA_UNUSED)
419{ 419{
420 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 420 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
421 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_RADIO_LEGACY_CLASS)); 421 int_ret = efl_ui_widget_theme_apply(efl_super(obj, EFL_UI_RADIO_LEGACY_CLASS));
422 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 422 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
423 423
424 /* FIXME: replicated from elm_layout just because radio's icon 424 /* FIXME: replicated from elm_layout just because radio's icon
425 * spot is elm.swallow.content, not elm.swallow.icon. Fix that 425 * spot is elm.swallow.content, not elm.swallow.icon. Fix that
diff --git a/src/lib/elementary/efl_ui_scroller.c b/src/lib/elementary/efl_ui_scroller.c
index 6f74aad..9d652da 100644
--- a/src/lib/elementary/efl_ui_scroller.c
+++ b/src/lib/elementary/efl_ui_scroller.c
@@ -514,12 +514,12 @@ _efl_ui_scroller_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Scroller_Data *sd)
514 efl_gfx_size_hint_min_set(obj, size); 514 efl_gfx_size_hint_min_set(obj, size);
515} 515}
516 516
517EOLIAN static Efl_Ui_Theme_Apply 517EOLIAN static Efl_Ui_Theme_Apply_Result
518_efl_ui_scroller_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Scroller_Data *sd) 518_efl_ui_scroller_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Scroller_Data *sd)
519{ 519{
520 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 520 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
521 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 521 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
522 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 522 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
523 523
524 efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj)); 524 efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj));
525 525
diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c
index ebada17..e4bb806 100644
--- a/src/lib/elementary/efl_ui_slider.c
+++ b/src/lib/elementary/efl_ui_slider.c
@@ -423,11 +423,11 @@ _efl_ui_slider_theme_group_get(Evas_Object *obj, Efl_Ui_Slider_Data *sd)
423 return eina_strbuf_release(new_group); 423 return eina_strbuf_release(new_group);
424} 424}
425 425
426EOLIAN static Efl_Ui_Theme_Apply 426EOLIAN static Efl_Ui_Theme_Apply_Result
427_efl_ui_slider_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd) 427_efl_ui_slider_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd)
428{ 428{
429 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 429 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
430 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 430 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
431 char *group; 431 char *group;
432 432
433 group = _efl_ui_slider_theme_group_get(obj, sd); 433 group = _efl_ui_slider_theme_group_get(obj, sd);
@@ -438,7 +438,7 @@ _efl_ui_slider_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd)
438 } 438 }
439 439
440 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 440 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
441 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 441 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
442 442
443 if (elm_widget_is_legacy(obj)) 443 if (elm_widget_is_legacy(obj))
444 { 444 {
diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c
index 02b5da6..fbe3646 100644
--- a/src/lib/elementary/efl_ui_spin_button.c
+++ b/src/lib/elementary/efl_ui_spin_button.c
@@ -788,10 +788,10 @@ _efl_ui_spin_button_theme_group_get(Evas_Object *obj, Efl_Ui_Spin_Button_Data *s
788} 788}
789 789
790 790
791EOLIAN static Efl_Ui_Theme_Apply 791EOLIAN static Efl_Ui_Theme_Apply_Result
792_efl_ui_spin_button_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Spin_Button_Data *sd EINA_UNUSED) 792_efl_ui_spin_button_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Spin_Button_Data *sd EINA_UNUSED)
793{ 793{
794 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 794 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
795 char *group; 795 char *group;
796 796
797 group = _efl_ui_spin_button_theme_group_get(obj, sd); 797 group = _efl_ui_spin_button_theme_group_get(obj, sd);
@@ -802,7 +802,7 @@ _efl_ui_spin_button_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Spin_Button_Data *
802 } 802 }
803 803
804 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 804 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
805 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 805 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
806 806
807 if (sd->ent) 807 if (sd->ent)
808 elm_widget_element_update(obj, sd->ent, PART_NAME_ENTRY); 808 elm_widget_element_update(obj, sd->ent, PART_NAME_ENTRY);
@@ -821,7 +821,7 @@ _efl_ui_spin_button_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Spin_Button_Data *
821 821
822 _label_write(obj); 822 _label_write(obj);
823 elm_layout_sizing_eval(obj); 823 elm_layout_sizing_eval(obj);
824 return EFL_UI_THEME_APPLY_SUCCESS; 824 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
825} 825}
826 826
827EOLIAN static Eo * 827EOLIAN static Eo *
diff --git a/src/lib/elementary/efl_ui_tab_bar.c b/src/lib/elementary/efl_ui_tab_bar.c
index 37578a7..7aeb78c 100644
--- a/src/lib/elementary/efl_ui_tab_bar.c
+++ b/src/lib/elementary/efl_ui_tab_bar.c
@@ -214,7 +214,7 @@ _tab_add(Eo *obj, const char *label, const char *icon)
214{ 214{
215 Eo *tab, *icon_obj; 215 Eo *tab, *icon_obj;
216 Tab_Info *ti; 216 Tab_Info *ti;
217 Efl_Ui_Theme_Apply theme_apply; 217 Efl_Ui_Theme_Apply_Result theme_apply;
218 218
219 ti = calloc(1, sizeof(*ti)); 219 ti = calloc(1, sizeof(*ti));
220 220
@@ -239,7 +239,7 @@ _tab_add(Eo *obj, const char *label, const char *icon)
239 239
240 theme_apply = elm_widget_element_update(obj, tab, PART_NAME_TAB); 240 theme_apply = elm_widget_element_update(obj, tab, PART_NAME_TAB);
241 241
242 if (theme_apply == EFL_UI_THEME_APPLY_FAILED) 242 if (theme_apply == EFL_UI_THEME_APPLY_RESULT_FAIL)
243 CRI("Failed to set layout!"); 243 CRI("Failed to set layout!");
244 244
245 efl_layout_signal_callback_add 245 efl_layout_signal_callback_add
diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c
index fa1a6e4..d3415d7 100644
--- a/src/lib/elementary/efl_ui_table.c
+++ b/src/lib/elementary/efl_ui_table.c
@@ -28,12 +28,12 @@ _mirrored_set(Evas_Object *obj, Eina_Bool rtl)
28 evas_object_table_mirrored_set(wd->resize_obj, rtl); 28 evas_object_table_mirrored_set(wd->resize_obj, rtl);
29} 29}
30 30
31EOLIAN static Efl_Ui_Theme_Apply 31EOLIAN static Efl_Ui_Theme_Apply_Result
32_efl_ui_table_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED) 32_efl_ui_table_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED)
33{ 33{
34 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 34 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
35 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 35 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
36 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 36 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
37 37
38 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 38 _mirrored_set(obj, efl_ui_mirrored_get(obj));
39 39
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index a26e0f5..f437ef6 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -719,17 +719,17 @@ _efl_ui_text_efl_ui_widget_on_disabled_update(Eo *obj, Efl_Ui_Text_Data *sd, Ein
719 719
720/* we can't issue the layout's theming code here, cause it assumes an 720/* we can't issue the layout's theming code here, cause it assumes an
721 * unique edje object, always */ 721 * unique edje object, always */
722EOLIAN static Efl_Ui_Theme_Apply 722EOLIAN static Efl_Ui_Theme_Apply_Result
723_efl_ui_text_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Text_Data *sd) 723_efl_ui_text_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Text_Data *sd)
724{ 724{
725 Efl_Ui_Theme_Apply theme_apply; 725 Efl_Ui_Theme_Apply_Result theme_apply;
726 726
727 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 727 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
728 728
729 // Note: We are skipping elm_layout here! This is by design. 729 // Note: We are skipping elm_layout here! This is by design.
730 // This assumes the following inheritance: my_class -> layout -> widget ... 730 // This assumes the following inheritance: my_class -> layout -> widget ...
731 theme_apply = efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS)); 731 theme_apply = efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS));
732 if (!theme_apply) return EFL_UI_THEME_APPLY_FAILED; 732 if (!theme_apply) return EFL_UI_THEME_APPLY_RESULT_FAIL;
733 733
734 efl_event_freeze(obj); 734 efl_event_freeze(obj);
735 735
diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c
index be6de4d..192478e 100644
--- a/src/lib/elementary/efl_ui_textpath.c
+++ b/src/lib/elementary/efl_ui_textpath.c
@@ -655,13 +655,13 @@ _efl_ui_textpath_efl_text_text_get(const Eo *obj EINA_UNUSED, Efl_Ui_Textpath_Da
655 return edje_object_part_text_get(pd->text_obj, "efl.text"); 655 return edje_object_part_text_get(pd->text_obj, "efl.text");
656} 656}
657 657
658EOLIAN static Efl_Ui_Theme_Apply 658EOLIAN static Efl_Ui_Theme_Apply_Result
659_efl_ui_textpath_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Textpath_Data *pd) 659_efl_ui_textpath_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Textpath_Data *pd)
660{ 660{
661 Efl_Ui_Theme_Apply ret = EFL_UI_THEME_APPLY_FAILED; 661 Efl_Ui_Theme_Apply_Result ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
662 662
663 ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 663 ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
664 if (!ret) return EFL_UI_THEME_APPLY_FAILED; 664 if (!ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
665 665
666 elm_widget_theme_object_set(obj, pd->text_obj, "textpath", "base", 666 elm_widget_theme_object_set(obj, pd->text_obj, "textpath", "base",
667 elm_widget_style_get(obj)); 667 elm_widget_style_get(obj));
diff --git a/src/lib/elementary/efl_ui_theme.eo b/src/lib/elementary/efl_ui_theme.eo
new file mode 100644
index 0000000..73b158a
--- /dev/null
+++ b/src/lib/elementary/efl_ui_theme.eo
@@ -0,0 +1,71 @@
1class Efl.Ui.Theme (Efl.Object)
2{
3 [[Efl Ui Theme class]]
4 eo_prefix: efl_ui_theme;
5 data: Efl_Ui_Theme_Data;
6 methods {
7 @property default @class {
8 [[This is the default theme.
9
10 All widgets use the default theme implicitly unless a specific theme
11 is set.
12 ]]
13 get {
14 [[Gets the default theme handle.]]
15 }
16 values {
17 theme: Efl.Ui.Theme; [[The default theme handle]]
18 }
19 }
20 extension_add {
21 [[Appends a theme extension to the list of extensions.
22 This is intended when an application needs more styles of widgets or new
23 widget themes that the default does not provide (or may not provide). The
24 application has "extended" usage by coming up with new custom style names
25 for widgets for specific uses, but as these are not "standard", they are
26 not guaranteed to be provided by a default theme. This means the
27 application is required to provide these extra elements itself in specific
28 Edje files. This call adds one of those Edje files to the theme search
29 path to be searched after the default theme. The use of this call is
30 encouraged when default styles do not meet the needs of the application.
31 Use this call instead of @.overlay_add for almost all cases.
32 ]]
33 params {
34 item: string; [[The Edje file path to be used]]
35 }
36 }
37 extension_del {
38 [[Deletes a theme extension from the list of extensions.
39 ]]
40 params {
41 item: string; [[The Edje file path not to be used]]
42 }
43 }
44 overlay_add {
45 [[Prepends a theme overlay to the list of overlays.
46 Use this if your application needs to provide some custom overlay theme
47 (An Edje file that replaces some default styles of widgets) where adding
48 new styles, or changing system theme configuration is not possible. Do
49 NOT use this instead of a proper system theme configuration. Use proper
50 configuration files, profiles, environment variables etc. to set a theme
51 so that the theme can be altered by simple configuration by a user. Using
52 this call to achieve that effect is abusing the API and will create lots
53 of trouble.
54 ]]
55 params {
56 item: string; [[The Edje file path to be used]]
57 }
58 }
59 overlay_del {
60 [[Delete a theme overlay from the list of overlays.
61 ]]
62 params {
63 item: string; [[The Edje file path not to be used]]
64 }
65 }
66 }
67 implements {
68 Efl.Object.constructor;
69 Efl.Object.destructor;
70 }
71}
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c
index 4e1d2d9..ea6fbab 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -1290,16 +1290,16 @@ _efl_ui_widget_on_access_update(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd
1290{ 1290{
1291} 1291}
1292 1292
1293EAPI Efl_Ui_Theme_Apply 1293EAPI Efl_Ui_Theme_Apply_Result
1294elm_widget_theme(Evas_Object *obj) 1294elm_widget_theme(Evas_Object *obj)
1295{ 1295{
1296 const Eina_List *l; 1296 const Eina_List *l;
1297 Evas_Object *child; 1297 Evas_Object *child;
1298 Elm_Tooltip *tt; 1298 Elm_Tooltip *tt;
1299 Elm_Cursor *cur; 1299 Elm_Cursor *cur;
1300 Efl_Ui_Theme_Apply ret = EFL_UI_THEME_APPLY_SUCCESS; 1300 Efl_Ui_Theme_Apply_Result ret = EFL_UI_THEME_APPLY_RESULT_SUCCESS;
1301 1301
1302 API_ENTRY return EFL_UI_THEME_APPLY_FAILED; 1302 API_ENTRY return EFL_UI_THEME_APPLY_RESULT_FAIL;
1303 1303
1304 EINA_LIST_FOREACH(sd->subobjs, l, child) 1304 EINA_LIST_FOREACH(sd->subobjs, l, child)
1305 if (_elm_widget_is(child)) 1305 if (_elm_widget_is(child))
@@ -1362,14 +1362,14 @@ elm_widget_theme_specific(Evas_Object *obj,
1362 efl_ui_widget_theme_apply(obj); 1362 efl_ui_widget_theme_apply(obj);
1363} 1363}
1364 1364
1365EOLIAN static Efl_Ui_Theme_Apply 1365EOLIAN static Efl_Ui_Theme_Apply_Result
1366_efl_ui_widget_theme_apply(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED) 1366_efl_ui_widget_theme_apply(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
1367{ 1367{
1368 _elm_widget_mirrored_reload(obj); 1368 _elm_widget_mirrored_reload(obj);
1369 if (elm_widget_disabled_get(obj)) 1369 if (elm_widget_disabled_get(obj))
1370 elm_widget_disabled_internal(obj, elm_widget_disabled_get(obj)); 1370 elm_widget_disabled_internal(obj, elm_widget_disabled_get(obj));
1371 1371
1372 return EFL_UI_THEME_APPLY_SUCCESS; 1372 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
1373} 1373}
1374 1374
1375/** 1375/**
@@ -2828,7 +2828,7 @@ elm_widget_theme_set(Evas_Object *obj, Elm_Theme *th)
2828 if (elm_widget_theme_get(obj) != th) apply = EINA_TRUE; 2828 if (elm_widget_theme_get(obj) != th) apply = EINA_TRUE;
2829 if (sd->theme) elm_theme_free(sd->theme); 2829 if (sd->theme) elm_theme_free(sd->theme);
2830 sd->theme = th; 2830 sd->theme = th;
2831 if (th) th->ref++; 2831 if (th) efl_ref(th->eo_theme);
2832 if (apply) elm_widget_theme(obj); 2832 if (apply) elm_widget_theme(obj);
2833 } 2833 }
2834} 2834}
@@ -3049,19 +3049,19 @@ elm_widget_theme_get(const Evas_Object *obj)
3049 return sd->theme; 3049 return sd->theme;
3050} 3050}
3051 3051
3052EOLIAN static Efl_Ui_Theme_Apply 3052EOLIAN static Efl_Ui_Theme_Apply_Result
3053_efl_ui_widget_style_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *style) 3053_efl_ui_widget_style_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *style)
3054{ 3054{
3055 if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj)) 3055 if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj))
3056 { 3056 {
3057 ERR("Efl.Ui.Widget.style can only be set before finalize!"); 3057 ERR("Efl.Ui.Widget.style can only be set before finalize!");
3058 return EFL_UI_THEME_APPLY_FAILED; 3058 return EFL_UI_THEME_APPLY_RESULT_FAIL;
3059 } 3059 }
3060 3060
3061 if (eina_stringshare_replace(&sd->style, style)) 3061 if (eina_stringshare_replace(&sd->style, style))
3062 return elm_widget_theme(obj); 3062 return elm_widget_theme(obj);
3063 3063
3064 return EFL_UI_THEME_APPLY_SUCCESS; 3064 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
3065} 3065}
3066 3066
3067EOLIAN static const char* 3067EOLIAN static const char*
@@ -3160,20 +3160,20 @@ elm_widget_scroll_child_locked_y_get(const Eo *obj)
3160 return sd->child_drag_y_locked; 3160 return sd->child_drag_y_locked;
3161} 3161}
3162 3162
3163EAPI Efl_Ui_Theme_Apply 3163EAPI Efl_Ui_Theme_Apply_Result
3164elm_widget_theme_object_set(Evas_Object *obj, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle) 3164elm_widget_theme_object_set(Evas_Object *obj, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle)
3165{ 3165{
3166 Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS); 3166 Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
3167 if (!sd) return EFL_UI_THEME_APPLY_FAILED; 3167 if (!sd) return EFL_UI_THEME_APPLY_RESULT_FAIL;
3168 3168
3169 if (eina_streq(welement, "base")) 3169 if (eina_streq(welement, "base"))
3170 welement = NULL; 3170 welement = NULL;
3171 if (eina_streq(wstyle, "default")) 3171 if (eina_streq(wstyle, "default"))
3172 wstyle = NULL; 3172 wstyle = NULL;
3173 Efl_Ui_Theme_Apply ret = _elm_theme_object_set(obj, edj, wname, welement, wstyle); 3173 Efl_Ui_Theme_Apply_Result ret = _elm_theme_object_set(obj, edj, wname, welement, wstyle);
3174 if (!ret) 3174 if (!ret)
3175 { 3175 {
3176 return EFL_UI_THEME_APPLY_FAILED; 3176 return EFL_UI_THEME_APPLY_RESULT_FAIL;
3177 } 3177 }
3178 3178
3179 if (sd->orient_mode != -1) 3179 if (sd->orient_mode != -1)
@@ -3870,10 +3870,10 @@ elm_widget_theme_style_get(const Evas_Object *obj)
3870 * @param name An element name of sub object. 3870 * @param name An element name of sub object.
3871 * @return Whether the style was successfully applied or not. 3871 * @return Whether the style was successfully applied or not.
3872 */ 3872 */
3873EAPI Efl_Ui_Theme_Apply 3873EAPI Efl_Ui_Theme_Apply_Result
3874elm_widget_element_update(Evas_Object *obj, Evas_Object *component, const char *name) 3874elm_widget_element_update(Evas_Object *obj, Evas_Object *component, const char *name)
3875{ 3875{
3876 Efl_Ui_Theme_Apply ret = EFL_UI_THEME_APPLY_SUCCESS; 3876 Efl_Ui_Theme_Apply_Result ret = EFL_UI_THEME_APPLY_RESULT_SUCCESS;
3877 Eina_Bool changed = EINA_FALSE; 3877 Eina_Bool changed = EINA_FALSE;
3878 const char *obj_group; 3878 const char *obj_group;
3879 Eina_Stringshare *group; 3879 Eina_Stringshare *group;
diff --git a/src/lib/elementary/efl_ui_widget.eo b/src/lib/elementary/efl_ui_widget.eo
index 8852879..766f42e 100644
--- a/src/lib/elementary/efl_ui_widget.eo
+++ b/src/lib/elementary/efl_ui_widget.eo
@@ -78,9 +78,9 @@ abstract Efl.Ui.Widget (Efl.Canvas.Group, Efl.Access.Object,
78 ]] 78 ]]
79 set @protected { 79 set @protected {
80 [[Can only be called during construction, before finalize.]] 80 [[Can only be called during construction, before finalize.]]
81 return: Efl.Ui.Theme.Apply(0); 81 return: Efl.Ui.Theme_Apply_Result(0);
82 [[Whether the style was successfully applied or not, see 82 [[Whether the style was successfully applied or not, see
83 the values of @Efl.Ui.Theme.Apply for more information.]] 83 the values of @Efl.Ui.Theme_Apply_Result for more information.]]
84 } 84 }
85 get { 85 get {
86 [[Returns the current style of a widget.]] 86 [[Returns the current style of a widget.]]
@@ -310,7 +310,7 @@ abstract Efl.Ui.Widget (Efl.Canvas.Group, Efl.Access.Object,
310 Note: even widgets not based on layouts may override this method 310 Note: even widgets not based on layouts may override this method
311 to handle widget updates (scale, mirrored mode, etc...). 311 to handle widget updates (scale, mirrored mode, etc...).
312 ]] 312 ]]
313 return: Efl.Ui.Theme.Apply; [[Indicates success, and if the current 313 return: Efl.Ui.Theme_Apply_Result; [[Indicates success, and if the current
314 theme or default theme was used.]] 314 theme or default theme was used.]]
315 } 315 }
316 316
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 3cf8ac2..495e52b 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -376,7 +376,7 @@ _elm_win_on_resize_obj_changed_size_hints(void *data,
376 void *event_info); 376 void *event_info);
377static void 377static void
378_elm_win_img_callbacks_del(Evas_Object *obj, Evas_Object *imgobj); 378_elm_win_img_callbacks_del(Evas_Object *obj, Evas_Object *imgobj);
379static Efl_Ui_Theme_Apply _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd); 379static Efl_Ui_Theme_Apply_Result _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd);
380static void _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *element, const char *style); 380static void _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *element, const char *style);
381static void _elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool calc); 381static void _elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool calc);
382static inline void _elm_win_need_frame_adjust(Efl_Ui_Win_Data *sd, const char *engine); 382static inline void _elm_win_need_frame_adjust(Efl_Ui_Win_Data *sd, const char *engine);
@@ -6855,16 +6855,16 @@ _efl_ui_win_efl_ui_widget_focus_highlight_enabled_get(const Eo *obj EINA_UNUSED,
6855 return sd->focus_highlight.enabled; 6855 return sd->focus_highlight.enabled;
6856} 6856}
6857 6857
6858static Efl_Ui_Theme_Apply 6858static Efl_Ui_Theme_Apply_Result
6859_elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd) 6859_elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd)
6860{ 6860{
6861 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 6861 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
6862 Eina_Bool ret = EINA_FALSE, prev_alpha; 6862 Eina_Bool ret = EINA_FALSE, prev_alpha;
6863 const char *s; 6863 const char *s;
6864 6864
6865 int_ret = elm_widget_theme_object_set(obj, sd->legacy.edje, "win", "base", 6865 int_ret = elm_widget_theme_object_set(obj, sd->legacy.edje, "win", "base",
6866 elm_widget_style_get(obj)); 6866 elm_widget_style_get(obj));
6867 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 6867 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
6868 6868
6869 edje_object_mirrored_set(sd->legacy.edje, efl_ui_mirrored_get(obj)); 6869 edje_object_mirrored_set(sd->legacy.edje, efl_ui_mirrored_get(obj));
6870 edje_object_scale_set(sd->legacy.edje, 6870 edje_object_scale_set(sd->legacy.edje,
@@ -6873,7 +6873,7 @@ _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd)
6873 efl_event_callback_legacy_call(obj, EFL_UI_WIN_EVENT_THEME_CHANGED, NULL); 6873 efl_event_callback_legacy_call(obj, EFL_UI_WIN_EVENT_THEME_CHANGED, NULL);
6874 ret = efl_ui_widget_on_disabled_update(obj, elm_widget_disabled_get(obj)); 6874 ret = efl_ui_widget_on_disabled_update(obj, elm_widget_disabled_get(obj));
6875 6875
6876 if (!ret) int_ret = EFL_UI_THEME_APPLY_FAILED; 6876 if (!ret) int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
6877 6877
6878 prev_alpha = sd->theme_alpha; 6878 prev_alpha = sd->theme_alpha;
6879 s = edje_object_data_get(sd->legacy.edje, "alpha"); 6879 s = edje_object_data_get(sd->legacy.edje, "alpha");
@@ -6884,17 +6884,17 @@ _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd)
6884 return int_ret; 6884 return int_ret;
6885} 6885}
6886 6886
6887EOLIAN static Efl_Ui_Theme_Apply 6887EOLIAN static Efl_Ui_Theme_Apply_Result
6888_efl_ui_win_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Win_Data *sd) 6888_efl_ui_win_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Win_Data *sd)
6889{ 6889{
6890 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 6890 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
6891 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 6891 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
6892 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 6892 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
6893 6893
6894 sd->focus_highlight.theme_changed = EINA_TRUE; 6894 sd->focus_highlight.theme_changed = EINA_TRUE;
6895 6895
6896 int_ret = _elm_win_theme_internal(obj, sd) & int_ret; 6896 int_ret = _elm_win_theme_internal(obj, sd) & int_ret;
6897 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 6897 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
6898 _elm_win_focus_highlight_reconfigure_job_start(sd); 6898 _elm_win_focus_highlight_reconfigure_job_start(sd);
6899 6899
6900 return int_ret; 6900 return int_ret;
diff --git a/src/lib/elementary/elc_combobox.c b/src/lib/elementary/elc_combobox.c
index e9f3cb3..b9ca27a 100644
--- a/src/lib/elementary/elc_combobox.c
+++ b/src/lib/elementary/elc_combobox.c
@@ -60,15 +60,15 @@ _elm_combobox_efl_ui_translatable_translation_update(Eo *obj EINA_UNUSED, Elm_Co
60 efl_ui_translatable_translation_update(sd->hover); 60 efl_ui_translatable_translation_update(sd->hover);
61} 61}
62 62
63EOLIAN static Efl_Ui_Theme_Apply 63EOLIAN static Efl_Ui_Theme_Apply_Result
64_elm_combobox_efl_ui_widget_theme_apply(Eo *obj, Elm_Combobox_Data *sd) 64_elm_combobox_efl_ui_widget_theme_apply(Eo *obj, Elm_Combobox_Data *sd)
65{ 65{
66 const char *style; 66 const char *style;
67 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 67 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
68 Eina_Bool mirrored; 68 Eina_Bool mirrored;
69 char buf[128]; 69 char buf[128];
70 70
71 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 71 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
72 72
73 style = eina_stringshare_add(elm_widget_style_get(obj)); 73 style = eina_stringshare_add(elm_widget_style_get(obj));
74 74
@@ -78,7 +78,7 @@ _elm_combobox_efl_ui_widget_theme_apply(Eo *obj, Elm_Combobox_Data *sd)
78 eina_stringshare_replace(&(wd->style), buf); 78 eina_stringshare_replace(&(wd->style), buf);
79 79
80 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 80 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
81 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 81 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
82 82
83 eina_stringshare_replace(&(wd->style), style); 83 eina_stringshare_replace(&(wd->style), style);
84 84
diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c
index 178e76e..2cb1693 100644
--- a/src/lib/elementary/elc_ctxpopup.c
+++ b/src/lib/elementary/elc_ctxpopup.c
@@ -668,13 +668,13 @@ _on_content_resized(void *data,
668} 668}
669 669
670//FIXME: lost the content size when theme hook is called. 670//FIXME: lost the content size when theme hook is called.
671EOLIAN static Efl_Ui_Theme_Apply 671EOLIAN static Efl_Ui_Theme_Apply_Result
672_elm_ctxpopup_efl_ui_widget_theme_apply(Eo *obj, Elm_Ctxpopup_Data *sd) 672_elm_ctxpopup_efl_ui_widget_theme_apply(Eo *obj, Elm_Ctxpopup_Data *sd)
673{ 673{
674 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 674 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
675 675
676 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 676 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
677 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 677 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
678 678
679 elm_widget_theme_object_set 679 elm_widget_theme_object_set
680 (obj, sd->bg, "ctxpopup", "bg", elm_widget_style_get(obj)); 680 (obj, sd->bg, "ctxpopup", "bg", elm_widget_style_get(obj));
diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c
index e23dfe7..3fdfb7e 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -227,16 +227,16 @@ _model_str_property_set(Efl_Model *model, const char *property_name, const char
227 return efl_model_property_set(model, property_name, eina_value_string_new(property_value)); 227 return efl_model_property_set(model, property_name, eina_value_string_new(property_value));
228} 228}
229 229
230EOLIAN static Efl_Ui_Theme_Apply 230EOLIAN static Efl_Ui_Theme_Apply_Result
231_elm_fileselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_Data *sd) 231_elm_fileselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_Data *sd)
232{ 232{
233 const char *style; 233 const char *style;
234 const char *data; 234 const char *data;
235 char buf[1024]; 235 char buf[1024];
236 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 236 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
237 237
238 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 238 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
239 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 239 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
240 240
241 style = elm_widget_style_get(obj); 241 style = elm_widget_style_get(obj);
242 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 242 _mirrored_set(obj, efl_ui_mirrored_get(obj));
diff --git a/src/lib/elementary/elc_fileselector_button.c b/src/lib/elementary/elc_fileselector_button.c
index 2c86b7c..8663261 100644
--- a/src/lib/elementary/elc_fileselector_button.c
+++ b/src/lib/elementary/elc_fileselector_button.c
@@ -39,15 +39,15 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
39}; 39};
40#undef ELM_PRIV_FILESELECTOR_BUTTON_SIGNALS 40#undef ELM_PRIV_FILESELECTOR_BUTTON_SIGNALS
41 41
42EOLIAN static Efl_Ui_Theme_Apply 42EOLIAN static Efl_Ui_Theme_Apply_Result
43_elm_fileselector_button_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_Button_Data *sd EINA_UNUSED) 43_elm_fileselector_button_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_Button_Data *sd EINA_UNUSED)
44{ 44{
45 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 45 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
46 46
47 char buf[4096]; 47 char buf[4096];
48 const char *style; 48 const char *style;
49 49
50 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 50 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
51 51
52 style = eina_stringshare_add(elm_widget_style_get(obj)); 52 style = eina_stringshare_add(elm_widget_style_get(obj));
53 53
@@ -57,7 +57,7 @@ _elm_fileselector_button_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_But
57 eina_stringshare_replace(&(wd->style), buf); 57 eina_stringshare_replace(&(wd->style), buf);
58 58
59 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 59 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
60 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 60 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
61 61
62 eina_stringshare_replace(&(wd->style), style); 62 eina_stringshare_replace(&(wd->style), style);
63 63
diff --git a/src/lib/elementary/elc_fileselector_entry.c b/src/lib/elementary/elc_fileselector_entry.c
index cc980c3..a6e7a70 100644
--- a/src/lib/elementary/elc_fileselector_entry.c
+++ b/src/lib/elementary/elc_fileselector_entry.c
@@ -128,17 +128,17 @@ _elm_fileselector_entry_elm_layout_sizing_eval(Eo *obj, Elm_Fileselector_Entry_D
128 evas_object_size_hint_max_set(obj, -1, -1); 128 evas_object_size_hint_max_set(obj, -1, -1);
129} 129}
130 130
131EOLIAN static Efl_Ui_Theme_Apply 131EOLIAN static Efl_Ui_Theme_Apply_Result
132_elm_fileselector_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_Entry_Data *sd) 132_elm_fileselector_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Fileselector_Entry_Data *sd)
133{ 133{
134 const char *style; 134 const char *style;
135 char buf[1024]; 135 char buf[1024];
136 136
137 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 137 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
138 138
139 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 139 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
140 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 140 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
141 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 141 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
142 142
143 style = elm_widget_style_get(obj); 143 style = elm_widget_style_get(obj);
144 144
diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c
index 061be07..4ec42b0 100644
--- a/src/lib/elementary/elc_hoversel.c
+++ b/src/lib/elementary/elc_hoversel.c
@@ -63,14 +63,14 @@ _elm_hoversel_efl_ui_translatable_translation_update(Eo *obj EINA_UNUSED, Elm_Ho
63 efl_ui_translatable_translation_update(efl_super(obj, MY_CLASS)); 63 efl_ui_translatable_translation_update(efl_super(obj, MY_CLASS));
64} 64}
65 65
66EOLIAN static Efl_Ui_Theme_Apply 66EOLIAN static Efl_Ui_Theme_Apply_Result
67_elm_hoversel_efl_ui_widget_theme_apply(Eo *obj, Elm_Hoversel_Data *sd) 67_elm_hoversel_efl_ui_widget_theme_apply(Eo *obj, Elm_Hoversel_Data *sd)
68{ 68{
69 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 69 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
70 Eina_List *l; 70 Eina_List *l;
71 Elm_Object_Item *eo_item; 71 Elm_Object_Item *eo_item;
72 72
73 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 73 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
74 74
75 char buf[4096]; 75 char buf[4096];
76 const char *style; 76 const char *style;
@@ -86,7 +86,7 @@ _elm_hoversel_efl_ui_widget_theme_apply(Eo *obj, Elm_Hoversel_Data *sd)
86 elm_widget_theme_style_set(obj, buf); 86 elm_widget_theme_style_set(obj, buf);
87 87
88 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 88 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
89 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 89 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
90 90
91 elm_widget_theme_style_set(obj, style); 91 elm_widget_theme_style_set(obj, style);
92 92
diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c
index 32df238..2ea4b93 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -91,7 +91,7 @@ _format_count(int count, void *data EINA_UNUSED)
91 return strdup(buf); 91 return strdup(buf);
92} 92}
93 93
94EOLIAN static Efl_Ui_Theme_Apply 94EOLIAN static Efl_Ui_Theme_Apply_Result
95_elm_multibuttonentry_efl_ui_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Data *sd) 95_elm_multibuttonentry_efl_ui_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Data *sd)
96{ 96{
97 const char *str; 97 const char *str;
@@ -100,9 +100,9 @@ _elm_multibuttonentry_efl_ui_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Da
100 Elm_Object_Item *eo_item; 100 Elm_Object_Item *eo_item;
101 double pad_scale; 101 double pad_scale;
102 102
103 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 103 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
104 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 104 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
105 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 105 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
106 106
107 str = elm_layout_data_get(obj, "horizontal_pad"); 107 str = elm_layout_data_get(obj, "horizontal_pad");
108 if (str) hpad = atoi(str); 108 if (str) hpad = atoi(str);
diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c
index 2596692..048f697 100644
--- a/src/lib/elementary/elc_naviframe.c
+++ b/src/lib/elementary/elc_naviframe.c
@@ -366,7 +366,7 @@ _item_title_enabled_update(Elm_Naviframe_Item_Data *nit, Eina_Bool transition)
366 edje_object_message_signal_process(elm_layout_edje_get(VIEW(nit))); 366 edje_object_message_signal_process(elm_layout_edje_get(VIEW(nit)));
367} 367}
368 368
369EOLIAN static Efl_Ui_Theme_Apply 369EOLIAN static Efl_Ui_Theme_Apply_Result
370_elm_naviframe_efl_ui_widget_theme_apply(Eo *obj, Elm_Naviframe_Data *sd) 370_elm_naviframe_efl_ui_widget_theme_apply(Eo *obj, Elm_Naviframe_Data *sd)
371{ 371{
372 Elm_Naviframe_Item_Data *it; 372 Elm_Naviframe_Item_Data *it;
@@ -384,7 +384,7 @@ _elm_naviframe_efl_ui_widget_theme_apply(Eo *obj, Elm_Naviframe_Data *sd)
384 } 384 }
385 385
386 elm_layout_sizing_eval(obj); 386 elm_layout_sizing_eval(obj);
387 return EFL_UI_THEME_APPLY_SUCCESS; 387 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
388} 388}
389 389
390static char * 390static char *
diff --git a/src/lib/elementary/elc_player.c b/src/lib/elementary/elc_player.c
index 35c1396..96a703e 100644
--- a/src/lib/elementary/elc_player.c
+++ b/src/lib/elementary/elc_player.c
@@ -185,12 +185,12 @@ _update_theme_slider(Evas_Object *obj, Evas_Object *sl, const char *name, const
185 elm_object_disabled_set(sl, elm_widget_disabled_get(obj)); 185 elm_object_disabled_set(sl, elm_widget_disabled_get(obj));
186} 186}
187 187
188EOLIAN static Efl_Ui_Theme_Apply 188EOLIAN static Efl_Ui_Theme_Apply_Result
189_elm_player_efl_ui_widget_theme_apply(Eo *obj, Elm_Player_Data *sd) 189_elm_player_efl_ui_widget_theme_apply(Eo *obj, Elm_Player_Data *sd)
190{ 190{
191 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 191 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
192 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 192 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
193 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 193 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
194 194
195 _update_theme_button(obj, sd->forward, "forward"); 195 _update_theme_button(obj, sd->forward, "forward");
196 _update_theme_button(obj, sd->info, "info"); 196 _update_theme_button(obj, sd->info, "info");
diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c
index fa6091c..877fc64 100644
--- a/src/lib/elementary/elc_popup.c
+++ b/src/lib/elementary/elc_popup.c
@@ -365,7 +365,7 @@ _populate_theme_scroll(Elm_Popup_Data *sd)
365 sd->theme_scroll = EINA_FALSE; 365 sd->theme_scroll = EINA_FALSE;
366} 366}
367 367
368EOLIAN static Efl_Ui_Theme_Apply 368EOLIAN static Efl_Ui_Theme_Apply_Result
369_elm_popup_efl_ui_widget_theme_apply(Eo *obj, Elm_Popup_Data *sd) 369_elm_popup_efl_ui_widget_theme_apply(Eo *obj, Elm_Popup_Data *sd)
370{ 370{
371 Elm_Popup_Item_Data *it; 371 Elm_Popup_Item_Data *it;
@@ -439,7 +439,7 @@ _elm_popup_efl_ui_widget_theme_apply(Eo *obj, Elm_Popup_Data *sd)
439 /* access */ 439 /* access */
440 if (_elm_config->access_mode) _access_obj_process(obj, EINA_TRUE); 440 if (_elm_config->access_mode) _access_obj_process(obj, EINA_TRUE);
441 441
442 return EFL_UI_THEME_APPLY_SUCCESS; 442 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
443} 443}
444 444
445static void 445static void
diff --git a/src/lib/elementary/elm_actionslider.c b/src/lib/elementary/elm_actionslider.c
index 47652d6..b9f295f 100644
--- a/src/lib/elementary/elm_actionslider.c
+++ b/src/lib/elementary/elm_actionslider.c
@@ -113,18 +113,18 @@ _mirroredness_change_eval(Evas_Object *obj)
113 (wd->resize_obj, "elm.drag_button_base", 1.0 - pos, 0.5); 113 (wd->resize_obj, "elm.drag_button_base", 1.0 - pos, 0.5);
114} 114}
115 115
116EOLIAN static Efl_Ui_Theme_Apply 116EOLIAN static Efl_Ui_Theme_Apply_Result
117_elm_actionslider_efl_ui_widget_theme_apply(Eo *obj, Elm_Actionslider_Data *sd EINA_UNUSED) 117_elm_actionslider_efl_ui_widget_theme_apply(Eo *obj, Elm_Actionslider_Data *sd EINA_UNUSED)
118{ 118{
119 Eina_Bool mirrored; 119 Eina_Bool mirrored;
120 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 120 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
121 121
122 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 122 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
123 123
124 mirrored = elm_object_mirrored_get(obj); 124 mirrored = elm_object_mirrored_get(obj);
125 125
126 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 126 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
127 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 127 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
128 128
129 if (elm_object_mirrored_get(obj) != mirrored) 129 if (elm_object_mirrored_get(obj) != mirrored)
130 _mirroredness_change_eval(obj); 130 _mirroredness_change_eval(obj);
diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c
index aa5366e..2c6d326 100644
--- a/src/lib/elementary/elm_box.c
+++ b/src/lib/elementary/elm_box.c
@@ -57,15 +57,15 @@ _child_removed_cb_proxy(void *data, const Efl_Event *event)
57 efl_event_callback_legacy_call(box, ELM_BOX_EVENT_CHILD_REMOVED, child); 57 efl_event_callback_legacy_call(box, ELM_BOX_EVENT_CHILD_REMOVED, child);
58} 58}
59 59
60EOLIAN static Efl_Ui_Theme_Apply 60EOLIAN static Efl_Ui_Theme_Apply_Result
61_elm_box_efl_ui_widget_theme_apply(Eo *obj, Elm_Box_Data *sd EINA_UNUSED) 61_elm_box_efl_ui_widget_theme_apply(Eo *obj, Elm_Box_Data *sd EINA_UNUSED)
62{ 62{
63 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 63 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
64 64
65 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 65 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
66 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 66 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
67 67
68 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 68 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
69 evas_object_smart_calculate(wd->resize_obj); 69 evas_object_smart_calculate(wd->resize_obj);
70 70
71 return int_ret; 71 return int_ret;
diff --git a/src/lib/elementary/elm_calendar.c b/src/lib/elementary/elm_calendar.c
index 9b54815..82335e7 100644
--- a/src/lib/elementary/elm_calendar.c
+++ b/src/lib/elementary/elm_calendar.c
@@ -842,13 +842,13 @@ _spinner_buttons_add(Evas_Object *obj, Elm_Calendar_Data *sd)
842 } 842 }
843} 843}
844 844
845EOLIAN static Efl_Ui_Theme_Apply 845EOLIAN static Efl_Ui_Theme_Apply_Result
846_elm_calendar_efl_ui_widget_theme_apply(Eo *obj, Elm_Calendar_Data *sd) 846_elm_calendar_efl_ui_widget_theme_apply(Eo *obj, Elm_Calendar_Data *sd)
847{ 847{
848 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 848 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
849 849
850 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 850 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
851 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 851 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
852 852
853 _spinner_buttons_add(obj, sd); 853 _spinner_buttons_add(obj, sd);
854 854
diff --git a/src/lib/elementary/elm_clock.c b/src/lib/elementary/elm_clock.c
index 3fd8178..2ace344 100644
--- a/src/lib/elementary/elm_clock.c
+++ b/src/lib/elementary/elm_clock.c
@@ -627,13 +627,13 @@ _time_update(Evas_Object *obj, Eina_Bool theme_update)
627 sd->cur.ampm = -1; 627 sd->cur.ampm = -1;
628} 628}
629 629
630EOLIAN static Efl_Ui_Theme_Apply 630EOLIAN static Efl_Ui_Theme_Apply_Result
631_elm_clock_efl_ui_widget_theme_apply(Eo *obj, Elm_Clock_Data *sd EINA_UNUSED) 631_elm_clock_efl_ui_widget_theme_apply(Eo *obj, Elm_Clock_Data *sd EINA_UNUSED)
632{ 632{
633 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 633 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
634 634
635 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 635 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
636 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 636 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
637 637
638 _time_update(obj, EINA_TRUE); 638 _time_update(obj, EINA_TRUE);
639 639
diff --git a/src/lib/elementary/elm_code_widget.c b/src/lib/elementary/elm_code_widget.c
index b4c1461..dba2857 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -2346,15 +2346,15 @@ _elm_code_widget_theme_refresh(Eo *obj, Elm_Code_Widget_Data *pd)
2346 } 2346 }
2347} 2347}
2348 2348
2349EOLIAN static Efl_Ui_Theme_Apply 2349EOLIAN static Efl_Ui_Theme_Apply_Result
2350_elm_code_widget_efl_ui_widget_theme_apply(Eo *obj, Elm_Code_Widget_Data *pd) 2350_elm_code_widget_efl_ui_widget_theme_apply(Eo *obj, Elm_Code_Widget_Data *pd)
2351{ 2351{
2352 if (!efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS))) 2352 if (!efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS)))
2353 return EFL_UI_THEME_APPLY_FAILED; 2353 return EFL_UI_THEME_APPLY_RESULT_FAIL;
2354 2354
2355 _elm_code_widget_theme_refresh(obj, pd); 2355 _elm_code_widget_theme_refresh(obj, pd);
2356 2356
2357 return EFL_UI_THEME_APPLY_SUCCESS; 2357 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
2358} 2358}
2359 2359
2360EOLIAN static int 2360EOLIAN static int
diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c
index 8021754..ef78578 100644
--- a/src/lib/elementary/elm_colorselector.c
+++ b/src/lib/elementary/elm_colorselector.c
@@ -1317,7 +1317,7 @@ _color_bars_add(Evas_Object *obj)
1317 } 1317 }
1318} 1318}
1319 1319
1320EOLIAN static Efl_Ui_Theme_Apply 1320EOLIAN static Efl_Ui_Theme_Apply_Result
1321_elm_colorselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd) 1321_elm_colorselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd)
1322{ 1322{
1323 int i; 1323 int i;
@@ -1328,11 +1328,11 @@ _elm_colorselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd
1328 unsigned int h_pad = DEFAULT_HOR_PAD; 1328 unsigned int h_pad = DEFAULT_HOR_PAD;
1329 unsigned int v_pad = DEFAULT_VER_PAD; 1329 unsigned int v_pad = DEFAULT_VER_PAD;
1330 1330
1331 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 1331 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
1332 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 1332 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
1333 1333
1334 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 1334 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
1335 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 1335 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
1336 1336
1337 if ((sd->mode == ELM_COLORSELECTOR_PALETTE) || 1337 if ((sd->mode == ELM_COLORSELECTOR_PALETTE) ||
1338 (sd->mode == ELM_COLORSELECTOR_ALL) || 1338 (sd->mode == ELM_COLORSELECTOR_ALL) ||
diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c
index 8ac0349..4c4035d 100644
--- a/src/lib/elementary/elm_conform.c
+++ b/src/lib/elementary/elm_conform.c
@@ -573,13 +573,13 @@ _on_rotation_changed(void *data, const Efl_Event *event EINA_UNUSED)
573 } 573 }
574} 574}
575 575
576EOLIAN static Efl_Ui_Theme_Apply 576EOLIAN static Efl_Ui_Theme_Apply_Result
577_elm_conformant_efl_ui_widget_theme_apply(Eo *obj, Elm_Conformant_Data *_pd EINA_UNUSED) 577_elm_conformant_efl_ui_widget_theme_apply(Eo *obj, Elm_Conformant_Data *_pd EINA_UNUSED)
578{ 578{
579 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 579 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
580 580
581 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 581 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
582 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 582 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
583 583
584 _conformant_parts_swallow(obj); 584 _conformant_parts_swallow(obj);
585 585
diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c
index 8f70994..5865a40 100644
--- a/src/lib/elementary/elm_dayselector.c
+++ b/src/lib/elementary/elm_dayselector.c
@@ -123,17 +123,17 @@ _item_location_get(Elm_Dayselector_Data *sd,
123 ELM_DAYSELECTOR_MAX; 123 ELM_DAYSELECTOR_MAX;
124} 124}
125 125
126EOLIAN static Efl_Ui_Theme_Apply 126EOLIAN static Efl_Ui_Theme_Apply_Result
127_elm_dayselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Dayselector_Data *sd) 127_elm_dayselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Dayselector_Data *sd)
128{ 128{
129 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 129 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
130 130
131 Eina_List *l; 131 Eina_List *l;
132 char buf[1024]; 132 char buf[1024];
133 Elm_Dayselector_Item_Data *it; 133 Elm_Dayselector_Item_Data *it;
134 134
135 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 135 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
136 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 136 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
137 137
138 EINA_LIST_FOREACH(sd->items, l, it) 138 EINA_LIST_FOREACH(sd->items, l, it)
139 { 139 {
diff --git a/src/lib/elementary/elm_diskselector.c b/src/lib/elementary/elm_diskselector.c
index ce2e9d5..a7034f1 100644
--- a/src/lib/elementary/elm_diskselector.c
+++ b/src/lib/elementary/elm_diskselector.c
@@ -811,18 +811,18 @@ _theme_data_get(Evas_Object *obj)
811 else sd->minh = -1; 811 else sd->minh = -1;
812} 812}
813 813
814EOLIAN static Efl_Ui_Theme_Apply 814EOLIAN static Efl_Ui_Theme_Apply_Result
815_elm_diskselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Diskselector_Data *sd) 815_elm_diskselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Diskselector_Data *sd)
816{ 816{
817 Eina_List *l; 817 Eina_List *l;
818 Elm_Diskselector_Item_Data *it; 818 Elm_Diskselector_Item_Data *it;
819 Evas_Object *blank; 819 Evas_Object *blank;
820 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 820 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
821 Evas *evas; 821 Evas *evas;
822 const char *style = elm_widget_style_get(obj); 822 const char *style = elm_widget_style_get(obj);
823 823
824 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 824 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
825 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 825 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
826 826
827 evas = evas_object_evas_get(obj); 827 evas = evas_object_evas_get(obj);
828 evas_event_freeze(evas); 828 evas_event_freeze(evas);
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index b4ad237..335f05f 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -855,22 +855,22 @@ _elm_entry_background_switch(Evas_Object *from_edje, Evas_Object *to_edje)
855 855
856/* we can't issue the layout's theming code here, cause it assumes an 856/* we can't issue the layout's theming code here, cause it assumes an
857 * unique edje object, always */ 857 * unique edje object, always */
858EOLIAN static Efl_Ui_Theme_Apply 858EOLIAN static Efl_Ui_Theme_Apply_Result
859_elm_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd) 859_elm_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
860{ 860{
861 const char *str; 861 const char *str;
862 const char *t; 862 const char *t;
863 const char *stl_user; 863 const char *stl_user;
864 const char *style = elm_widget_style_get(obj); 864 const char *style = elm_widget_style_get(obj);
865 Efl_Ui_Theme_Apply theme_apply; 865 Efl_Ui_Theme_Apply_Result theme_apply;
866 int cursor_pos; 866 int cursor_pos;
867 867
868 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 868 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
869 869
870 // Note: We are skipping elm_layout here! This is by design. 870 // Note: We are skipping elm_layout here! This is by design.
871 // This assumes the following inheritance: my_class -> layout -> widget ... 871 // This assumes the following inheritance: my_class -> layout -> widget ...
872 theme_apply = efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS)); 872 theme_apply = efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS));
873 if (!theme_apply) return EFL_UI_THEME_APPLY_FAILED; 873 if (!theme_apply) return EFL_UI_THEME_APPLY_RESULT_FAIL;
874 874
875 evas_event_freeze(evas_object_evas_get(obj)); 875 evas_event_freeze(evas_object_evas_get(obj));
876 876
@@ -957,7 +957,7 @@ _elm_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
957 957
958 if (sd->scroll) 958 if (sd->scroll)
959 { 959 {
960 Efl_Ui_Theme_Apply ok = EFL_UI_THEME_APPLY_FAILED; 960 Efl_Ui_Theme_Apply_Result ok = EFL_UI_THEME_APPLY_RESULT_FAIL;
961 961
962 efl_ui_mirrored_set(obj, efl_ui_mirrored_get(obj)); 962 efl_ui_mirrored_set(obj, efl_ui_mirrored_get(obj));
963 963
diff --git a/src/lib/elementary/elm_flipselector.c b/src/lib/elementary/elm_flipselector.c
index 459f4cc..54b6957 100644
--- a/src/lib/elementary/elm_flipselector.c
+++ b/src/lib/elementary/elm_flipselector.c
@@ -350,16 +350,16 @@ _item_new(Evas_Object *obj,
350 return eo_item; 350 return eo_item;
351} 351}
352 352
353EOLIAN static Efl_Ui_Theme_Apply 353EOLIAN static Efl_Ui_Theme_Apply_Result
354_elm_flipselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Flipselector_Data *sd) 354_elm_flipselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Flipselector_Data *sd)
355{ 355{
356 const char *max_len; 356 const char *max_len;
357 357
358 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 358 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
359 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 359 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
360 360
361 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 361 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
362 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 362 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
363 363
364 max_len = edje_object_data_get(wd->resize_obj, "max_len"); 364 max_len = edje_object_data_get(wd->resize_obj, "max_len");
365 if (!max_len) sd->max_len = MAX_LEN_DEFAULT; 365 if (!max_len) sd->max_len = MAX_LEN_DEFAULT;
diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index 232ff2a..61ab892 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -1154,10 +1154,10 @@ _view_style_update(Elm_Gen_Item *it, Evas_Object *view, const char *style)
1154 ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd); 1154 ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd);
1155 snprintf(buf, sizeof(buf), "item/%s", style ? style : "default"); 1155 snprintf(buf, sizeof(buf), "item/%s", style ? style : "default");
1156 1156
1157 Efl_Ui_Theme_Apply th_ret = 1157 Efl_Ui_Theme_Apply_Result th_ret =
1158 elm_widget_theme_object_set(WIDGET(it), view, "gengrid", buf, 1158 elm_widget_theme_object_set(WIDGET(it), view, "gengrid", buf,
1159 elm_widget_style_get(WIDGET(it))); 1159 elm_widget_style_get(WIDGET(it)));
1160 if (th_ret == EFL_UI_THEME_APPLY_FAILED) 1160 if (th_ret == EFL_UI_THEME_APPLY_RESULT_FAIL)
1161 { 1161 {
1162 ERR("%s is not a valid gengrid item style. " 1162 ERR("%s is not a valid gengrid item style. "
1163 "Automatically falls back into default style.", 1163 "Automatically falls back into default style.",
@@ -3574,12 +3574,12 @@ _mirrored_set(Evas_Object *obj,
3574 } 3574 }
3575} 3575}
3576 3576
3577EOLIAN static Efl_Ui_Theme_Apply 3577EOLIAN static Efl_Ui_Theme_Apply_Result
3578_elm_gengrid_efl_ui_widget_theme_apply(Eo *obj, Elm_Gengrid_Data *sd EINA_UNUSED) 3578_elm_gengrid_efl_ui_widget_theme_apply(Eo *obj, Elm_Gengrid_Data *sd EINA_UNUSED)
3579{ 3579{
3580 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 3580 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
3581 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 3581 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
3582 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 3582 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
3583 3583
3584 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 3584 _mirrored_set(obj, efl_ui_mirrored_get(obj));
3585 3585
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index aaa183a..bafc217 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -563,10 +563,10 @@ _view_style_update(Elm_Gen_Item *it, Evas_Object *view, const char *style)
563 "",style ? : "default"); 563 "",style ? : "default");
564 } 564 }
565 565
566 Efl_Ui_Theme_Apply th_ret = 566 Efl_Ui_Theme_Apply_Result th_ret =
567 elm_widget_theme_object_set(WIDGET(it), view, "genlist", buf, 567 elm_widget_theme_object_set(WIDGET(it), view, "genlist", buf,
568 elm_widget_style_get(WIDGET(it))); 568 elm_widget_style_get(WIDGET(it)));
569 if (th_ret == EFL_UI_THEME_APPLY_FAILED) 569 if (th_ret == EFL_UI_THEME_APPLY_RESULT_FAIL)
570 { 570 {
571 ERR("%s is not a valid genlist item style. " 571 ERR("%s is not a valid genlist item style. "
572 "Automatically falls back into default style.", 572 "Automatically falls back into default style.",
@@ -3465,17 +3465,17 @@ _mirrored_set(Evas_Object *obj,
3465 efl_ui_mirrored_set(obj, rtl); 3465 efl_ui_mirrored_set(obj, rtl);
3466} 3466}
3467 3467
3468EOLIAN static Efl_Ui_Theme_Apply 3468EOLIAN static Efl_Ui_Theme_Apply_Result
3469_elm_genlist_efl_ui_widget_theme_apply(Eo *obj, Elm_Genlist_Data *sd) 3469_elm_genlist_efl_ui_widget_theme_apply(Eo *obj, Elm_Genlist_Data *sd)
3470{ 3470{
3471 Item_Block *itb; 3471 Item_Block *itb;
3472 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 3472 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
3473 Eina_List *l; 3473 Eina_List *l;
3474 Elm_Gen_Item *it; 3474 Elm_Gen_Item *it;
3475 Evas *e; 3475 Evas *e;
3476 3476
3477 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 3477 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
3478 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 3478 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
3479 3479
3480 e = evas_object_evas_get(obj); 3480 e = evas_object_evas_get(obj);
3481 evas_event_freeze(e); 3481 evas_event_freeze(e);
diff --git a/src/lib/elementary/elm_grid.c b/src/lib/elementary/elm_grid.c
index 7443047..b927981 100644
--- a/src/lib/elementary/elm_grid.c
+++ b/src/lib/elementary/elm_grid.c
@@ -40,13 +40,13 @@ _mirrored_set(Evas_Object *obj, Eina_Bool rtl)
40 evas_object_grid_mirrored_set(wd->resize_obj, rtl); 40 evas_object_grid_mirrored_set(wd->resize_obj, rtl);
41} 41}
42 42
43EOLIAN static Efl_Ui_Theme_Apply 43EOLIAN static Efl_Ui_Theme_Apply_Result
44_elm_grid_efl_ui_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED) 44_elm_grid_efl_ui_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED)
45{ 45{
46 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 46 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
47 47
48 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 48 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
49 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 49 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
50 50
51 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 51 _mirrored_set(obj, efl_ui_mirrored_get(obj));
52 52
diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c
index 21815f7..1f73ce9 100644
--- a/src/lib/elementary/elm_hover.c
+++ b/src/lib/elementary/elm_hover.c
@@ -298,12 +298,12 @@ _hov_show_do(Evas_Object *obj)
298 } 298 }
299} 299}
300 300
301EOLIAN static Efl_Ui_Theme_Apply 301EOLIAN static Efl_Ui_Theme_Apply_Result
302_elm_hover_efl_ui_widget_theme_apply(Eo *obj, Elm_Hover_Data *sd) 302_elm_hover_efl_ui_widget_theme_apply(Eo *obj, Elm_Hover_Data *sd)
303{ 303{
304 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 304 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
305 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 305 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
306 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 306 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
307 307
308 if (sd->smt_sub) _elm_hover_smt_sub_re_eval(obj); 308 if (sd->smt_sub) _elm_hover_smt_sub_re_eval(obj);
309 309
diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c
index 7aa07e3..d05fcbe 100644
--- a/src/lib/elementary/elm_icon.c
+++ b/src/lib/elementary/elm_icon.c
@@ -363,16 +363,16 @@ _elm_icon_efl_file_file_set(Eo *obj, Elm_Icon_Data *sd, const char *file, const
363 return EINA_TRUE; 363 return EINA_TRUE;
364} 364}
365 365
366EOLIAN static Efl_Ui_Theme_Apply 366EOLIAN static Efl_Ui_Theme_Apply_Result
367_elm_icon_efl_ui_widget_theme_apply(Eo *obj, Elm_Icon_Data *sd) 367_elm_icon_efl_ui_widget_theme_apply(Eo *obj, Elm_Icon_Data *sd)
368{ 368{
369 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 369 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
370 370
371 if (sd->stdicon) 371 if (sd->stdicon)
372 _elm_theme_object_icon_set(obj, sd->stdicon, elm_widget_style_get(obj)); 372 _elm_theme_object_icon_set(obj, sd->stdicon, elm_widget_style_get(obj));
373 373
374 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 374 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
375 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 375 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
376 376
377 return int_ret; 377 return int_ret;
378} 378}
diff --git a/src/lib/elementary/elm_index.c b/src/lib/elementary/elm_index.c
index cea1af6..c82ab64 100644
--- a/src/lib/elementary/elm_index.c
+++ b/src/lib/elementary/elm_index.c
@@ -432,13 +432,13 @@ _index_priority_change(void *data, Elm_Index_Item_Data *it)
432 } 432 }
433} 433}
434 434
435EOLIAN static Efl_Ui_Theme_Apply 435EOLIAN static Efl_Ui_Theme_Apply_Result
436_elm_index_efl_ui_widget_theme_apply(Eo *obj, Elm_Index_Data *sd) 436_elm_index_efl_ui_widget_theme_apply(Eo *obj, Elm_Index_Data *sd)
437{ 437{
438 Evas_Coord minw = 0, minh = 0; 438 Evas_Coord minw = 0, minh = 0;
439 Elm_Object_Item *eo_item; 439 Elm_Object_Item *eo_item;
440 440
441 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 441 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
442 442
443 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 443 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
444 444
@@ -451,7 +451,7 @@ _elm_index_efl_ui_widget_theme_apply(Eo *obj, Elm_Index_Data *sd)
451 elm_widget_theme_element_set(obj, "base/vertical"); 451 elm_widget_theme_element_set(obj, "base/vertical");
452 452
453 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 453 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
454 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 454 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
455 455
456 elm_coords_finger_size_adjust(1, &minw, 1, &minh); 456 elm_coords_finger_size_adjust(1, &minw, 1, &minh);
457 evas_object_size_hint_min_set(sd->event_rect[0], minw, minh); 457 evas_object_size_hint_min_set(sd->event_rect[0], minw, minh);
diff --git a/src/lib/elementary/elm_label.c b/src/lib/elementary/elm_label.c
index 2a7734b..51c367a 100644
--- a/src/lib/elementary/elm_label.c
+++ b/src/lib/elementary/elm_label.c
@@ -182,17 +182,17 @@ _elm_label_horizontal_size_policy_update(Eo *obj, Elm_Label_Data *sd)
182 edje_object_message_signal_process(wd->resize_obj); 182 edje_object_message_signal_process(wd->resize_obj);
183} 183}
184 184
185EOLIAN static Efl_Ui_Theme_Apply 185EOLIAN static Efl_Ui_Theme_Apply_Result
186_elm_label_efl_ui_widget_theme_apply(Eo *obj, Elm_Label_Data *sd) 186_elm_label_efl_ui_widget_theme_apply(Eo *obj, Elm_Label_Data *sd)
187{ 187{
188 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 188 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
189 189
190 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 190 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
191 191
192 evas_event_freeze(evas_object_evas_get(obj)); 192 evas_event_freeze(evas_object_evas_get(obj));
193 193
194 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 194 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
195 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 195 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
196 196
197 _elm_label_horizontal_size_policy_update(obj, sd); 197 _elm_label_horizontal_size_policy_update(obj, sd);
198 198
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index d72909c..ef3a993 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -1118,15 +1118,15 @@ _mirrored_set(Evas_Object *obj,
1118 } 1118 }
1119} 1119}
1120 1120
1121EOLIAN static Efl_Ui_Theme_Apply 1121EOLIAN static Efl_Ui_Theme_Apply_Result
1122_elm_list_efl_ui_widget_theme_apply(Eo *obj, Elm_List_Data *sd) 1122_elm_list_efl_ui_widget_theme_apply(Eo *obj, Elm_List_Data *sd)
1123{ 1123{
1124 Elm_Object_Item *eo_it; 1124 Elm_Object_Item *eo_it;
1125 Eina_List *n; 1125 Eina_List *n;
1126 1126
1127 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 1127 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
1128 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 1128 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
1129 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 1129 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
1130 1130
1131 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 1131 _mirrored_set(obj, efl_ui_mirrored_get(obj));
1132 1132
diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c
index 0b0b213..00f8c22 100644
--- a/src/lib/elementary/elm_main.c
+++ b/src/lib/elementary/elm_main.c
@@ -751,6 +751,8 @@ elm_quicklaunch_init(int argc EINA_UNUSED,
751 751
752 EINA_SAFETY_ON_FALSE_GOTO(ecore_file_init(), fail_ecore_file); 752 EINA_SAFETY_ON_FALSE_GOTO(ecore_file_init(), fail_ecore_file);
753 753
754 _elm_theme_init();
755
754 _elm_exit_handler = 756 _elm_exit_handler =
755 ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL); 757 ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL);
756 758
diff --git a/src/lib/elementary/elm_map.c b/src/lib/elementary/elm_map.c
index 0a72dd9..26f9dee 100644
--- a/src/lib/elementary/elm_map.c
+++ b/src/lib/elementary/elm_map.c
@@ -3978,13 +3978,13 @@ _elm_map_pan_class_constructor(Efl_Class *klass)
3978 3978
3979#include "elm_map_pan.eo.c" 3979#include "elm_map_pan.eo.c"
3980 3980
3981EOLIAN static Efl_Ui_Theme_Apply 3981EOLIAN static Efl_Ui_Theme_Apply_Result
3982_elm_map_efl_ui_widget_theme_apply(Eo *obj, Elm_Map_Data *sd EINA_UNUSED) 3982_elm_map_efl_ui_widget_theme_apply(Eo *obj, Elm_Map_Data *sd EINA_UNUSED)
3983{ 3983{
3984 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 3984 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
3985 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 3985 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
3986 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 3986 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
3987 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 3987 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
3988 3988
3989 3989
3990 elm_widget_theme_object_set 3990 elm_widget_theme_object_set
diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c
index 36c9a46..a427ec8 100644
--- a/src/lib/elementary/elm_mapbuf.c
+++ b/src/lib/elementary/elm_mapbuf.c
@@ -36,12 +36,12 @@ _sizing_eval(Evas_Object *obj)
36 evas_object_size_hint_max_set(obj, maxw, maxh); 36 evas_object_size_hint_max_set(obj, maxw, maxh);
37} 37}
38 38
39EOLIAN static Efl_Ui_Theme_Apply 39EOLIAN static Efl_Ui_Theme_Apply_Result
40_elm_mapbuf_efl_ui_widget_theme_apply(Eo *obj, Elm_Mapbuf_Data *sd EINA_UNUSED) 40_elm_mapbuf_efl_ui_widget_theme_apply(Eo *obj, Elm_Mapbuf_Data *sd EINA_UNUSED)
41{ 41{
42 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 42 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
43 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 43 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
44 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 44 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
45 45
46 _sizing_eval(obj); 46 _sizing_eval(obj);
47 47
diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c
index 60069c8..43eeba7 100644
--- a/src/lib/elementary/elm_menu.c
+++ b/src/lib/elementary/elm_menu.c
@@ -232,10 +232,10 @@ _sizing_eval(Evas_Object *obj)
232 } 232 }
233} 233}
234 234
235EOLIAN static Efl_Ui_Theme_Apply 235EOLIAN static Efl_Ui_Theme_Apply_Result
236_elm_menu_efl_ui_widget_theme_apply(Eo *obj, Elm_Menu_Data *sd) 236_elm_menu_efl_ui_widget_theme_apply(Eo *obj, Elm_Menu_Data *sd)
237{ 237{
238 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 238 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
239 239
240 Eina_List *l, *_l, *_ll, *ll = NULL; 240 Eina_List *l, *_l, *_ll, *ll = NULL;
241 Elm_Object_Item *eo_item; 241 Elm_Object_Item *eo_item;
@@ -243,7 +243,7 @@ _elm_menu_efl_ui_widget_theme_apply(Eo *obj, Elm_Menu_Data *sd)
243 char style[1024]; 243 char style[1024];
244 244
245 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 245 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
246 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 246 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
247 247
248 if (sd->menu_bar) 248 if (sd->menu_bar)
249 snprintf(style, sizeof(style), "main_menu/%s", elm_widget_style_get(obj)); 249 snprintf(style, sizeof(style), "main_menu/%s", elm_widget_style_get(obj));
diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c
index 5441608..7acf815 100644
--- a/src/lib/elementary/elm_notify.c
+++ b/src/lib/elementary/elm_notify.c
@@ -20,7 +20,7 @@
20#define MY_CLASS_NAME "Elm_Notify" 20#define MY_CLASS_NAME "Elm_Notify"
21#define MY_CLASS_NAME_LEGACY "elm_notify" 21#define MY_CLASS_NAME_LEGACY "elm_notify"
22 22
23static Efl_Ui_Theme_Apply 23static Efl_Ui_Theme_Apply_Result
24_notify_theme_apply(Evas_Object *obj) 24_notify_theme_apply(Evas_Object *obj)
25{ 25{
26 const char *style = elm_widget_style_get(obj); 26 const char *style = elm_widget_style_get(obj);
@@ -141,12 +141,12 @@ _sizing_eval(Evas_Object *obj)
141 evas_object_resize(obj, w, h); 141 evas_object_resize(obj, w, h);
142} 142}
143 143
144EOLIAN static Efl_Ui_Theme_Apply 144EOLIAN static Efl_Ui_Theme_Apply_Result
145_elm_notify_efl_ui_widget_theme_apply(Eo *obj, Elm_Notify_Data *sd) 145_elm_notify_efl_ui_widget_theme_apply(Eo *obj, Elm_Notify_Data *sd)
146{ 146{
147 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 147 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
148 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 148 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
149 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 149 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
150 150
151 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 151 _mirrored_set(obj, efl_ui_mirrored_get(obj));
152 152
diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index 5366684..9c908ae 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -216,18 +216,18 @@ _scrollable_layout_theme_set(Eo *obj, Elm_Panel_Data *sd)
216 _access_obj_process(obj, EINA_TRUE); 216 _access_obj_process(obj, EINA_TRUE);
217} 217}
218 218
219EOLIAN static Efl_Ui_Theme_Apply 219EOLIAN static Efl_Ui_Theme_Apply_Result
220_elm_panel_efl_ui_widget_theme_apply(Eo *obj, Elm_Panel_Data *sd) 220_elm_panel_efl_ui_widget_theme_apply(Eo *obj, Elm_Panel_Data *sd)
221{ 221{
222 const char *str; 222 const char *str;
223 Evas_Coord minw = 0, minh = 0; 223 Evas_Coord minw = 0, minh = 0;
224 224
225 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 225 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
226 226
227 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 227 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
228 228
229 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 229 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
230 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 230 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
231 231
232 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 232 _mirrored_set(obj, efl_ui_mirrored_get(obj));
233 233
diff --git a/src/lib/elementary/elm_photo.c b/src/lib/elementary/elm_photo.c
index 8a92e62..ea83e27 100644
--- a/src/lib/elementary/elm_photo.c
+++ b/src/lib/elementary/elm_photo.c
@@ -49,14 +49,14 @@ _sizing_eval(Evas_Object *obj)
49 evas_object_size_hint_max_set(obj, maxw, maxh); 49 evas_object_size_hint_max_set(obj, maxw, maxh);
50} 50}
51 51
52EOLIAN static Efl_Ui_Theme_Apply 52EOLIAN static Efl_Ui_Theme_Apply_Result
53_elm_photo_efl_ui_widget_theme_apply(Eo *obj, Elm_Photo_Data *sd) 53_elm_photo_efl_ui_widget_theme_apply(Eo *obj, Elm_Photo_Data *sd)
54{ 54{
55 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 55 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
56 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 56 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
57 57
58 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 58 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
59 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 59 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
60 60
61 edje_object_mirrored_set 61 edje_object_mirrored_set
62 (wd->resize_obj, efl_ui_mirrored_get(obj)); 62 (wd->resize_obj, efl_ui_mirrored_get(obj));
diff --git a/src/lib/elementary/elm_plug.c b/src/lib/elementary/elm_plug.c
index 1331264..178e4a9 100644
--- a/src/lib/elementary/elm_plug.c
+++ b/src/lib/elementary/elm_plug.c
@@ -80,12 +80,12 @@ _elm_plug_efl_ui_focus_object_on_focus_update(Eo *obj, void *sd EINA_UNUSED)
80 return EINA_TRUE; 80 return EINA_TRUE;
81} 81}
82 82
83EOLIAN static Efl_Ui_Theme_Apply 83EOLIAN static Efl_Ui_Theme_Apply_Result
84_elm_plug_efl_ui_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED) 84_elm_plug_efl_ui_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED)
85{ 85{
86 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 86 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
87 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 87 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
88 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 88 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
89 89
90 _sizing_eval(obj); 90 _sizing_eval(obj);
91 91
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index 9a17e09..57aa2fa 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -108,6 +108,7 @@ typedef struct _Elm_Config_Bindings_Widget Elm_Config_Bindings_Widget;
108typedef struct _Elm_Config_Binding_Key Elm_Config_Binding_Key; 108typedef struct _Elm_Config_Binding_Key Elm_Config_Binding_Key;
109typedef struct _Elm_Config_Binding_Modifier Elm_Config_Binding_Modifier; 109typedef struct _Elm_Config_Binding_Modifier Elm_Config_Binding_Modifier;
110typedef struct _Elm_Module Elm_Module; 110typedef struct _Elm_Module Elm_Module;
111typedef struct _Efl_Ui_Theme_Data Efl_Ui_Theme_Data;
111 112
112struct _Edje_Signal_Data 113struct _Edje_Signal_Data
113{ 114{
@@ -142,13 +143,19 @@ struct _Elm_Theme
142 Elm_Theme *ref_theme; 143 Elm_Theme *ref_theme;
143 Eina_List *referrers; 144 Eina_List *referrers;
144 const char *theme; 145 const char *theme;
145 int ref;
146 Eina_Hash *cache_style_load_failed; 146 Eina_Hash *cache_style_load_failed;
147 147
148 /* these only exist to preserve compat with bad elm_theme_XYZ_list_get() api */ 148 /* these only exist to preserve compat with bad elm_theme_XYZ_list_get() api */
149 Eina_List *overlay_items; 149 Eina_List *overlay_items;
150 Eina_List *theme_items; 150 Eina_List *theme_items;
151 Eina_List *extension_items; 151 Eina_List *extension_items;
152
153 Efl_Ui_Theme *eo_theme; //for accessing through the Eo interface
154};
155
156struct _Efl_Ui_Theme_Data
157{
158 Elm_Theme *th;
152}; 159};
153 160
154/* increment this whenever we change config enough that you need new 161/* increment this whenever we change config enough that you need new
@@ -568,7 +575,7 @@ void _elm_win_standard_init(Eo *win);
568 575
569Ecore_X_Window _elm_ee_xwin_get(const Ecore_Evas *ee); 576Ecore_X_Window _elm_ee_xwin_get(const Ecore_Evas *ee);
570 577
571Efl_Ui_Theme_Apply _elm_theme_object_set(Evas_Object *parent, 578Efl_Ui_Theme_Apply_Result _elm_theme_object_set(Evas_Object *parent,
572 Evas_Object *o, 579 Evas_Object *o,
573 const char *clas, 580 const char *clas,
574 const char *group, 581 const char *group,
@@ -576,7 +583,7 @@ Efl_Ui_Theme_Apply _elm_theme_object_set(Evas_Object *parent,
576Eina_Bool _elm_theme_object_icon_set(Evas_Object *o, 583Eina_Bool _elm_theme_object_icon_set(Evas_Object *o,
577 const char *group, 584 const char *group,
578 const char *style); 585 const char *style);
579Efl_Ui_Theme_Apply _elm_theme_set(Elm_Theme *th, 586Efl_Ui_Theme_Apply_Result _elm_theme_set(Elm_Theme *th,
580 Evas_Object *o, 587 Evas_Object *o,
581 const char *clas, 588 const char *clas,
582 const char *group, 589 const char *group,
@@ -590,6 +597,7 @@ Eina_File *_elm_theme_group_file_find(Elm_Theme *th,
590 const char *group); 597 const char *group);
591void _elm_theme_parse(Elm_Theme *th, 598void _elm_theme_parse(Elm_Theme *th,
592 const char *theme); 599 const char *theme);
600void _elm_theme_init(void);
593void _elm_theme_shutdown(void); 601void _elm_theme_shutdown(void);
594 602
595void _elm_module_init(void); 603void _elm_module_init(void);
diff --git a/src/lib/elementary/elm_route.c b/src/lib/elementary/elm_route.c
index 0f63ce9..dc8b861 100644
--- a/src/lib/elementary/elm_route.c
+++ b/src/lib/elementary/elm_route.c
@@ -86,12 +86,12 @@ _move_resize_cb(void *data EINA_UNUSED,
86 _sizing_eval(obj); 86 _sizing_eval(obj);
87} 87}
88 88
89EOLIAN static Efl_Ui_Theme_Apply 89EOLIAN static Efl_Ui_Theme_Apply_Result
90_elm_route_efl_ui_widget_theme_apply(Eo *obj, Elm_Route_Data *sd EINA_UNUSED) 90_elm_route_efl_ui_widget_theme_apply(Eo *obj, Elm_Route_Data *sd EINA_UNUSED)
91{ 91{
92 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 92 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
93 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 93 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
94 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 94 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
95 95
96 //TODO 96 //TODO
97 97
diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c
index 580d4d2..418d967 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -388,12 +388,12 @@ _mirrored_set(Evas_Object *obj,
388 efl_ui_mirrored_set(obj, mirrored); 388 efl_ui_mirrored_set(obj, mirrored);
389} 389}
390 390
391EOLIAN static Efl_Ui_Theme_Apply 391EOLIAN static Efl_Ui_Theme_Apply_Result
392_elm_scroller_efl_ui_widget_theme_apply(Eo *obj, Elm_Scroller_Data *sd EINA_UNUSED) 392_elm_scroller_efl_ui_widget_theme_apply(Eo *obj, Elm_Scroller_Data *sd EINA_UNUSED)
393{ 393{
394 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 394 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
395 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 395 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
396 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 396 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
397 397
398 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 398 _mirrored_set(obj, efl_ui_mirrored_get(obj));
399 399
diff --git a/src/lib/elementary/elm_segment_control.c b/src/lib/elementary/elm_segment_control.c
index d0c478f..21f2c52 100644
--- a/src/lib/elementary/elm_segment_control.c
+++ b/src/lib/elementary/elm_segment_control.c
@@ -216,16 +216,16 @@ _update_list(Elm_Segment_Control_Data *sd)
216 } 216 }
217} 217}
218 218
219EOLIAN static Efl_Ui_Theme_Apply 219EOLIAN static Efl_Ui_Theme_Apply_Result
220_elm_segment_control_efl_ui_widget_theme_apply(Eo *obj, Elm_Segment_Control_Data *sd) 220_elm_segment_control_efl_ui_widget_theme_apply(Eo *obj, Elm_Segment_Control_Data *sd)
221{ 221{
222 Eina_List *l; 222 Eina_List *l;
223 Eina_Bool rtl; 223 Eina_Bool rtl;
224 Elm_Object_Item *eo_item; 224 Elm_Object_Item *eo_item;
225 225
226 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 226 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
227 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 227 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
228 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 228 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
229 229
230 rtl = efl_ui_mirrored_get(obj); 230 rtl = efl_ui_mirrored_get(obj);
231 231
diff --git a/src/lib/elementary/elm_separator.c b/src/lib/elementary/elm_separator.c
index 927b329..482ebcf 100644
--- a/src/lib/elementary/elm_separator.c
+++ b/src/lib/elementary/elm_separator.c
@@ -16,10 +16,10 @@
16#define MY_CLASS_NAME "Elm_Separator" 16#define MY_CLASS_NAME "Elm_Separator"
17#define MY_CLASS_NAME_LEGACY "elm_separator" 17#define MY_CLASS_NAME_LEGACY "elm_separator"
18 18
19EOLIAN static Efl_Ui_Theme_Apply 19EOLIAN static Efl_Ui_Theme_Apply_Result
20_elm_separator_efl_ui_widget_theme_apply(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED) 20_elm_separator_efl_ui_widget_theme_apply(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED)
21{ 21{
22 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 22 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
23 23
24 if (sd->horizontal) 24 if (sd->horizontal)
25 elm_widget_theme_element_set(obj, "horizontal"); 25 elm_widget_theme_element_set(obj, "horizontal");
@@ -27,7 +27,7 @@ _elm_separator_efl_ui_widget_theme_apply(Eo *obj, Elm_Separator_Data *sd EINA_UN
27 elm_widget_theme_element_set(obj, "vertical"); 27 elm_widget_theme_element_set(obj, "vertical");
28 28
29 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 29 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
30 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 30 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
31 31
32 return int_ret; 32 return int_ret;
33} 33}
diff --git a/src/lib/elementary/elm_slider.c b/src/lib/elementary/elm_slider.c
index 8b0e2de..d7af7d6 100644
--- a/src/lib/elementary/elm_slider.c
+++ b/src/lib/elementary/elm_slider.c
@@ -804,12 +804,12 @@ _elm_slider_theme_group_get(Evas_Object *obj, Elm_Slider_Data *sd)
804 return eina_strbuf_release(new_group); 804 return eina_strbuf_release(new_group);
805} 805}
806 806
807EOLIAN static Efl_Ui_Theme_Apply 807EOLIAN static Efl_Ui_Theme_Apply_Result
808_elm_slider_efl_ui_widget_theme_apply(Eo *obj, Elm_Slider_Data *sd) 808_elm_slider_efl_ui_widget_theme_apply(Eo *obj, Elm_Slider_Data *sd)
809{ 809{
810 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 810 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
811 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 811 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
812 EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd2, EFL_UI_THEME_APPLY_FAILED); 812 EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd2, EFL_UI_THEME_APPLY_RESULT_FAIL);
813 char *group; 813 char *group;
814 814
815 group = _elm_slider_theme_group_get(obj, sd); 815 group = _elm_slider_theme_group_get(obj, sd);
@@ -820,7 +820,7 @@ _elm_slider_efl_ui_widget_theme_apply(Eo *obj, Elm_Slider_Data *sd)
820 } 820 }
821 821
822 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 822 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
823 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 823 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
824 824
825 if (_is_horizontal(sd2->dir)) 825 if (_is_horizontal(sd2->dir))
826 evas_object_size_hint_min_set 826 evas_object_size_hint_min_set
diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c
index e5d7cbf..1e6dee9 100644
--- a/src/lib/elementary/elm_spinner.c
+++ b/src/lib/elementary/elm_spinner.c
@@ -1299,15 +1299,15 @@ _elm_spinner_efl_canvas_group_group_del(Eo *obj, Elm_Spinner_Data *sd)
1299 efl_canvas_group_del(efl_super(obj, MY_CLASS)); 1299 efl_canvas_group_del(efl_super(obj, MY_CLASS));
1300} 1300}
1301 1301
1302EOLIAN static Efl_Ui_Theme_Apply 1302EOLIAN static Efl_Ui_Theme_Apply_Result
1303_elm_spinner_efl_ui_widget_theme_apply(Eo *obj, Elm_Spinner_Data *sd) 1303_elm_spinner_efl_ui_widget_theme_apply(Eo *obj, Elm_Spinner_Data *sd)
1304{ 1304{
1305 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 1305 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
1306 1306
1307 if (!efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS))) 1307 if (!efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)))
1308 { 1308 {
1309 CRI("Failed to set layout!"); 1309 CRI("Failed to set layout!");
1310 return EFL_UI_THEME_APPLY_FAILED; 1310 return EFL_UI_THEME_APPLY_RESULT_FAIL;
1311 } 1311 }
1312 1312
1313 if (edje_object_part_exists(wd->resize_obj, "elm.swallow.dec_button")) 1313 if (edje_object_part_exists(wd->resize_obj, "elm.swallow.dec_button"))
@@ -1351,7 +1351,7 @@ _elm_spinner_efl_ui_widget_theme_apply(Eo *obj, Elm_Spinner_Data *sd)
1351 _access_spinner_register(obj, EINA_TRUE); 1351 _access_spinner_register(obj, EINA_TRUE);
1352 1352
1353 elm_layout_sizing_eval(obj); 1353 elm_layout_sizing_eval(obj);
1354 return EFL_UI_THEME_APPLY_SUCCESS; 1354 return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
1355} 1355}
1356 1356
1357static Eina_Bool _elm_spinner_smart_focus_next_enable = EINA_FALSE; 1357static Eina_Bool _elm_spinner_smart_focus_next_enable = EINA_FALSE;
diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c
index df838be..87bda3a 100644
--- a/src/lib/elementary/elm_table.c
+++ b/src/lib/elementary/elm_table.c
@@ -41,12 +41,12 @@ _mirrored_set(Evas_Object *obj, Eina_Bool rtl)
41 evas_object_table_mirrored_set(wd->resize_obj, rtl); 41 evas_object_table_mirrored_set(wd->resize_obj, rtl);
42} 42}
43 43
44EOLIAN static Efl_Ui_Theme_Apply 44EOLIAN static Efl_Ui_Theme_Apply_Result
45_elm_table_efl_ui_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED) 45_elm_table_efl_ui_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED)
46{ 46{
47 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 47 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
48 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 48 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
49 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 49 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
50 50
51 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 51 _mirrored_set(obj, efl_ui_mirrored_get(obj));
52 52
diff --git a/src/lib/elementary/elm_theme.c b/src/lib/elementary/elm_theme.c
index 7d90f27..9ddab3c 100644
--- a/src/lib/elementary/elm_theme.c
+++ b/src/lib/elementary/elm_theme.c
@@ -7,12 +7,9 @@
7#include "elm_priv.h" 7#include "elm_priv.h"
8#include "elm_icon.eo.h" 8#include "elm_icon.eo.h"
9 9
10static Elm_Theme theme_default = 10#include "efl_ui_theme.eo.h"
11{ 11
12 NULL, NULL, NULL, 12static Elm_Theme *theme_default = NULL;
13 NULL, NULL, NULL, NULL, NULL, 1, NULL,
14 NULL, NULL, NULL
15};
16 13
17static Eina_List *themes = NULL; 14static Eina_List *themes = NULL;
18 15
@@ -198,6 +195,8 @@ _elm_theme_file_clean(Eina_Inlist **files)
198static void 195static void
199_elm_theme_clear(Elm_Theme *th) 196_elm_theme_clear(Elm_Theme *th)
200{ 197{
198 Efl_Ui_Theme_Data *td;
199
201 _elm_theme_file_clean(&th->themes); 200 _elm_theme_file_clean(&th->themes);
202 _elm_theme_file_clean(&th->overlay); 201 _elm_theme_file_clean(&th->overlay);
203 _elm_theme_file_clean(&th->extension); 202 _elm_theme_file_clean(&th->extension);
@@ -217,6 +216,10 @@ _elm_theme_clear(Elm_Theme *th)
217 elm_theme_free(th->ref_theme); 216 elm_theme_free(th->ref_theme);
218 th->ref_theme = NULL; 217 th->ref_theme = NULL;
219 } 218 }
219
220 td = efl_data_scope_get(th->eo_theme, EFL_UI_THEME_CLASS);
221 td->th = NULL;
222 th->eo_theme = NULL;
220} 223}
221 224
222static Eina_File * 225static Eina_File *
@@ -299,7 +302,7 @@ _elm_theme_data_find(Elm_Theme *th, const char *key)
299 return NULL; 302 return NULL;
300} 303}
301 304
302Efl_Ui_Theme_Apply 305Efl_Ui_Theme_Apply_Result
303_elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, const char *group, const char *style) 306_elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, const char *group, const char *style)
304{ 307{
305 Elm_Theme *th = NULL; 308 Elm_Theme *th = NULL;
@@ -320,7 +323,7 @@ _elm_theme_object_icon_set(Evas_Object *o,
320 return _elm_theme_icon_set(th, o, group, style); 323 return _elm_theme_icon_set(th, o, group, style);
321} 324}
322 325
323Efl_Ui_Theme_Apply 326Efl_Ui_Theme_Apply_Result
324_elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style, Eina_Bool is_legacy) 327_elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style, Eina_Bool is_legacy)
325{ 328{
326 Eina_File *file; 329 Eina_File *file;
@@ -328,8 +331,9 @@ _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *grou
328 const char *group_sep = "/"; 331 const char *group_sep = "/";
329 const char *style_sep = ":"; 332 const char *style_sep = ":";
330 333
331 if ((!clas) || !o) return EFL_UI_THEME_APPLY_FAILED; 334 if ((!clas) || !o) return EFL_UI_THEME_APPLY_RESULT_FAIL;
332 if (!th) th = &(theme_default); 335 if (!th) th = theme_default;
336 if (!th) return EFL_UI_THEME_APPLY_RESULT_FAIL;
333 337
334 if (eina_streq(style, "default")) style = NULL; 338 if (eina_streq(style, "default")) style = NULL;
335 339
@@ -344,7 +348,7 @@ _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *grou
344 file = _elm_theme_group_file_find(th, buf2); 348 file = _elm_theme_group_file_find(th, buf2);
345 if (file) 349 if (file)
346 { 350 {
347 if (edje_object_mmap_set(o, file, buf2)) return EFL_UI_THEME_APPLY_SUCCESS; 351 if (edje_object_mmap_set(o, file, buf2)) return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
348 else 352 else
349 { 353 {
350 ERR("could not set theme group '%s' from file '%s': %s", 354 ERR("could not set theme group '%s' from file '%s': %s",
@@ -358,10 +362,10 @@ _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *grou
358 } 362 }
359 363
360 if (!style) 364 if (!style)
361 return EFL_UI_THEME_APPLY_FAILED; 365 return EFL_UI_THEME_APPLY_RESULT_FAIL;
362 366
363 // Use the elementary default style. 367 // Use the elementary default style.
364 return (EFL_UI_THEME_APPLY_DEFAULT & 368 return (EFL_UI_THEME_APPLY_RESULT_DEFAULT &
365 _elm_theme_set(th, o, clas, group, NULL, is_legacy)); 369 _elm_theme_set(th, o, clas, group, NULL, is_legacy));
366} 370}
367 371
@@ -382,7 +386,9 @@ _elm_theme_icon_set(Elm_Theme *th,
382 return EINA_TRUE; 386 return EINA_TRUE;
383 } 387 }
384 388
385 if (!th) th = &(theme_default); 389 if (!th) th = theme_default;
390 if (!th) return EINA_FALSE;
391
386 snprintf(buf2, sizeof(buf2), "elm/icon/%s/%s", group, style); 392 snprintf(buf2, sizeof(buf2), "elm/icon/%s/%s", group, style);
387 file = _elm_theme_group_file_find(th, buf2); 393 file = _elm_theme_group_file_find(th, buf2);
388 if (file) 394 if (file)
@@ -408,7 +414,9 @@ _elm_theme_parse(Elm_Theme *th, const char *theme)
408 Eina_List *names = NULL; 414 Eina_List *names = NULL;
409 const char *p, *pe; 415 const char *p, *pe;
410 416
411 if (!th) th = &(theme_default); 417 if (!th) th = theme_default;
418 if (!th) return;
419
412 if (theme) 420 if (theme)
413 { 421 {
414 Eina_Strbuf *buf; 422 Eina_Strbuf *buf;
@@ -479,39 +487,52 @@ _elm_theme_parse(Elm_Theme *th, const char *theme)
479} 487}
480 488
481void 489void
490_elm_theme_init(void)
491{
492 Eo *theme_default_obj;
493 Efl_Ui_Theme_Data *td;
494
495 if (theme_default) return;
496
497 theme_default_obj = efl_add(EFL_UI_THEME_CLASS, efl_main_loop_get());
498 td = efl_data_scope_get(theme_default_obj, EFL_UI_THEME_CLASS);
499 theme_default = td->th;
500}
501
502void
482_elm_theme_shutdown(void) 503_elm_theme_shutdown(void)
483{ 504{
484 Elm_Theme *th; 505 Elm_Theme *th;
485 _elm_theme_clear(&(theme_default)); 506
486 EINA_LIST_FREE(themes, th) 507 while (themes)
487 { 508 {
488 _elm_theme_clear(th); 509 th = eina_list_data_get(themes);
489 free(th); 510
511 /* In theme object destructor, theme is deallocated and the theme is
512 * removed from themes list in _elm_theme_free_internal().
513 * Consequently, themes list is updated.
514 */
515 efl_del(th->eo_theme);
490 } 516 }
491} 517}
492 518
493EAPI Elm_Theme * 519EAPI Elm_Theme *
494elm_theme_new(void) 520elm_theme_new(void)
495{ 521{
496 Elm_Theme *th = calloc(1, sizeof(Elm_Theme)); 522 Eo *obj = efl_add(EFL_UI_THEME_CLASS, efl_main_loop_get());
497 if (!th) return NULL; 523 Efl_Ui_Theme_Data *td = efl_data_scope_get(obj, EFL_UI_THEME_CLASS);
498 th->ref = 1; 524 return td->th;
499 _elm_theme_file_item_add(&th->themes, "default", EINA_FALSE, EINA_TRUE);
500 themes = eina_list_append(themes, th);
501 return th;
502} 525}
503 526
504EAPI void 527EAPI void
505elm_theme_free(Elm_Theme *th) 528elm_theme_free(Elm_Theme *th)
506{ 529{
507 EINA_SAFETY_ON_NULL_RETURN(th); 530 EINA_SAFETY_ON_NULL_RETURN(th);
508 th->ref--; 531
509 if (th->ref < 1) 532 /* Destructs theme object and theme is deallocated in
510 { 533 * _elm_theme_free_internal() in theme object desctructor.
511 _elm_theme_clear(th); 534 */
512 themes = eina_list_remove(themes, th); 535 efl_unref(th->eo_theme);
513 free(th);
514 }
515} 536}
516 537
517static void 538static void
@@ -531,15 +552,27 @@ elm_theme_files_copy(Eina_Inlist **dst, Eina_Inlist **src)
531EAPI void 552EAPI void
532elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst) 553elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst)
533{ 554{
534 if (!th) th = &(theme_default); 555 Eo *thdst_obj;
535 if (!thdst) thdst = &(theme_default); 556 Efl_Ui_Theme_Data *thdst_td;
557
558 if (!th) th = theme_default;
559 if (!th) return;
560 if (!thdst) thdst = theme_default;
561 if (!thdst) return;
562
563 //Clear the given theme and restore the relationship with theme object.
564 thdst_obj = thdst->eo_theme;
536 _elm_theme_clear(thdst); 565 _elm_theme_clear(thdst);
566 thdst->eo_theme = thdst_obj;
567 thdst_td = efl_data_scope_get(thdst_obj, EFL_UI_THEME_CLASS);
568 thdst_td->th = thdst;
569
537 if (th->ref_theme) 570 if (th->ref_theme)
538 { 571 {
539 thdst->ref_theme = th->ref_theme; 572 thdst->ref_theme = th->ref_theme;
540 thdst->ref_theme->referrers = 573 thdst->ref_theme->referrers =
541 eina_list_append(thdst->ref_theme->referrers, thdst); 574 eina_list_append(thdst->ref_theme->referrers, thdst);
542 thdst->ref_theme->ref++; 575 efl_ref(thdst->ref_theme->eo_theme);
543 } 576 }
544 elm_theme_files_copy(&thdst->overlay, &th->overlay); 577 elm_theme_files_copy(&thdst->overlay, &th->overlay);
545 elm_theme_files_copy(&thdst->themes, &th->themes); 578 elm_theme_files_copy(&thdst->themes, &th->themes);
@@ -552,14 +585,26 @@ elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst)
552EAPI void 585EAPI void
553elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref) 586elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref)
554{ 587{
555 if (!th) th = &(theme_default); 588 Eo *th_obj;
556 if (!thref) thref = &(theme_default); 589 Efl_Ui_Theme_Data *th_td;
590
591 if (!th) th = theme_default;
592 if (!th) return;
593 if (!thref) thref = theme_default;
594 if (!thref) return;
557 if (th->ref_theme == thref) return; 595 if (th->ref_theme == thref) return;
596
597 //Clear the given theme and restore the relationship with theme object.
598 th_obj = th->eo_theme;
558 _elm_theme_clear(th); 599 _elm_theme_clear(th);
600 th->eo_theme = th_obj;
601 th_td = efl_data_scope_get(th_obj, EFL_UI_THEME_CLASS);
602 th_td->th = th;
603
559 if (thref) 604 if (thref)
560 { 605 {
561 thref->referrers = eina_list_append(thref->referrers, th); 606 thref->referrers = eina_list_append(thref->referrers, th);
562 thref->ref++; 607 efl_ref(thref->eo_theme);
563 } 608 }
564 th->ref_theme = thref; 609 th->ref_theme = thref;
565 elm_theme_flush(th); 610 elm_theme_flush(th);
@@ -568,34 +613,31 @@ elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref)
568EAPI Elm_Theme * 613EAPI Elm_Theme *
569elm_theme_ref_get(const Elm_Theme *th) 614elm_theme_ref_get(const Elm_Theme *th)
570{ 615{
571 if (!th) th = &(theme_default); 616 if (!th) th = theme_default;
617 if (!th) return NULL;
572 return th->ref_theme; 618 return th->ref_theme;
573} 619}
574 620
575EAPI Elm_Theme * 621EAPI Elm_Theme *
576elm_theme_default_get(void) 622elm_theme_default_get(void)
577{ 623{
578 return &theme_default; 624 return theme_default;
579} 625}
580 626
581EAPI void 627EAPI void
582elm_theme_overlay_add(Elm_Theme *th, const char *item) 628elm_theme_overlay_add(Elm_Theme *th, const char *item)
583{ 629{
584 if (!item) return; 630 if (!th) th = theme_default;
585 if (!th) th = &(theme_default); 631 if (!th) return;
586 th->overlay_items = eina_list_free(th->overlay_items); 632 efl_ui_theme_overlay_add(th->eo_theme, item);
587 _elm_theme_file_item_add(&th->overlay, item, EINA_TRUE, EINA_FALSE);
588 elm_theme_flush(th);
589} 633}
590 634
591EAPI void 635EAPI void
592elm_theme_overlay_del(Elm_Theme *th, const char *item) 636elm_theme_overlay_del(Elm_Theme *th, const char *item)
593{ 637{
594 if (!item) return; 638 if (!th) th = theme_default;
595 if (!th) th = &(theme_default); 639 if (!th) return;
596 th->overlay_items = eina_list_free(th->overlay_items); 640 efl_ui_theme_overlay_del(th->eo_theme, item);
597 _elm_theme_file_item_del(&th->overlay, item);
598 elm_theme_flush(th);
599} 641}
600 642
601EAPI void 643EAPI void
@@ -603,7 +645,8 @@ elm_theme_overlay_mmap_add(Elm_Theme *th, const Eina_File *f)
603{ 645{
604 Eina_File *file = eina_file_dup(f); 646 Eina_File *file = eina_file_dup(f);
605 647
606 if (!th) th = &(theme_default); 648 if (!th) th = theme_default;
649 if (!th) return;
607 th->overlay_items = eina_list_free(th->overlay_items); 650 th->overlay_items = eina_list_free(th->overlay_items);
608 _elm_theme_item_finalize(&th->overlay, eina_file_filename_get(file), file, EINA_TRUE, EINA_FALSE); 651 _elm_theme_item_finalize(&th->overlay, eina_file_filename_get(file), file, EINA_TRUE, EINA_FALSE);
609 elm_theme_flush(th); 652 elm_theme_flush(th);
@@ -613,7 +656,8 @@ EAPI void
613elm_theme_overlay_mmap_del(Elm_Theme *th, const Eina_File *f) 656elm_theme_overlay_mmap_del(Elm_Theme *th, const Eina_File *f)
614{ 657{
615 if (!f) return; 658 if (!f) return;
616 if (!th) th = &(theme_default); 659 if (!th) th = theme_default;
660 if (!th) return;
617 th->overlay_items = eina_list_free(th->overlay_items); 661 th->overlay_items = eina_list_free(th->overlay_items);
618 _elm_theme_file_mmap_del(&th->overlay, f); 662 _elm_theme_file_mmap_del(&th->overlay, f);
619 elm_theme_flush(th); 663 elm_theme_flush(th);
@@ -622,7 +666,8 @@ elm_theme_overlay_mmap_del(Elm_Theme *th, const Eina_File *f)
622EAPI const Eina_List * 666EAPI const Eina_List *
623elm_theme_overlay_list_get(const Elm_Theme *th) 667elm_theme_overlay_list_get(const Elm_Theme *th)
624{ 668{
625 if (!th) th = &(theme_default); 669 if (!th) th = theme_default;
670 if (!th) return NULL;
626 if (!th->overlay_items) 671 if (!th->overlay_items)
627 { 672 {
628 Elm_Theme_File *etf; 673 Elm_Theme_File *etf;
@@ -636,21 +681,17 @@ elm_theme_overlay_list_get(const Elm_Theme *th)
636EAPI void 681EAPI void
637elm_theme_extension_add(Elm_Theme *th, const char *item) 682elm_theme_extension_add(Elm_Theme *th, const char *item)
638{ 683{
639 if (!item) return; 684 if (!th) th = theme_default;
640 if (!th) th = &(theme_default); 685 if (!th) return;
641 th->extension_items = eina_list_free(th->extension_items); 686 efl_ui_theme_extension_add(th->eo_theme, item);
642 _elm_theme_file_item_add(&th->extension, item, EINA_FALSE, EINA_FALSE);
643 elm_theme_flush(th);
644} 687}
645 688
646EAPI void 689EAPI void
647elm_theme_extension_del(Elm_Theme *th, const char *item) 690elm_theme_extension_del(Elm_Theme *th, const char *item)
648{ 691{
649 if (!item) return; 692 if (!th) th = theme_default;
650 if (!th) th = &(theme_default); 693 if (!th) return;
651 th->extension_items = eina_list_free(th->extension_items); 694 efl_ui_theme_extension_del(th->eo_theme, item);
652 _elm_theme_file_item_del(&th->extension, item);
653 elm_theme_flush(th);
654} 695}
655 696
656EAPI void 697EAPI void
@@ -659,7 +700,8 @@ elm_theme_extension_mmap_add(Elm_Theme *th, const Eina_File *f)
659 Eina_File *file = eina_file_dup(f); 700 Eina_File *file = eina_file_dup(f);
660 701
661 if (!f) return; 702 if (!f) return;
662 if (!th) th = &(theme_default); 703 if (!th) th = theme_default;
704 if (!th) return;
663 th->extension_items = eina_list_free(th->extension_items); 705 th->extension_items = eina_list_free(th->extension_items);
664 _elm_theme_item_finalize(&th->extension, eina_file_filename_get(file), file, EINA_FALSE, EINA_FALSE); 706 _elm_theme_item_finalize(&th->extension, eina_file_filename_get(file), file, EINA_FALSE, EINA_FALSE);
665 elm_theme_flush(th); 707 elm_theme_flush(th);
@@ -669,7 +711,8 @@ EAPI void
669elm_theme_extension_mmap_del(Elm_Theme *th, const Eina_File *f) 711elm_theme_extension_mmap_del(Elm_Theme *th, const Eina_File *f)
670{ 712{
671 if (!f) return; 713 if (!f) return;
672 if (!th) th = &(theme_default); 714 if (!th) th = theme_default;
715 if (!th) return;
673 th->extension_items = eina_list_free(th->extension_items); 716 th->extension_items = eina_list_free(th->extension_items);
674 _elm_theme_file_mmap_del(&th->extension, f); 717 _elm_theme_file_mmap_del(&th->extension, f);
675 elm_theme_flush(th); 718 elm_theme_flush(th);
@@ -678,7 +721,8 @@ elm_theme_extension_mmap_del(Elm_Theme *th, const Eina_File *f)
678EAPI const Eina_List * 721EAPI const Eina_List *
679elm_theme_extension_list_get(const Elm_Theme *th) 722elm_theme_extension_list_get(const Elm_Theme *th)
680{ 723{
681 if (!th) th = &(theme_default); 724 if (!th) th = theme_default;
725 if (!th) return NULL;
682 if (!th->extension_items) 726 if (!th->extension_items)
683 { 727 {
684 Elm_Theme_File *etf; 728 Elm_Theme_File *etf;
@@ -692,18 +736,20 @@ elm_theme_extension_list_get(const Elm_Theme *th)
692EAPI void 736EAPI void
693elm_theme_set(Elm_Theme *th, const char *theme) 737elm_theme_set(Elm_Theme *th, const char *theme)
694{ 738{
695 if (!th) th = &(theme_default); 739 if (!th) th = theme_default;
740 if (!th) return;
696 _elm_theme_parse(th, theme); 741 _elm_theme_parse(th, theme);
697 ELM_SAFE_FREE(th->theme, eina_stringshare_del); 742 ELM_SAFE_FREE(th->theme, eina_stringshare_del);
698 elm_theme_flush(th); 743 elm_theme_flush(th);
699 if (th == &(theme_default)) 744 if (th == theme_default)
700 eina_stringshare_replace(&_elm_config->theme, theme); 745 eina_stringshare_replace(&_elm_config->theme, theme);
701} 746}
702 747
703EAPI const char * 748EAPI const char *
704elm_theme_get(Elm_Theme *th) 749elm_theme_get(Elm_Theme *th)
705{ 750{
706 if (!th) th = &(theme_default); 751 if (!th) th = theme_default;
752 if (!th) return NULL;
707 if (!th->theme) 753 if (!th->theme)
708 { 754 {
709 Eina_Strbuf *buf; 755 Eina_Strbuf *buf;
@@ -734,7 +780,8 @@ elm_theme_get(Elm_Theme *th)
734EAPI const Eina_List * 780EAPI const Eina_List *
735elm_theme_list_get(const Elm_Theme *th) 781elm_theme_list_get(const Elm_Theme *th)
736{ 782{
737 if (!th) th = &(theme_default); 783 if (!th) th = theme_default;
784 if (!th) return NULL;
738 if (!th->theme_items) 785 if (!th->theme_items)
739 { 786 {
740 Elm_Theme_File *etf; 787 Elm_Theme_File *etf;
@@ -797,7 +844,8 @@ elm_theme_list_item_path_get(const char *f, Eina_Bool *in_search_path)
797EAPI void 844EAPI void
798elm_theme_flush(Elm_Theme *th) 845elm_theme_flush(Elm_Theme *th)
799{ 846{
800 if (!th) th = &(theme_default); 847 if (!th) th = theme_default;
848 if (!th) return;
801 if (th->cache) eina_hash_free(th->cache); 849 if (th->cache) eina_hash_free(th->cache);
802 th->cache = eina_hash_string_superfast_new(EINA_FREE_CB(eina_file_close)); 850 th->cache = eina_hash_string_superfast_new(EINA_FREE_CB(eina_file_close));
803 if (th->cache_data) eina_hash_free(th->cache_data); 851 if (th->cache_data) eina_hash_free(th->cache_data);
@@ -825,7 +873,7 @@ elm_theme_full_flush(void)
825 { 873 {
826 elm_theme_flush(th); 874 elm_theme_flush(th);
827 } 875 }
828 elm_theme_flush(&(theme_default)); 876 elm_theme_flush(theme_default);
829} 877}
830 878
831EAPI Eina_List * 879EAPI Eina_List *
@@ -917,7 +965,8 @@ elm_object_theme_get(const Evas_Object *obj)
917EAPI const char * 965EAPI const char *
918elm_theme_data_get(Elm_Theme *th, const char *key) 966elm_theme_data_get(Elm_Theme *th, const char *key)
919{ 967{
920 if (!th) th = &(theme_default); 968 if (!th) th = theme_default;
969 if (!th) return NULL;
921 return _elm_theme_data_find(th, key); 970 return _elm_theme_data_find(th, key);
922} 971}
923 972
@@ -926,7 +975,8 @@ elm_theme_group_path_find(Elm_Theme *th, const char *group)
926{ 975{
927 EINA_SAFETY_ON_NULL_RETURN_VAL(group, NULL); 976 EINA_SAFETY_ON_NULL_RETURN_VAL(group, NULL);
928 Eina_File *th_file = NULL; 977 Eina_File *th_file = NULL;
929 if (!th) th = &(theme_default); 978 if (!th) th = theme_default;
979 if (!th) return NULL;
930 980
931 th_file = _elm_theme_group_file_find(th, group); 981 th_file = _elm_theme_group_file_find(th, group);
932 if (th_file) 982 if (th_file)
@@ -975,7 +1025,8 @@ elm_theme_group_base_list(Elm_Theme *th, const char *base)
975 int len; 1025 int len;
976 1026
977 EINA_SAFETY_ON_NULL_RETURN_VAL(base, NULL); 1027 EINA_SAFETY_ON_NULL_RETURN_VAL(base, NULL);
978 if (!th) th = &(theme_default); 1028 if (!th) th = theme_default;
1029 if (!th) return NULL;
979 1030
980 // XXX: look results up in a hash for speed 1031 // XXX: look results up in a hash for speed
981 len = strlen(base); 1032 len = strlen(base);
@@ -1022,3 +1073,96 @@ elm_theme_user_dir_get(void)
1022 1073
1023 return path; 1074 return path;
1024} 1075}
1076
1077/* Allocates memory for theme and appends the theme to themes list. */
1078static Elm_Theme *
1079_elm_theme_new_internal(Eo *obj)
1080{
1081 Elm_Theme *th = calloc(1, sizeof(Elm_Theme));
1082 if (!th) return NULL;
1083 _elm_theme_file_item_add(&th->themes, "default", EINA_FALSE, EINA_TRUE);
1084 themes = eina_list_append(themes, th);
1085 th->eo_theme = obj;
1086 return th;
1087}
1088
1089EOLIAN static Eo *
1090_efl_ui_theme_efl_object_constructor(Eo *obj, Efl_Ui_Theme_Data *pd)
1091{
1092 obj = efl_constructor(efl_super(obj, EFL_UI_THEME_CLASS));
1093
1094 pd->th = _elm_theme_new_internal(obj);
1095
1096 return obj;
1097}
1098
1099/* Removes the given theme from themes list and deallocates the given theme. */
1100static void
1101_elm_theme_free_internal(Elm_Theme *th)
1102{
1103 _elm_theme_clear(th);
1104 themes = eina_list_remove(themes, th);
1105 free(th);
1106}
1107
1108EOLIAN static void
1109_efl_ui_theme_efl_object_destructor(Eo *obj, Efl_Ui_Theme_Data *pd)
1110{
1111 Eina_Bool is_theme_default = EINA_FALSE;
1112
1113 if (pd->th == theme_default)
1114 is_theme_default = EINA_TRUE;
1115
1116 _elm_theme_free_internal(pd->th);
1117
1118 if (is_theme_default) theme_default = NULL;
1119
1120 efl_destructor(efl_super(obj, EFL_UI_THEME_CLASS));
1121}
1122
1123EOLIAN static Efl_Ui_Theme *
1124_efl_ui_theme_default_get(const Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
1125{
1126 if (theme_default)
1127 return theme_default->eo_theme;
1128
1129 return NULL;
1130}
1131
1132EOLIAN static void
1133_efl_ui_theme_extension_add(Eo *obj EINA_UNUSED, Efl_Ui_Theme_Data *pd, const char *item)
1134{
1135 if (!item) return;
1136 pd->th->extension_items = eina_list_free(pd->th->extension_items);
1137 _elm_theme_file_item_add(&pd->th->extension, item, EINA_FALSE, EINA_FALSE);
1138 elm_theme_flush(pd->th);
1139}
1140
1141EOLIAN static void
1142_efl_ui_theme_extension_del(Eo *obj EINA_UNUSED, Efl_Ui_Theme_Data *pd, const char *item)
1143{
1144 if (!item) return;
1145 pd->th->extension_items = eina_list_free(pd->th->extension_items);
1146 _elm_theme_file_item_del(&pd->th->extension, item);
1147 elm_theme_flush(pd->th);
1148}
1149
1150EOLIAN static void
1151_efl_ui_theme_overlay_add(Eo *obj EINA_UNUSED, Efl_Ui_Theme_Data *pd, const char *item)
1152{
1153 if (!item) return;
1154 pd->th->overlay_items = eina_list_free(pd->th->overlay_items);
1155 _elm_theme_file_item_add(&pd->th->overlay, item, EINA_TRUE, EINA_FALSE);
1156 elm_theme_flush(pd->th);
1157}
1158
1159EOLIAN static void
1160_efl_ui_theme_overlay_del(Eo *obj EINA_UNUSED, Efl_Ui_Theme_Data *pd, const char *item)
1161{
1162 if (!item) return;
1163 pd->th->overlay_items = eina_list_free(pd->th->overlay_items);
1164 _elm_theme_file_item_del(&pd->th->overlay, item);
1165 elm_theme_flush(pd->th);
1166}
1167
1168#include "efl_ui_theme.eo.c"
diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c
index 717f5e9..4160ca0 100644
--- a/src/lib/elementary/elm_toolbar.c
+++ b/src/lib/elementary/elm_toolbar.c
@@ -1478,18 +1478,18 @@ _elm_toolbar_highlight_in_theme(Evas_Object *obj)
1478 elm_widget_highlight_in_theme_set(obj, EINA_FALSE); 1478 elm_widget_highlight_in_theme_set(obj, EINA_FALSE);
1479} 1479}
1480 1480
1481EOLIAN static Efl_Ui_Theme_Apply 1481EOLIAN static Efl_Ui_Theme_Apply_Result
1482_elm_toolbar_efl_ui_widget_theme_apply(Eo *obj, Elm_Toolbar_Data *sd) 1482_elm_toolbar_efl_ui_widget_theme_apply(Eo *obj, Elm_Toolbar_Data *sd)
1483{ 1483{
1484 Elm_Toolbar_Item_Data *it; 1484 Elm_Toolbar_Item_Data *it;
1485 double scale = 0; 1485 double scale = 0;
1486 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 1486 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_RESULT_FAIL);
1487 1487
1488 if (sd->delete_me) return EFL_UI_THEME_APPLY_SUCCESS; 1488 if (sd->delete_me) return EFL_UI_THEME_APPLY_RESULT_SUCCESS;
1489 1489
1490 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 1490 Efl_Ui_Theme_Apply_Result int_ret = EFL_UI_THEME_APPLY_RESULT_FAIL;
1491 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); 1491 int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
1492 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 1492 if (!int_ret) return EFL_UI_THEME_APPLY_RESULT_FAIL;
1493 1493
1494 elm_widget_theme_object_set 1494 elm_widget_theme_object_set
1495 (obj, wd->resize_obj, "toolbar", "base", 1495 (obj, wd->resize_obj, "toolbar", "base",
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index c9e7d2c..6f53ff6 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -642,7 +642,7 @@ struct _Elm_Widget_Item_Data
642EAPI Evas_Object *elm_widget_add(Evas_Smart *, Evas_Object *); 642EAPI Evas_Object *elm_widget_add(Evas_Smart *, Evas_Object *);
643EAPI Eina_Bool elm_widget_api_check(int ver); 643EAPI Eina_Bool elm_widget_api_check(int ver);
644EAPI Eina_Bool elm_widget_access(Evas_Object *obj, Eina_Bool is_access); 644EAPI Eina_Bool elm_widget_access(Evas_Object *obj, Eina_Bool is_access);
645EAPI Efl_Ui_Theme_Apply elm_widget_theme(Evas_Object *obj); 645EAPI Efl_Ui_Theme_Apply_Result elm_widget_theme(Evas_Object *obj);
646EAPI void elm_widget_theme_specific(Evas_Object *obj, Elm_Theme *th, Eina_Bool force); 646EAPI void elm_widget_theme_specific(Evas_Object *obj, Elm_Theme *th, Eina_Bool force);
647EAPI void elm_widget_on_show_region_hook_set(Evas_Object *obj, void *data, Efl_Ui_Scrollable_On_Show_Region func, Eina_Free_Cb data_free); 647EAPI void elm_widget_on_show_region_hook_set(Evas_Object *obj, void *data, Efl_Ui_Scrollable_On_Show_Region func, Eina_Free_Cb data_free);
648EAPI Eina_Bool elm_widget_sub_object_parent_add(Evas_Object *sobj); 648EAPI Eina_Bool elm_widget_sub_object_parent_add(Evas_Object *sobj);
@@ -710,7 +710,7 @@ EAPI void elm_widget_scroll_freeze_pop(Evas_Object *obj);
710EAPI int elm_widget_scroll_freeze_get(const Evas_Object *obj); 710EAPI int elm_widget_scroll_freeze_get(const Evas_Object *obj);
711EAPI void elm_widget_theme_set(Evas_Object *obj, Elm_Theme *th); 711EAPI void elm_widget_theme_set(Evas_Object *obj, Elm_Theme *th);
712EAPI Elm_Theme *elm_widget_theme_get(const Evas_Object *obj); 712EAPI Elm_Theme *elm_widget_theme_get(const Evas_Object *obj);
713EAPI Efl_Ui_Theme_Apply elm_widget_style_set(Evas_Object *obj, const char *style); 713EAPI Efl_Ui_Theme_Apply_Result elm_widget_style_set(Evas_Object *obj, const char *style);
714EAPI const char *elm_widget_style_get(const Evas_Object *obj); 714EAPI const char *elm_widget_style_get(const Evas_Object *obj);
715EAPI void elm_widget_type_set(Evas_Object *obj, const char *type); 715EAPI void elm_widget_type_set(Evas_Object *obj, const char *type);
716EAPI const char *elm_widget_type_get(const Evas_Object *obj); 716EAPI const char *elm_widget_type_get(const Evas_Object *obj);
@@ -722,7 +722,7 @@ EAPI void elm_widget_scroll_lock_set(Evas_Object *obj, Efl_Ui_Scroll
722EAPI Efl_Ui_Scroll_Block elm_widget_scroll_lock_get(const Evas_Object *obj); 722EAPI Efl_Ui_Scroll_Block elm_widget_scroll_lock_get(const Evas_Object *obj);
723EAPI int elm_widget_scroll_child_locked_x_get(const Evas_Object *obj); 723EAPI int elm_widget_scroll_child_locked_x_get(const Evas_Object *obj);
724EAPI int elm_widget_scroll_child_locked_y_get(const Evas_Object *obj); 724EAPI int elm_widget_scroll_child_locked_y_get(const Evas_Object *obj);
725EAPI Efl_Ui_Theme_Apply elm_widget_theme_object_set(Evas_Object *obj, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle); 725EAPI Efl_Ui_Theme_Apply_Result elm_widget_theme_object_set(Evas_Object *obj, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle);
726EAPI Eina_Bool elm_widget_type_check(const Evas_Object *obj, const char *type, const char *func); 726EAPI Eina_Bool elm_widget_type_check(const Evas_Object *obj, const char *type, const char *func);
727EAPI Evas_Object *elm_widget_name_find(const Evas_Object *obj, const char *name, int recurse); 727EAPI Evas_Object *elm_widget_name_find(const Evas_Object *obj, const char *name, int recurse);
728EAPI Eina_List *elm_widget_stringlist_get(const char *str); 728EAPI Eina_List *elm_widget_stringlist_get(const char *str);
@@ -751,7 +751,7 @@ EAPI Eina_Bool elm_widget_theme_element_set(Evas_Object *obj, const char
751EAPI const char *elm_widget_theme_element_get(const Evas_Object *obj); 751EAPI const char *elm_widget_theme_element_get(const Evas_Object *obj);
752EAPI Eina_Bool elm_widget_theme_style_set(Evas_Object *obj, const char *name); 752EAPI Eina_Bool elm_widget_theme_style_set(Evas_Object *obj, const char *name);
753EAPI const char *elm_widget_theme_style_get(const Evas_Object *obj); 753EAPI const char *elm_widget_theme_style_get(const Evas_Object *obj);
754EAPI Efl_Ui_Theme_Apply elm_widget_element_update(Evas_Object *obj, Evas_Object *component, const char *name); 754EAPI Efl_Ui_Theme_Apply_Result elm_widget_element_update(Evas_Object *obj, Evas_Object *component, const char *name);
755 755
756/* debug function. don't use it unless you are tracking parenting issues */