summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSungtaek Hong <sth253.hong@samsung.com>2018-01-24 15:50:58 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2018-01-24 18:14:26 +0900
commitcb25699dacde420a0e0c3434065ab8dac242ee6e (patch)
treeaadf195322243f48771eb3235e9079c5a25891b5
parentf6ba674cd8ada4e018fd205dab2e877e9a19a820 (diff)
efl_ui_legacy: add new interface to indicate legacy widget
Summary: For now, how to check whether a widget is legacy or not is to check flags in private data or static flag, which is set during elm_legacy_add. If Efl.Ui.Legacy interface is added, it can be easilly checked by efl_isa(obj, EFL_UI_LEGACY_INTERFACE) Reviewers: woohyun, jpeg, cedric, Jaehyun_Cho Subscribers: conr2d, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5748
-rw-r--r--src/Makefile_Elementary.am19
-rw-r--r--src/lib/elementary/efl_ui_bg_widget.c44
-rw-r--r--src/lib/elementary/efl_ui_bg_widget.eo1
-rw-r--r--src/lib/elementary/efl_ui_bg_widget_legacy.eo14
-rw-r--r--src/lib/elementary/efl_ui_button.c42
-rw-r--r--src/lib/elementary/efl_ui_button.eo1
-rw-r--r--src/lib/elementary/efl_ui_button_legacy.eo13
-rw-r--r--src/lib/elementary/efl_ui_check.c42
-rw-r--r--src/lib/elementary/efl_ui_check.eo1
-rw-r--r--src/lib/elementary/efl_ui_check_legacy.eo15
-rw-r--r--src/lib/elementary/efl_ui_clock.c8
-rw-r--r--src/lib/elementary/efl_ui_clock.eo1
-rw-r--r--src/lib/elementary/efl_ui_clock_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_flip.c42
-rw-r--r--src/lib/elementary/efl_ui_flip.eo1
-rw-r--r--src/lib/elementary/efl_ui_flip_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_frame.c42
-rw-r--r--src/lib/elementary/efl_ui_frame.eo1
-rw-r--r--src/lib/elementary/efl_ui_frame_legacy.eo14
-rw-r--r--src/lib/elementary/efl_ui_image.c52
-rw-r--r--src/lib/elementary/efl_ui_image.eo1
-rw-r--r--src/lib/elementary/efl_ui_image_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_image_zoomable.c47
-rw-r--r--src/lib/elementary/efl_ui_image_zoomable_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_layout.c514
-rw-r--r--src/lib/elementary/efl_ui_layout.eo1
-rw-r--r--src/lib/elementary/efl_ui_layout_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_legacy.c8
-rw-r--r--src/lib/elementary/efl_ui_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_multibuttonentry.c39
-rw-r--r--src/lib/elementary/efl_ui_multibuttonentry_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_panes.c33
-rw-r--r--src/lib/elementary/efl_ui_panes.eo1
-rw-r--r--src/lib/elementary/efl_ui_panes_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c30
-rw-r--r--src/lib/elementary/efl_ui_progressbar.eo1
-rw-r--r--src/lib/elementary/efl_ui_progressbar_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_radio.c29
-rw-r--r--src/lib/elementary/efl_ui_radio.eo1
-rw-r--r--src/lib/elementary/efl_ui_radio_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_slider.c54
-rw-r--r--src/lib/elementary/efl_ui_slider.eo1
-rw-r--r--src/lib/elementary/efl_ui_slider_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_video.c63
-rw-r--r--src/lib/elementary/efl_ui_video.eo1
-rw-r--r--src/lib/elementary/efl_ui_video_legacy.eo9
-rw-r--r--src/lib/elementary/efl_ui_widget.c16
-rw-r--r--src/lib/elementary/efl_ui_win.c136
-rw-r--r--src/lib/elementary/efl_ui_win_legacy.eo9
-rw-r--r--src/lib/elementary/elm_actionslider.eo2
-rw-r--r--src/lib/elementary/elm_box.eo2
-rw-r--r--src/lib/elementary/elm_bubble.eo2
-rw-r--r--src/lib/elementary/elm_calendar.eo3
-rw-r--r--src/lib/elementary/elm_clock.eo2
-rw-r--r--src/lib/elementary/elm_code.h1
-rw-r--r--src/lib/elementary/elm_code_diff_widget.c4
-rw-r--r--src/lib/elementary/elm_code_widget.c9
-rw-r--r--src/lib/elementary/elm_code_widget_legacy.eo5
-rw-r--r--src/lib/elementary/elm_colorselector.eo2
-rw-r--r--src/lib/elementary/elm_combobox.eo2
-rw-r--r--src/lib/elementary/elm_conformant.eo2
-rw-r--r--src/lib/elementary/elm_ctxpopup.eo2
-rw-r--r--src/lib/elementary/elm_ctxpopup_item.eo3
-rw-r--r--src/lib/elementary/elm_datetime.c22
-rw-r--r--src/lib/elementary/elm_dayselector.eo2
-rw-r--r--src/lib/elementary/elm_diskselector.eo2
-rw-r--r--src/lib/elementary/elm_diskselector_item.eo2
-rw-r--r--src/lib/elementary/elm_entry.eo3
-rw-r--r--src/lib/elementary/elm_fileselector.eo2
-rw-r--r--src/lib/elementary/elm_fileselector_button.eo3
-rw-r--r--src/lib/elementary/elm_fileselector_entry.eo2
-rw-r--r--src/lib/elementary/elm_flipselector.eo2
-rw-r--r--src/lib/elementary/elm_gengrid.eo2
-rw-r--r--src/lib/elementary/elm_gengrid_item.eo2
-rw-r--r--src/lib/elementary/elm_genlist.eo2
-rw-r--r--src/lib/elementary/elm_genlist_item.eo2
-rw-r--r--src/lib/elementary/elm_gesture_layer.eo2
-rw-r--r--src/lib/elementary/elm_glview.eo2
-rw-r--r--src/lib/elementary/elm_grid.eo2
-rw-r--r--src/lib/elementary/elm_hover.eo3
-rw-r--r--src/lib/elementary/elm_hoversel.eo3
-rw-r--r--src/lib/elementary/elm_hoversel_item.eo2
-rw-r--r--src/lib/elementary/elm_icon.eo2
-rw-r--r--src/lib/elementary/elm_index.eo2
-rw-r--r--src/lib/elementary/elm_index_item.eo2
-rw-r--r--src/lib/elementary/elm_interface_scrollable.c2
-rw-r--r--src/lib/elementary/elm_interfaces.h2
-rw-r--r--src/lib/elementary/elm_inwin.eo2
-rw-r--r--src/lib/elementary/elm_label.eo2
-rw-r--r--src/lib/elementary/elm_list.eo2
-rw-r--r--src/lib/elementary/elm_list_item.eo2
-rw-r--r--src/lib/elementary/elm_map.eo2
-rw-r--r--src/lib/elementary/elm_mapbuf.eo2
-rw-r--r--src/lib/elementary/elm_menu.eo2
-rw-r--r--src/lib/elementary/elm_menu_item.eo2
-rw-r--r--src/lib/elementary/elm_multibuttonentry_item.eo3
-rw-r--r--src/lib/elementary/elm_naviframe.eo2
-rw-r--r--src/lib/elementary/elm_naviframe_item.eo2
-rw-r--r--src/lib/elementary/elm_notify.eo2
-rw-r--r--src/lib/elementary/elm_panel.eo2
-rw-r--r--src/lib/elementary/elm_photo.eo3
-rw-r--r--src/lib/elementary/elm_player.eo2
-rw-r--r--src/lib/elementary/elm_plug.eo2
-rw-r--r--src/lib/elementary/elm_popup.eo2
-rw-r--r--src/lib/elementary/elm_popup_item.eo2
-rw-r--r--src/lib/elementary/elm_prefs.eo2
-rw-r--r--src/lib/elementary/elm_route.eo2
-rw-r--r--src/lib/elementary/elm_scroller.eo2
-rw-r--r--src/lib/elementary/elm_segment_control.eo2
-rw-r--r--src/lib/elementary/elm_segment_control_item.eo2
-rw-r--r--src/lib/elementary/elm_separator.eo2
-rw-r--r--src/lib/elementary/elm_slideshow.eo2
-rw-r--r--src/lib/elementary/elm_spinner.eo2
-rw-r--r--src/lib/elementary/elm_table.eo2
-rw-r--r--src/lib/elementary/elm_theme.c1
-rw-r--r--src/lib/elementary/elm_thumb.eo2
-rw-r--r--src/lib/elementary/elm_toolbar.eo2
-rw-r--r--src/lib/elementary/elm_toolbar_item.eo2
-rw-r--r--src/lib/elementary/elm_web.eo2
-rw-r--r--src/lib/elementary/elm_widget.h12
120 files changed, 1004 insertions, 632 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 86925ce..a0bb691 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -106,6 +106,7 @@ elm_public_eolian_files = \
106 106
107# More public files -- FIXME 107# More public files -- FIXME
108elm_public_eolian_files += \ 108elm_public_eolian_files += \
109 lib/elementary/efl_ui_legacy.eo \
109 lib/elementary/elm_spinner.eo \ 110 lib/elementary/elm_spinner.eo \
110 lib/elementary/elm_multibuttonentry_item.eo \ 111 lib/elementary/elm_multibuttonentry_item.eo \
111 lib/elementary/elm_interface_scrollable.eo \ 112 lib/elementary/elm_interface_scrollable.eo \
@@ -137,6 +138,23 @@ elm_private_eolian_files = \
137 138
138# Legacy classes - not part of public EO API 139# Legacy classes - not part of public EO API
139elm_legacy_eolian_files = \ 140elm_legacy_eolian_files = \
141 lib/elementary/efl_ui_button_legacy.eo \
142 lib/elementary/efl_ui_check_legacy.eo \
143 lib/elementary/efl_ui_radio_legacy.eo \
144 lib/elementary/efl_ui_bg_widget_legacy.eo \
145 lib/elementary/efl_ui_video_legacy.eo \
146 lib/elementary/efl_ui_frame_legacy.eo \
147 lib/elementary/efl_ui_slider_legacy.eo \
148 lib/elementary/efl_ui_panes_legacy.eo \
149 lib/elementary/efl_ui_image_zoomable_legacy.eo \
150 lib/elementary/efl_ui_multibuttonentry_legacy.eo \
151 lib/elementary/efl_ui_flip_legacy.eo \
152 lib/elementary/efl_ui_win_legacy.eo \
153 lib/elementary/efl_ui_image_legacy.eo \
154 lib/elementary/efl_ui_progressbar_legacy.eo \
155 lib/elementary/efl_ui_clock_legacy.eo \
156 lib/elementary/efl_ui_layout_legacy.eo \
157 lib/elementary/elm_code_widget_legacy.eo \
140 lib/elementary/elm_interface_fileselector.eo \ 158 lib/elementary/elm_interface_fileselector.eo \
141 lib/elementary/elm_calendar.eo \ 159 lib/elementary/elm_calendar.eo \
142 lib/elementary/elm_calendar_item.eo \ 160 lib/elementary/elm_calendar_item.eo \
@@ -611,6 +629,7 @@ lib_elementary_libelementary_la_SOURCES = \
611 lib/elementary/elm_actionslider.c \ 629 lib/elementary/elm_actionslider.c \
612 lib/elementary/elm_atspi_app_object.c \ 630 lib/elementary/elm_atspi_app_object.c \
613 lib/elementary/elm_atspi_bridge.c \ 631 lib/elementary/elm_atspi_bridge.c \
632 lib/elementary/efl_ui_legacy.c \
614 lib/elementary/efl_ui_bg.c \ 633 lib/elementary/efl_ui_bg.c \
615 lib/elementary/efl_ui_bg_widget.c \ 634 lib/elementary/efl_ui_bg_widget.c \
616 lib/elementary/elm_box.c \ 635 lib/elementary/elm_box.c \
diff --git a/src/lib/elementary/efl_ui_bg_widget.c b/src/lib/elementary/efl_ui_bg_widget.c
index def31d0..dba5dd7 100644
--- a/src/lib/elementary/efl_ui_bg_widget.c
+++ b/src/lib/elementary/efl_ui_bg_widget.c
@@ -13,7 +13,6 @@
13#define MY_CLASS_PFX efl_ui_bg_widget 13#define MY_CLASS_PFX efl_ui_bg_widget
14 14
15#define MY_CLASS_NAME "Efl.Ui.Bg_Widget" 15#define MY_CLASS_NAME "Efl.Ui.Bg_Widget"
16#define MY_CLASS_NAME_LEGACY "elm_bg"
17 16
18static const Elm_Layout_Part_Alias_Description _content_aliases[] = 17static const Elm_Layout_Part_Alias_Description _content_aliases[] =
19{ 18{
@@ -21,13 +20,6 @@ static const Elm_Layout_Part_Alias_Description _content_aliases[] =
21 {NULL, NULL} 20 {NULL, NULL}
22}; 21};
23 22
24EAPI Evas_Object *
25elm_bg_add(Evas_Object *parent)
26{
27 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
28 return elm_legacy_add(MY_CLASS, parent);
29}
30
31EOLIAN static Eo * 23EOLIAN static Eo *
32_efl_ui_bg_widget_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Widget_Data *pd) 24_efl_ui_bg_widget_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Widget_Data *pd)
33{ 25{
@@ -54,7 +46,6 @@ _efl_ui_bg_widget_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Widget_Data *pd)
54 efl_image_scale_type_set(efl_added, EFL_IMAGE_SCALE_TYPE_FIT_OUTSIDE), 46 efl_image_scale_type_set(efl_added, EFL_IMAGE_SCALE_TYPE_FIT_OUTSIDE),
55 efl_content_set(efl_part(obj, "elm.swallow.background"), efl_added)); 47 efl_content_set(efl_part(obj, "elm.swallow.background"), efl_added));
56 48
57 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
58 efl_access_type_set(obj, EFL_ACCESS_TYPE_DISABLED); 49 efl_access_type_set(obj, EFL_ACCESS_TYPE_DISABLED);
59 50
60 efl_ui_widget_focus_allow_set(obj, EINA_FALSE); 51 efl_ui_widget_focus_allow_set(obj, EINA_FALSE);
@@ -191,12 +182,6 @@ _efl_ui_bg_widget_efl_image_load_load_size_get(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Wi
191 return efl_image_load_size_get(sd->img); 182 return efl_image_load_size_get(sd->img);
192} 183}
193 184
194static void
195_efl_ui_bg_widget_class_constructor(Efl_Class *klass)
196{
197 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
198}
199
200EAPI Eina_Bool 185EAPI Eina_Bool
201elm_bg_file_set(Eo *obj, const char *file, const char *group) 186elm_bg_file_set(Eo *obj, const char *file, const char *group)
202{ 187{
@@ -242,3 +227,32 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
242 ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX) 227 ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX)
243 228
244#include "efl_ui_bg_widget.eo.c" 229#include "efl_ui_bg_widget.eo.c"
230
231
232#include "efl_ui_bg_widget_legacy.eo.h"
233
234#define MY_CLASS_NAME_LEGACY "elm_bg"
235
236static void
237_efl_ui_bg_widget_legacy_class_constructor(Efl_Class *klass)
238{
239 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
240}
241
242EOLIAN static Eo *
243_efl_ui_bg_widget_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
244{
245 obj = efl_constructor(efl_super(obj, EFL_UI_BG_WIDGET_LEGACY_CLASS));
246 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
247
248 return obj;
249}
250
251EAPI Evas_Object *
252elm_bg_add(Evas_Object *parent)
253{
254 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
255 return elm_legacy_add(EFL_UI_BG_WIDGET_LEGACY_CLASS, parent);
256}
257
258#include "efl_ui_bg_widget_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_bg_widget.eo b/src/lib/elementary/efl_ui_bg_widget.eo
index 96a9424..ef8882d 100644
--- a/src/lib/elementary/efl_ui_bg_widget.eo
+++ b/src/lib/elementary/efl_ui_bg_widget.eo
@@ -8,7 +8,6 @@ class Efl.Ui.Bg_Widget (Efl.Ui.Layout, Efl.Ui.Bg, Efl.Image.Load)
8 ]] 8 ]]
9 legacy_prefix: elm_bg; 9 legacy_prefix: elm_bg;
10 implements { 10 implements {
11 class.constructor;
12 Efl.Object.constructor; 11 Efl.Object.constructor;
13 Efl.File.file { get; set; } 12 Efl.File.file { get; set; }
14 Efl.File.mmap { get; set; } 13 Efl.File.mmap { get; set; }
diff --git a/src/lib/elementary/efl_ui_bg_widget_legacy.eo b/src/lib/elementary/efl_ui_bg_widget_legacy.eo
new file mode 100644
index 0000000..66d38b2
--- /dev/null
+++ b/src/lib/elementary/efl_ui_bg_widget_legacy.eo
@@ -0,0 +1,14 @@
1class Efl.Ui.Bg_Widget_Legacy (Efl.Ui.Bg_Widget, Efl.Ui.Legacy)
2{
3 [[The bg (background) widget is used for setting (solid) background decorations
4
5 for a window (unless it has transparency enabled) or for any container object. It
6 works just like an image, but has some properties useful for backgrounds, such as
7 setting it to tiled, centered, scaled or stretched.
8 ]]
9 data: null;
10 implements {
11 class.constructor;
12 Efl.Object.constructor;
13 }
14}
diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c
index 8cdfa7d..c14d4be 100644
--- a/src/lib/elementary/efl_ui_button.c
+++ b/src/lib/elementary/efl_ui_button.c
@@ -17,7 +17,6 @@
17#define MY_CLASS_PFX efl_ui_button 17#define MY_CLASS_PFX efl_ui_button
18 18
19#define MY_CLASS_NAME "Efl.Ui.Button" 19#define MY_CLASS_NAME "Efl.Ui.Button"
20#define MY_CLASS_NAME_LEGACY "elm_button"
21 20
22static const char SIG_CLICKED[] = "clicked"; 21static const char SIG_CLICKED[] = "clicked";
23static const char SIG_REPEATED[] = "repeated"; 22static const char SIG_REPEATED[] = "repeated";
@@ -303,18 +302,10 @@ _efl_ui_button_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Button_Data *_pd EINA_
303 CRI("Failed to set layout!"); 302 CRI("Failed to set layout!");
304} 303}
305 304
306EAPI Evas_Object *
307elm_button_add(Evas_Object *parent)
308{
309 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
310 return elm_legacy_add(MY_CLASS, parent);
311}
312
313EOLIAN static Eo * 305EOLIAN static Eo *
314_efl_ui_button_efl_object_constructor(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED) 306_efl_ui_button_efl_object_constructor(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED)
315{ 307{
316 obj = efl_constructor(efl_super(obj, MY_CLASS)); 308 obj = efl_constructor(efl_super(obj, MY_CLASS));
317 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
318 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 309 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
319 efl_access_role_set(obj, EFL_ACCESS_ROLE_PUSH_BUTTON); 310 efl_access_role_set(obj, EFL_ACCESS_ROLE_PUSH_BUTTON);
320 311
@@ -406,12 +397,6 @@ _efl_ui_button_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl
406 return &atspi_actions[0]; 397 return &atspi_actions[0];
407} 398}
408 399
409static void
410_efl_ui_button_class_constructor(Efl_Class *klass)
411{
412 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
413}
414
415/* Standard widget overrides */ 400/* Standard widget overrides */
416 401
417ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_button, Efl_Ui_Button_Data) 402ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_button, Efl_Ui_Button_Data)
@@ -481,3 +466,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
481 EFL_CANVAS_GROUP_ADD_OPS(efl_ui_button) 466 EFL_CANVAS_GROUP_ADD_OPS(efl_ui_button)
482 467
483#include "efl_ui_button.eo.c" 468#include "efl_ui_button.eo.c"
469
470#include "efl_ui_button_legacy.eo.h"
471
472#define MY_CLASS_NAME_LEGACY "elm_button"
473
474static void
475_efl_ui_button_legacy_class_constructor(Efl_Class *klass)
476{
477 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
478}
479
480EOLIAN static Eo *
481_efl_ui_button_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
482{
483 obj = efl_constructor(efl_super(obj, EFL_UI_BUTTON_LEGACY_CLASS));
484 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
485 return obj;
486}
487
488EAPI Evas_Object *
489elm_button_add(Evas_Object *parent)
490{
491 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
492 return elm_legacy_add(EFL_UI_BUTTON_LEGACY_CLASS, parent);
493}
494
495#include "efl_ui_button_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_button.eo b/src/lib/elementary/efl_ui_button.eo
index cb165ed..883bd34 100644
--- a/src/lib/elementary/efl_ui_button.eo
+++ b/src/lib/elementary/efl_ui_button.eo
@@ -9,7 +9,6 @@ class Efl.Ui.Button (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Autorepeat,
9 ]] 9 ]]
10 legacy_prefix: elm_button; 10 legacy_prefix: elm_button;
11 implements { 11 implements {
12 class.constructor;
13 Efl.Object.constructor; 12 Efl.Object.constructor;
14 Efl.Ui.Autorepeat.autorepeat_initial_timeout { set; get; } 13 Efl.Ui.Autorepeat.autorepeat_initial_timeout { set; get; }
15 Efl.Ui.Autorepeat.autorepeat_gap_timeout { set; get; } 14 Efl.Ui.Autorepeat.autorepeat_gap_timeout { set; get; }
diff --git a/src/lib/elementary/efl_ui_button_legacy.eo b/src/lib/elementary/efl_ui_button_legacy.eo
new file mode 100644
index 0000000..91f104b
--- /dev/null
+++ b/src/lib/elementary/efl_ui_button_legacy.eo
@@ -0,0 +1,13 @@
1class Efl.Ui.Button_Legacy (Efl.Ui.Button, Efl.Ui.Legacy)
2{
3 [[Push-button widget
4
5 Press it and run some function. It can contain a simple label and icon
6 object and it also has an autorepeat feature.
7 ]]
8 data: null;
9 implements {
10 class.constructor;
11 Efl.Object.constructor;
12 }
13}
diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c
index 2bb3e07..d119a8e 100644
--- a/src/lib/elementary/efl_ui_check.c
+++ b/src/lib/elementary/efl_ui_check.c
@@ -16,7 +16,6 @@
16#define MY_CLASS_PFX efl_ui_check 16#define MY_CLASS_PFX efl_ui_check
17 17
18#define MY_CLASS_NAME "Efl.Ui.Check" 18#define MY_CLASS_NAME "Efl.Ui.Check"
19#define MY_CLASS_NAME_LEGACY "elm_check"
20 19
21static const Elm_Layout_Part_Alias_Description _text_aliases[] = 20static const Elm_Layout_Part_Alias_Description _text_aliases[] =
22{ 21{
@@ -311,20 +310,12 @@ _efl_ui_check_efl_ui_nstate_value_set(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED
311 efl_ui_nstate_value_set(efl_super(obj, MY_CLASS), _state); 310 efl_ui_nstate_value_set(efl_super(obj, MY_CLASS), _state);
312} 311}
313 312
314EAPI Evas_Object *
315elm_check_add(Evas_Object *parent)
316{
317 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
318 return elm_legacy_add(MY_CLASS, parent);
319}
320
321EOLIAN static Eo * 313EOLIAN static Eo *
322_efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED) 314_efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED)
323{ 315{
324 if (!elm_widget_theme_klass_get(obj)) 316 if (!elm_widget_theme_klass_get(obj))
325 elm_widget_theme_klass_set(obj, "check"); 317 elm_widget_theme_klass_set(obj, "check");
326 obj = efl_constructor(efl_super(obj, MY_CLASS)); 318 obj = efl_constructor(efl_super(obj, MY_CLASS));
327 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
328 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 319 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
329 320
330 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); 321 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
@@ -392,12 +383,6 @@ _efl_ui_check_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_
392 return &atspi_action[0]; 383 return &atspi_action[0];
393} 384}
394 385
395static void
396_efl_ui_check_class_constructor(Efl_Class *klass)
397{
398 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
399}
400
401/* Standard widget overrides */ 386/* Standard widget overrides */
402 387
403ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_check, Efl_Ui_Check_Data) 388ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_check, Efl_Ui_Check_Data)
@@ -410,3 +395,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
410 ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX) 395 ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX)
411 396
412#include "efl_ui_check.eo.c" 397#include "efl_ui_check.eo.c"
398
399#include "efl_ui_check_legacy.eo.h"
400
401#define MY_CLASS_NAME_LEGACY "elm_check"
402
403static void
404_efl_ui_check_legacy_class_constructor(Efl_Class *klass)
405{
406 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
407}
408
409EOLIAN static Eo *
410_efl_ui_check_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
411{
412 obj = efl_constructor(efl_super(obj, EFL_UI_CHECK_LEGACY_CLASS));
413 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
414 return obj;
415}
416
417EAPI Evas_Object *
418elm_check_add(Evas_Object *parent)
419{
420 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
421 return elm_legacy_add(EFL_UI_CHECK_LEGACY_CLASS, parent);
422}
423
424#include "efl_ui_check_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_check.eo b/src/lib/elementary/efl_ui_check.eo
index 6544f39..508d3fa 100644
--- a/src/lib/elementary/efl_ui_check.eo
+++ b/src/lib/elementary/efl_ui_check.eo
@@ -21,7 +21,6 @@ class Efl.Ui.Check (Efl.Ui.Nstate, Efl.Access.Widget.Action)
21 } 21 }
22 } 22 }
23 implements { 23 implements {
24 class.constructor;
25 Efl.Object.constructor; 24 Efl.Object.constructor;
26 Efl.Ui.Widget.on_access_activate; 25 Efl.Ui.Widget.on_access_activate;
27 Efl.Ui.Widget.theme_apply; 26 Efl.Ui.Widget.theme_apply;
diff --git a/src/lib/elementary/efl_ui_check_legacy.eo b/src/lib/elementary/efl_ui_check_legacy.eo
new file mode 100644
index 0000000..b140077
--- /dev/null
+++ b/src/lib/elementary/efl_ui_check_legacy.eo
@@ -0,0 +1,15 @@
1class Efl.Ui.Check_Legacy (Efl.Ui.Check, Efl.Ui.Legacy)
2{
3 [[Check widget
4
5 The check widget allows for toggling a value between true and false.
6 Check objects are a lot like radio objects in layout and functionality,
7 except they do not work as a group, but independently, and only toggle
8 the value of a boolean between false and true.
9 ]]
10 data: null;
11 implements {
12 class.constructor;
13 Efl.Object.constructor;
14 }
15}
diff --git a/src/lib/elementary/efl_ui_clock.c b/src/lib/elementary/efl_ui_clock.c
index e133ee9..274346de 100644
--- a/src/lib/elementary/efl_ui_clock.c
+++ b/src/lib/elementary/efl_ui_clock.c
@@ -13,7 +13,6 @@
13#define MY_CLASS EFL_UI_CLOCK_CLASS 13#define MY_CLASS EFL_UI_CLOCK_CLASS
14 14
15#define MY_CLASS_NAME "Efl.Ui.Clock" 15#define MY_CLASS_NAME "Efl.Ui.Clock"
16#define MY_CLASS_NAME_LEGACY "efl_ui_clock"
17 16
18#ifdef HAVE_LOCALE_H 17#ifdef HAVE_LOCALE_H
19# include <locale.h> 18# include <locale.h>
@@ -918,7 +917,6 @@ EOLIAN static Eo *
918_efl_ui_clock_efl_object_constructor(Eo *obj, Efl_Ui_Clock_Data *_pd EINA_UNUSED) 917_efl_ui_clock_efl_object_constructor(Eo *obj, Efl_Ui_Clock_Data *_pd EINA_UNUSED)
919{ 918{
920 obj = efl_constructor(efl_super(obj, MY_CLASS)); 919 obj = efl_constructor(efl_super(obj, MY_CLASS));
921 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
922 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 920 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
923 efl_access_role_set(obj, EFL_ACCESS_ROLE_DATE_EDITOR); 921 efl_access_role_set(obj, EFL_ACCESS_ROLE_DATE_EDITOR);
924 922
@@ -1125,12 +1123,6 @@ _efl_ui_clock_time_max_set(Eo *obj, Efl_Ui_Clock_Data *sd, Efl_Time maxtime)
1125 efl_event_callback_legacy_call(obj, EFL_UI_CLOCK_EVENT_CHANGED, NULL); 1123 efl_event_callback_legacy_call(obj, EFL_UI_CLOCK_EVENT_CHANGED, NULL);
1126} 1124}
1127 1125
1128EOLIAN static void
1129_efl_ui_clock_class_constructor(Efl_Class *klass)
1130{
1131 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
1132}
1133
1134/* Internal EO APIs and hidden overrides */ 1126/* Internal EO APIs and hidden overrides */
1135 1127
1136#define EFL_UI_CLOCK_EXTRA_OPS \ 1128#define EFL_UI_CLOCK_EXTRA_OPS \
diff --git a/src/lib/elementary/efl_ui_clock.eo b/src/lib/elementary/efl_ui_clock.eo
index 795afd4..f1ec354 100644
--- a/src/lib/elementary/efl_ui_clock.eo
+++ b/src/lib/elementary/efl_ui_clock.eo
@@ -222,7 +222,6 @@ class Efl.Ui.Clock (Efl.Ui.Layout)
222 } 222 }
223 } 223 }
224 implements { 224 implements {
225 class.constructor;
226 Efl.Object.constructor; 225 Efl.Object.constructor;
227 Efl.Ui.Widget.theme_apply; 226 Efl.Ui.Widget.theme_apply;
228 Efl.Ui.Widget.on_disabled_update; 227 Efl.Ui.Widget.on_disabled_update;
diff --git a/src/lib/elementary/efl_ui_clock_legacy.eo b/src/lib/elementary/efl_ui_clock_legacy.eo
new file mode 100644
index 0000000..b152257
--- /dev/null
+++ b/src/lib/elementary/efl_ui_clock_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Clock_Legacy (Efl.Ui.Clock, Efl.Ui.Legacy)
2{
3 [[Efl UI clock class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_flip.c b/src/lib/elementary/efl_ui_flip.c
index 3967a3a..e9c5412 100644
--- a/src/lib/elementary/efl_ui_flip.c
+++ b/src/lib/elementary/efl_ui_flip.c
@@ -14,7 +14,6 @@
14 14
15#define MY_CLASS EFL_UI_FLIP_CLASS 15#define MY_CLASS EFL_UI_FLIP_CLASS
16#define MY_CLASS_NAME "Efl.Ui.Flip" 16#define MY_CLASS_NAME "Efl.Ui.Flip"
17#define MY_CLASS_NAME_LEGACY "elm_flip"
18 17
19static const char SIG_ANIMATE_BEGIN[] = "animate,begin"; 18static const char SIG_ANIMATE_BEGIN[] = "animate,begin";
20static const char SIG_ANIMATE_DONE[] = "animate,done"; 19static const char SIG_ANIMATE_DONE[] = "animate,done";
@@ -1862,20 +1861,12 @@ _efl_ui_flip_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Flip_Data *sd)
1862 efl_canvas_group_del(efl_super(obj, MY_CLASS)); 1861 efl_canvas_group_del(efl_super(obj, MY_CLASS));
1863} 1862}
1864 1863
1865EAPI Evas_Object *
1866elm_flip_add(Evas_Object *parent)
1867{
1868 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
1869 return elm_legacy_add(MY_CLASS, parent);
1870}
1871
1872EOLIAN static Eo * 1864EOLIAN static Eo *
1873_efl_ui_flip_efl_object_constructor(Eo *obj, Efl_Ui_Flip_Data *sd) 1865_efl_ui_flip_efl_object_constructor(Eo *obj, Efl_Ui_Flip_Data *sd)
1874{ 1866{
1875 obj = efl_constructor(efl_super(obj, MY_CLASS)); 1867 obj = efl_constructor(efl_super(obj, MY_CLASS));
1876 sd->obj = obj; 1868 sd->obj = obj;
1877 1869
1878 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
1879 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 1870 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
1880 efl_access_role_set(obj, EFL_ACCESS_ROLE_PAGE_TAB_LIST); 1871 efl_access_role_set(obj, EFL_ACCESS_ROLE_PAGE_TAB_LIST);
1881 1872
@@ -2313,12 +2304,6 @@ _efl_ui_flip_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Dat
2313 return eina_list_data_idx(pd->content_list, (void *)subobj); 2304 return eina_list_data_idx(pd->content_list, (void *)subobj);
2314} 2305}
2315 2306
2316static void
2317_efl_ui_flip_class_constructor(Efl_Class *klass)
2318{
2319 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2320}
2321
2322EAPI void 2307EAPI void
2323elm_flip_interaction_direction_hitsize_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, double hitsize) 2308elm_flip_interaction_direction_hitsize_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, double hitsize)
2324{ 2309{
@@ -2371,3 +2356,30 @@ ELM_PART_CONTENT_DEFAULT_GET(efl_ui_flip, "front")
2371 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_flip) 2356 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_flip)
2372 2357
2373#include "efl_ui_flip.eo.c" 2358#include "efl_ui_flip.eo.c"
2359
2360#include "efl_ui_flip_legacy.eo.h"
2361
2362#define MY_CLASS_NAME_LEGACY "elm_flip"
2363
2364static void
2365_efl_ui_flip_legacy_class_constructor(Efl_Class *klass)
2366{
2367 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2368}
2369
2370EOLIAN static Eo *
2371_efl_ui_flip_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
2372{
2373 obj = efl_constructor(efl_super(obj, EFL_UI_FLIP_LEGACY_CLASS));
2374 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
2375 return obj;
2376}
2377
2378EAPI Evas_Object *
2379elm_flip_add(Evas_Object *parent)
2380{
2381 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
2382 return elm_legacy_add(EFL_UI_FLIP_LEGACY_CLASS, parent);
2383}
2384
2385#include "efl_ui_flip_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_flip.eo b/src/lib/elementary/efl_ui_flip.eo
index 892ebf9..9e55aa1 100644
--- a/src/lib/elementary/efl_ui_flip.eo
+++ b/src/lib/elementary/efl_ui_flip.eo
@@ -227,7 +227,6 @@ class Efl.Ui.Flip (Efl.Ui.Widget, Efl.Pack.Linear, Efl.Part)
227 } 227 }
228 } 228 }
229 implements { 229 implements {
230 class.constructor;
231 Efl.Object.constructor; 230 Efl.Object.constructor;
232 Efl.Ui.Widget.widget_sub_object_add; 231 Efl.Ui.Widget.widget_sub_object_add;
233 Efl.Ui.Widget.theme_apply; 232 Efl.Ui.Widget.theme_apply;
diff --git a/src/lib/elementary/efl_ui_flip_legacy.eo b/src/lib/elementary/efl_ui_flip_legacy.eo
new file mode 100644
index 0000000..697c2d1
--- /dev/null
+++ b/src/lib/elementary/efl_ui_flip_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Flip_Legacy (Efl.Ui.Flip, Efl.Ui.Legacy)
2{
3 [[Efl UI flip class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_frame.c b/src/lib/elementary/efl_ui_frame.c
index 234812d..d4f60eb 100644
--- a/src/lib/elementary/efl_ui_frame.c
+++ b/src/lib/elementary/efl_ui_frame.c
@@ -14,7 +14,6 @@
14#define MY_CLASS EFL_UI_FRAME_CLASS 14#define MY_CLASS EFL_UI_FRAME_CLASS
15#define MY_CLASS_PFX efl_ui_frame 15#define MY_CLASS_PFX efl_ui_frame
16#define MY_CLASS_NAME "Efl.Ui.Frame" 16#define MY_CLASS_NAME "Efl.Ui.Frame"
17#define MY_CLASS_NAME_LEGACY "elm_frame"
18 17
19static const char SIG_CLICKED[] = "clicked"; 18static const char SIG_CLICKED[] = "clicked";
20 19
@@ -140,18 +139,10 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN
140 elm_layout_sizing_eval(obj); 139 elm_layout_sizing_eval(obj);
141} 140}
142 141
143EAPI Evas_Object *
144elm_frame_add(Evas_Object *parent)
145{
146 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
147 return elm_legacy_add(MY_CLASS, parent);
148}
149
150EOLIAN static Eo * 142EOLIAN static Eo *
151_efl_ui_frame_efl_object_constructor(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UNUSED) 143_efl_ui_frame_efl_object_constructor(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UNUSED)
152{ 144{
153 obj = efl_constructor(efl_super(obj, MY_CLASS)); 145 obj = efl_constructor(efl_super(obj, MY_CLASS));
154 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
155 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 146 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
156 efl_access_role_set(obj, EFL_ACCESS_ROLE_FRAME); 147 efl_access_role_set(obj, EFL_ACCESS_ROLE_FRAME);
157 148
@@ -210,12 +201,6 @@ _efl_ui_frame_collapse_get(Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd)
210 return sd->collapsed; 201 return sd->collapsed;
211} 202}
212 203
213EOLIAN static void
214_efl_ui_frame_class_constructor(Efl_Class *klass)
215{
216 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
217}
218
219/* Default text (title) and content */ 204/* Default text (title) and content */
220 205
221ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) 206ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data)
@@ -235,3 +220,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_frame)
235 ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_frame) 220 ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_frame)
236 221
237#include "efl_ui_frame.eo.c" 222#include "efl_ui_frame.eo.c"
223
224#include "efl_ui_frame_legacy.eo.h"
225
226#define MY_CLASS_NAME_LEGACY "elm_frame"
227
228static void
229_efl_ui_frame_legacy_class_constructor(Efl_Class *klass)
230{
231 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
232}
233
234EOLIAN static Eo *
235_efl_ui_frame_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
236{
237 obj = efl_constructor(efl_super(obj, EFL_UI_FRAME_LEGACY_CLASS));
238 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
239 return obj;
240}
241
242EAPI Evas_Object *
243elm_frame_add(Evas_Object *parent)
244{
245 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
246 return elm_legacy_add(EFL_UI_FRAME_LEGACY_CLASS, parent);
247}
248
249#include "efl_ui_frame_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_frame.eo b/src/lib/elementary/efl_ui_frame.eo
index 557e475..f05017f 100644
--- a/src/lib/elementary/efl_ui_frame.eo
+++ b/src/lib/elementary/efl_ui_frame.eo
@@ -55,7 +55,6 @@ class Efl.Ui.Frame (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Text, Efl.Text.Markup,
55 } 55 }
56 implements { 56 implements {
57 Efl.Object.constructor; 57 Efl.Object.constructor;
58 class.constructor;
59 Efl.Canvas.Group.group_calculate; 58 Efl.Canvas.Group.group_calculate;
60 Efl.Text.text { get; set; } 59 Efl.Text.text { get; set; }
61 Efl.Text.Markup.markup { get; set; } 60 Efl.Text.Markup.markup { get; set; }
diff --git a/src/lib/elementary/efl_ui_frame_legacy.eo b/src/lib/elementary/efl_ui_frame_legacy.eo
new file mode 100644
index 0000000..02393c5
--- /dev/null
+++ b/src/lib/elementary/efl_ui_frame_legacy.eo
@@ -0,0 +1,14 @@
1class Efl.Ui.Frame_Legacy (Efl.Ui.Frame, Efl.Ui.Legacy)
2{
3 [[Frame widget
4
5 The Frame widget allows for collapsing and expanding the content widget
6 by clicking on the frame label.
7 the label and content can be set using text_set and content_set api.
8 ]]
9 data: null;
10 implements {
11 Efl.Object.constructor;
12 class.constructor;
13 }
14}
diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c
index 35ab7b4b..4b0faf8 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -16,7 +16,6 @@
16 16
17#define MY_CLASS EFL_UI_IMAGE_CLASS 17#define MY_CLASS EFL_UI_IMAGE_CLASS
18#define MY_CLASS_NAME "Efl.Ui.Image" 18#define MY_CLASS_NAME "Efl.Ui.Image"
19#define MY_CLASS_NAME_LEGACY "elm_image"
20 19
21#define NON_EXISTING (void *)-1 20#define NON_EXISTING (void *)-1
22static const char *icon_theme = NULL; 21static const char *icon_theme = NULL;
@@ -850,23 +849,10 @@ _on_size_hints_changed(void *data, const Efl_Event *ev)
850 _efl_ui_image_internal_sizing_eval(ev->object, data); 849 _efl_ui_image_internal_sizing_eval(ev->object, data);
851} 850}
852 851
853EAPI Evas_Object *
854elm_image_add(Evas_Object *parent)
855{
856 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
857 Evas_Object *obj = elm_legacy_add(MY_CLASS, parent);
858 EFL_UI_IMAGE_DATA_GET(obj, priv);
859
860 efl_event_callback_add(obj, EFL_GFX_EVENT_CHANGE_SIZE_HINTS, _on_size_hints_changed, priv);
861
862 return obj;
863}
864
865EOLIAN static Eo * 852EOLIAN static Eo *
866_efl_ui_image_efl_object_constructor(Eo *obj, Efl_Ui_Image_Data *pd) 853_efl_ui_image_efl_object_constructor(Eo *obj, Efl_Ui_Image_Data *pd)
867{ 854{
868 obj = efl_constructor(efl_super(obj, MY_CLASS)); 855 obj = efl_constructor(efl_super(obj, MY_CLASS));
869 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
870 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 856 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
871 efl_access_role_set(obj, EFL_ACCESS_ROLE_IMAGE); 857 efl_access_role_set(obj, EFL_ACCESS_ROLE_IMAGE);
872 858
@@ -1518,12 +1504,6 @@ _efl_ui_image_efl_player_play_get(Eo *obj, Efl_Ui_Image_Data *sd)
1518 return _efl_ui_image_animated_play_get_internal(obj, sd); 1504 return _efl_ui_image_animated_play_get_internal(obj, sd);
1519} 1505}
1520 1506
1521static void
1522_efl_ui_image_class_constructor(Efl_Class *klass)
1523{
1524 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
1525}
1526
1527EOLIAN static void 1507EOLIAN static void
1528_efl_ui_image_efl_image_scale_type_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd EINA_UNUSED, Efl_Image_Scale_Type scale_type) 1508_efl_ui_image_efl_image_scale_type_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd EINA_UNUSED, Efl_Image_Scale_Type scale_type)
1529{ 1509{
@@ -2278,3 +2258,35 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_image, Efl_Ui_Image_Data)
2278 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image) 2258 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image)
2279 2259
2280#include "efl_ui_image.eo.c" 2260#include "efl_ui_image.eo.c"
2261
2262#include "efl_ui_image_legacy.eo.h"
2263
2264#define MY_CLASS_NAME_LEGACY "elm_image"
2265
2266static void
2267_efl_ui_image_legacy_class_constructor(Efl_Class *klass)
2268{
2269 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2270}
2271
2272EOLIAN static Eo *
2273_efl_ui_image_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
2274{
2275 obj = efl_constructor(efl_super(obj, EFL_UI_IMAGE_LEGACY_CLASS));
2276 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
2277 return obj;
2278}
2279
2280EAPI Evas_Object *
2281elm_image_add(Evas_Object *parent)
2282{
2283 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
2284 Evas_Object *obj = elm_legacy_add(EFL_UI_IMAGE_LEGACY_CLASS, parent);
2285 EFL_UI_IMAGE_DATA_GET(obj, priv);
2286
2287 efl_event_callback_add(obj, EFL_GFX_EVENT_CHANGE_SIZE_HINTS, _on_size_hints_changed, priv);
2288
2289 return obj;
2290}
2291
2292#include "efl_ui_image_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_image.eo b/src/lib/elementary/efl_ui_image.eo
index db48d04..11a8f2a 100644
--- a/src/lib/elementary/efl_ui_image.eo
+++ b/src/lib/elementary/efl_ui_image.eo
@@ -88,7 +88,6 @@ class Efl.Ui.Image (Efl.Ui.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
88 } 88 }
89 } 89 }
90 implements { 90 implements {
91 class.constructor;
92 Efl.Object.constructor; 91 Efl.Object.constructor;
93 Efl.File.file { get; set; } 92 Efl.File.file { get; set; }
94 Efl.File.mmap { set; } 93 Efl.File.mmap { set; }
diff --git a/src/lib/elementary/efl_ui_image_legacy.eo b/src/lib/elementary/efl_ui_image_legacy.eo
new file mode 100644
index 0000000..0ee7309
--- /dev/null
+++ b/src/lib/elementary/efl_ui_image_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Image_Legacy (Efl.Ui.Image, Efl.Ui.Legacy)
2{
3 [[ Efl UI image class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c
index c3d0f5e..bd9dc5c 100644
--- a/src/lib/elementary/efl_ui_image_zoomable.c
+++ b/src/lib/elementary/efl_ui_image_zoomable.c
@@ -21,7 +21,6 @@
21#define MY_CLASS EFL_UI_IMAGE_ZOOMABLE_CLASS 21#define MY_CLASS EFL_UI_IMAGE_ZOOMABLE_CLASS
22 22
23#define MY_CLASS_NAME "Efl.Ui.Image_Zoomable" 23#define MY_CLASS_NAME "Efl.Ui.Image_Zoomable"
24#define MY_CLASS_NAME_LEGACY "elm_photocam"
25 24
26/* 25/*
27 * TODO (maybe - optional future stuff): 26 * TODO (maybe - optional future stuff):
@@ -1789,7 +1788,6 @@ EOLIAN static Eo *
1789_efl_ui_image_zoomable_efl_object_constructor(Eo *obj, Efl_Ui_Image_Zoomable_Data *_pd EINA_UNUSED) 1788_efl_ui_image_zoomable_efl_object_constructor(Eo *obj, Efl_Ui_Image_Zoomable_Data *_pd EINA_UNUSED)
1790{ 1789{
1791 obj = efl_constructor(efl_super(obj, MY_CLASS)); 1790 obj = efl_constructor(efl_super(obj, MY_CLASS));
1792 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
1793 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 1791 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
1794 efl_access_role_set(obj, EFL_ACCESS_ROLE_IMAGE); 1792 efl_access_role_set(obj, EFL_ACCESS_ROLE_IMAGE);
1795 1793
@@ -2954,10 +2952,8 @@ _efl_ui_image_zoomable_efl_player_play_get(Eo *obj, Efl_Ui_Image_Zoomable_Data *
2954} 2952}
2955 2953
2956EOLIAN static void 2954EOLIAN static void
2957_efl_ui_image_zoomable_class_constructor(Efl_Class *klass) 2955_efl_ui_image_zoomable_class_constructor(Efl_Class *klass EINA_UNUSED)
2958{ 2956{
2959 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2960
2961 PHOTO_FILE_LOAD_ERROR_GENERIC = eina_error_msg_static_register("Generic load error"); 2957 PHOTO_FILE_LOAD_ERROR_GENERIC = eina_error_msg_static_register("Generic load error");
2962 PHOTO_FILE_LOAD_ERROR_DOES_NOT_EXIST = eina_error_msg_static_register("File does not exist"); 2958 PHOTO_FILE_LOAD_ERROR_DOES_NOT_EXIST = eina_error_msg_static_register("File does not exist");
2963 PHOTO_FILE_LOAD_ERROR_PERMISSION_DENIED = eina_error_msg_static_register("Permission denied to an existing file"); 2959 PHOTO_FILE_LOAD_ERROR_PERMISSION_DENIED = eina_error_msg_static_register("Permission denied to an existing file");
@@ -2983,13 +2979,39 @@ _efl_ui_image_zoomable_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNU
2983 return &atspi_actions[0]; 2979 return &atspi_actions[0];
2984} 2980}
2985 2981
2986/* Legacy APIs */ 2982/* Standard widget overrides */
2983
2984ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_image_zoomable, Efl_Ui_Image_Zoomable_Data)
2985
2986/* Internal EO APIs and hidden overrides */
2987
2988#define EFL_UI_IMAGE_ZOOMABLE_EXTRA_OPS \
2989 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image_zoomable)
2990
2991#include "efl_ui_image_zoomable.eo.c"
2992
2993#include "efl_ui_image_zoomable_legacy.eo.h"
2994#define MY_CLASS_NAME_LEGACY "elm_photocam"
2995
2996static void
2997_efl_ui_image_zoomable_legacy_class_constructor(Efl_Class *klass)
2998{
2999 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
3000}
3001
3002EOLIAN static Eo *
3003_efl_ui_image_zoomable_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
3004{
3005 obj = efl_constructor(efl_super(obj, EFL_UI_IMAGE_ZOOMABLE_LEGACY_CLASS));
3006 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
3007 return obj;
3008}
2987 3009
2988EAPI Evas_Object * 3010EAPI Evas_Object *
2989elm_photocam_add(Evas_Object *parent) 3011elm_photocam_add(Evas_Object *parent)
2990{ 3012{
2991 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 3013 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
2992 return elm_legacy_add(MY_CLASS, parent); 3014 return elm_legacy_add(EFL_UI_IMAGE_ZOOMABLE_LEGACY_CLASS, parent);
2993} 3015}
2994 3016
2995static inline void 3017static inline void
@@ -3223,13 +3245,4 @@ elm_photocam_image_region_get(const Efl_Ui_Image_Zoomable *obj, int *x, int *y,
3223 if (h) *h = r.h; 3245 if (h) *h = r.h;
3224} 3246}
3225 3247
3226/* Standard widget overrides */ 3248#include "efl_ui_image_zoomable_legacy.eo.c"
3227
3228ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_image_zoomable, Efl_Ui_Image_Zoomable_Data)
3229
3230/* Internal EO APIs and hidden overrides */
3231
3232#define EFL_UI_IMAGE_ZOOMABLE_EXTRA_OPS \
3233 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image_zoomable)
3234
3235#include "efl_ui_image_zoomable.eo.c"
diff --git a/src/lib/elementary/efl_ui_image_zoomable_legacy.eo b/src/lib/elementary/efl_ui_image_zoomable_legacy.eo
new file mode 100644
index 0000000..3816422
--- /dev/null
+++ b/src/lib/elementary/efl_ui_image_zoomable_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Image_Zoomable_Legacy (Efl.Ui.Image_Zoomable, Efl.Ui.Legacy)
2{
3 [[Elementary Image Zoomable class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c
index f2cf37a..919e02f 100644
--- a/src/lib/elementary/efl_ui_layout.c
+++ b/src/lib/elementary/efl_ui_layout.c
@@ -17,7 +17,6 @@
17#define MY_CLASS_PFX efl_ui_layout 17#define MY_CLASS_PFX efl_ui_layout
18 18
19#define MY_CLASS_NAME "Efl.Ui.Layout" 19#define MY_CLASS_NAME "Efl.Ui.Layout"
20#define MY_CLASS_NAME_LEGACY "elm_layout"
21 20
22Eo *_efl_ui_layout_pack_proxy_get(Efl_Ui_Layout *obj, Edje_Part_Type type, const char *part); 21Eo *_efl_ui_layout_pack_proxy_get(Efl_Ui_Layout *obj, Edje_Part_Type type, const char *part);
23static void _efl_model_properties_changed_cb(void *, const Efl_Event *); 22static void _efl_model_properties_changed_cb(void *, const Efl_Event *);
@@ -802,9 +801,8 @@ EOLIAN static Efl_Ui_Theme_Apply
802_efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style) 801_efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style)
803{ 802{
804 Eina_Bool changed = EINA_FALSE; 803 Eina_Bool changed = EINA_FALSE;
805 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
806 804
807 if (!wd->legacy && efl_finalized_get(obj)) 805 if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj))
808 { 806 {
809 ERR("Efl.Ui.Layout.theme can only be set before finalize!"); 807 ERR("Efl.Ui.Layout.theme can only be set before finalize!");
810 return EFL_UI_THEME_APPLY_FAILED; 808 return EFL_UI_THEME_APPLY_FAILED;
@@ -1153,7 +1151,7 @@ _efl_ui_layout_text_generic_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *par
1153 1151
1154 if (!text) return EINA_TRUE; 1152 if (!text) return EINA_TRUE;
1155 1153
1156 if (wd->legacy) 1154 if (elm_widget_is_legacy(obj))
1157 { 1155 {
1158 if (!edje_object_part_text_escaped_set 1156 if (!edje_object_part_text_escaped_set
1159 (wd->resize_obj, part, text)) 1157 (wd->resize_obj, part, text))
@@ -2088,30 +2086,17 @@ _efl_ui_layout_efl_ui_model_factory_connect_connect(Eo *obj EINA_UNUSED, Efl_Ui_
2088 elm_layout_content_set(obj, name, new_ev); 2086 elm_layout_content_set(obj, name, new_ev);
2089} 2087}
2090 2088
2091EAPI Evas_Object *
2092elm_layout_add(Evas_Object *parent)
2093{
2094 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
2095 return elm_legacy_add(MY_CLASS, parent);
2096}
2097
2098EOLIAN static Eo * 2089EOLIAN static Eo *
2099_efl_ui_layout_efl_object_constructor(Eo *obj, Efl_Ui_Layout_Data *sd) 2090_efl_ui_layout_efl_object_constructor(Eo *obj, Efl_Ui_Layout_Data *sd)
2100{ 2091{
2101 sd->obj = obj; 2092 sd->obj = obj;
2102 obj = efl_constructor(efl_super(obj, MY_CLASS)); 2093 obj = efl_constructor(efl_super(obj, MY_CLASS));
2103 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
2104 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 2094 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
2105 efl_access_role_set(obj, EFL_ACCESS_ROLE_FILLER); 2095 efl_access_role_set(obj, EFL_ACCESS_ROLE_FILLER);
2106 2096
2107 return obj; 2097 return obj;
2108} 2098}
2109 2099
2110EOLIAN static void _efl_ui_layout_class_constructor(Efl_Class *klass)
2111{
2112 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2113}
2114
2115EOLIAN static Efl_Object* 2100EOLIAN static Efl_Object*
2116_efl_ui_layout_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED) 2101_efl_ui_layout_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED)
2117{ 2102{
@@ -2137,8 +2122,264 @@ _efl_ui_layout_efl_layout_signal_signal_process(Eo *obj, Efl_Ui_Layout_Data *pd
2137 efl_layout_signal_process(wd->resize_obj, recurse); 2122 efl_layout_signal_process(wd->resize_obj, recurse);
2138} 2123}
2139 2124
2125/* Efl.Part implementation */
2126
2127EOLIAN static Eo *
2128_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part)
2129{
2130 Efl_Canvas_Layout_Part_Type type = EFL_CANVAS_LAYOUT_PART_TYPE_NONE;
2131
2132 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
2133 ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL);
2134
2135 // Check part type without using edje_object_part_object_get(), as this
2136 // can cause recalc, which has side effects... and could be slow.
2137
2138 if (eina_streq(part, "background"))
2139 {
2140 if (efl_layout_group_part_exist_get(wd->resize_obj, part))
2141 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2142 if (type != EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW)
2143 {
2144 if (type < EFL_CANVAS_LAYOUT_PART_TYPE_LAST &&
2145 type > EFL_CANVAS_LAYOUT_PART_TYPE_NONE)
2146 {
2147 const char *file = NULL, *key = NULL;
2148 efl_file_get(wd->resize_obj, &file, &key);
2149 WRN("Layout has a background but it's not a swallow: '%s'",
2150 elm_widget_theme_element_get(obj));
2151 }
2152 return efl_part(efl_super(obj, MY_CLASS), part);
2153 }
2154
2155 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_BG_CLASS, obj, part);
2156 }
2157 else if (eina_streq(part, "shadow"))
2158 return efl_part(efl_super(obj, MY_CLASS), part);
2159
2160 if (!efl_layout_group_part_exist_get(wd->resize_obj, part))
2161 {
2162 // edje part will handle the error message
2163 return efl_part(wd->resize_obj, part);
2164 }
2165
2166 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2167 if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST)
2168 {
2169 ERR("Invalid type found for part '%s' in group '%s'",
2170 part, elm_widget_theme_element_get(obj));
2171 return NULL;
2172 }
2173
2174 switch (type)
2175 {
2176 case EFL_CANVAS_LAYOUT_PART_TYPE_BOX:
2177 case EFL_CANVAS_LAYOUT_PART_TYPE_TABLE:
2178 return _efl_ui_layout_pack_proxy_get((Eo *) obj, type, part);
2179 case EFL_CANVAS_LAYOUT_PART_TYPE_TEXT:
2180 case EFL_CANVAS_LAYOUT_PART_TYPE_TEXTBLOCK:
2181 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, part);
2182 case EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW:
2183 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, part);
2184 default:
2185 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CLASS, obj, part);
2186 }
2187}
2188
2189static const char *
2190_efl_ui_layout_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
2191{
2192 const char *part = NULL;
2193 if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_FALSE))
2194 return NULL;
2195 return part;
2196}
2197
2198static const char *
2199_efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
2200{
2201 const char *part = NULL;
2202 if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE))
2203 return NULL;
2204 return part;
2205}
2206
2207/* Efl.Ui.Layout.Part (common) */
2208
2209EOLIAN static Eina_Bool
2210_efl_ui_layout_part_efl_ui_cursor_cursor_set(Eo *obj, void *_pd EINA_UNUSED, const char *cursor)
2211{
2212 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2213 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2214 return _efl_ui_layout_part_cursor_set(sd, pd->part, cursor);
2215}
2216
2217EOLIAN static const char *
2218_efl_ui_layout_part_efl_ui_cursor_cursor_get(Eo *obj, void *_pd EINA_UNUSED)
2219{
2220 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2221 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2222 return _efl_ui_layout_part_cursor_get(sd, pd->part);
2223}
2224
2225EOLIAN static Eina_Bool
2226_efl_ui_layout_part_efl_ui_cursor_cursor_style_set(Eo *obj, void *_pd EINA_UNUSED, const char *style)
2227{
2228 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2229 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2230 return _efl_ui_layout_part_cursor_style_set(sd, pd->part, style);
2231}
2232
2233EOLIAN static const char *
2234_efl_ui_layout_part_efl_ui_cursor_cursor_style_get(Eo *obj, void *_pd EINA_UNUSED)
2235{
2236 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2237 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2238 return _efl_ui_layout_part_cursor_style_get(sd, pd->part);
2239}
2240
2241EOLIAN static Eina_Bool
2242_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool allow)
2243{
2244 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2245 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2246 return _efl_ui_layout_part_cursor_engine_only_set(sd, pd->part, !allow);
2247}
2248
2249EOLIAN static Eina_Bool
2250_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_get(Eo *obj, void *_pd EINA_UNUSED)
2251{
2252 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2253 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2254 return !_efl_ui_layout_part_cursor_engine_only_get(sd, pd->part);
2255}
2256
2257/* Efl.Ui.Layout.Part_Content */
2258ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2259ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2260ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2261
2262/* Efl.Ui.Layout.Part_Text */
2263ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2264ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2265ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2266ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2267
2268EOLIAN static const char *
2269_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
2270{
2271 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2272 return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
2273}
2274
2275EOLIAN static void
2276_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
2277{
2278 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2279 elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
2280}
2281
2282/* Efl.Ui.Layout.Part_Legacy */
2283ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2284ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2285ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2286ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2287ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2288ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2289ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2290
2291EOLIAN static const char *
2292_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
2293{
2294 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2295 return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
2296}
2297
2298EOLIAN static void
2299_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
2300{
2301 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2302 elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
2303}
2304
2305/* Efl.Ui.Layout.Part_Bg (common) */
2306
2307EOLIAN static Efl_Object *
2308_efl_ui_layout_part_bg_efl_object_finalize(Eo *obj, void *_pd EINA_UNUSED)
2309{
2310 Efl_Ui_Layout_Data *sd;
2311 Elm_Part_Data *pd;
2312 Eo *bg;
2313
2314 obj = efl_finalize(efl_super(obj, EFL_UI_LAYOUT_PART_BG_CLASS));
2315 if (!obj) return NULL;
2316
2317 pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2318 sd = efl_data_scope_get(pd->obj, MY_CLASS);
2319 bg = _efl_ui_widget_bg_get(pd->obj);
2320 if (!_efl_ui_layout_content_set(pd->obj, sd, "background", bg))
2321 {
2322 ERR("Failed to swallow new background object!");
2323 // Shouldn't happen. What now? del bg? call super? return null?
2324 }
2325
2326 return obj;
2327}
2328
2329/* Efl.Ui.Layout.Part_Xxx includes */
2330#include "efl_ui_layout_part.eo.c"
2331#include "efl_ui_layout_part_content.eo.c"
2332#include "efl_ui_layout_part_bg.eo.c"
2333#include "efl_ui_layout_part_text.eo.c"
2334#include "efl_ui_layout_part_legacy.eo.c"
2335
2336/* Efl.Part end */
2337
2338
2339/* Internal EO APIs and hidden overrides */
2340
2341EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval)
2342EFL_FUNC_BODY_CONST(elm_layout_text_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
2343EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
2344
2345ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
2346ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
2347
2348#define EFL_UI_LAYOUT_EXTRA_OPS \
2349 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_layout), \
2350 ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_layout), \
2351 ELM_PART_TEXT_DEFAULT_OPS(efl_ui_layout), \
2352 ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \
2353 ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \
2354 EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), \
2355 EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_layout_efl_object_dbg_info_get)
2356
2357#include "efl_ui_layout.eo.c"
2358
2359#include "efl_ui_layout_legacy.eo.h"
2360
2361#define MY_CLASS_NAME_LEGACY "elm_layout"
2362
2363static void
2364_efl_ui_layout_legacy_class_constructor(Efl_Class *klass)
2365{
2366 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2367}
2368
2369EOLIAN static Eo *
2370_efl_ui_layout_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
2371{
2372 obj = efl_constructor(efl_super(obj, EFL_UI_LAYOUT_LEGACY_CLASS));
2373 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
2374 return obj;
2375}
2140 2376
2141/* Legacy APIs */ 2377EAPI Evas_Object *
2378elm_layout_add(Evas_Object *parent)
2379{
2380 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
2381 return elm_legacy_add(EFL_UI_LAYOUT_LEGACY_CLASS, parent);
2382}
2142 2383
2143EAPI Eina_Bool 2384EAPI Eina_Bool
2144elm_layout_file_set(Eo *obj, const char *file, const char *group) 2385elm_layout_file_set(Eo *obj, const char *file, const char *group)
@@ -2425,239 +2666,4 @@ elm_layout_theme_set(Evas_Object *obj, const char *klass, const char *group, con
2425 return (ta != EFL_UI_THEME_APPLY_FAILED); 2666 return (ta != EFL_UI_THEME_APPLY_FAILED);
2426} 2667}
2427 2668
2428/* End of legacy only */ 2669#include "efl_ui_layout_legacy.eo.c"
2429
2430
2431/* Efl.Part implementation */
2432
2433EOLIAN static Eo *
2434_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part)
2435{
2436 Efl_Canvas_Layout_Part_Type type = EFL_CANVAS_LAYOUT_PART_TYPE_NONE;
2437
2438 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
2439 ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL);
2440
2441 // Check part type without using edje_object_part_object_get(), as this
2442 // can cause recalc, which has side effects... and could be slow.
2443
2444 if (eina_streq(part, "background"))
2445 {
2446 if (efl_layout_group_part_exist_get(wd->resize_obj, part))
2447 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2448 if (type != EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW)
2449 {
2450 if (type < EFL_CANVAS_LAYOUT_PART_TYPE_LAST &&
2451 type > EFL_CANVAS_LAYOUT_PART_TYPE_NONE)
2452 {
2453 const char *file = NULL, *key = NULL;
2454 efl_file_get(wd->resize_obj, &file, &key);
2455 WRN("Layout has a background but it's not a swallow: '%s'",
2456 elm_widget_theme_element_get(obj));
2457 }
2458 return efl_part(efl_super(obj, MY_CLASS), part);
2459 }
2460
2461 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_BG_CLASS, obj, part);
2462 }
2463 else if (eina_streq(part, "shadow"))
2464 return efl_part(efl_super(obj, MY_CLASS), part);
2465
2466 if (!efl_layout_group_part_exist_get(wd->resize_obj, part))
2467 {
2468 // edje part will handle the error message
2469 return efl_part(wd->resize_obj, part);
2470 }
2471
2472 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2473 if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST)
2474 {
2475 ERR("Invalid type found for part '%s' in group '%s'",
2476 part, elm_widget_theme_element_get(obj));
2477 return NULL;
2478 }
2479
2480 switch (type)
2481 {
2482 case EFL_CANVAS_LAYOUT_PART_TYPE_BOX:
2483 case EFL_CANVAS_LAYOUT_PART_TYPE_TABLE:
2484 return _efl_ui_layout_pack_proxy_get((Eo *) obj, type, part);
2485 case EFL_CANVAS_LAYOUT_PART_TYPE_TEXT:
2486 case EFL_CANVAS_LAYOUT_PART_TYPE_TEXTBLOCK:
2487 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, part);
2488 case EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW:
2489 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, part);
2490 default:
2491 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CLASS, obj, part);
2492 }
2493}
2494
2495static const char *
2496_efl_ui_layout_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
2497{
2498 const char *part = NULL;
2499 if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_FALSE))
2500 return NULL;
2501 return part;
2502}
2503
2504static const char *
2505_efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
2506{
2507 const char *part = NULL;
2508 if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE))
2509 return NULL;
2510 return part;
2511}
2512
2513/* Efl.Ui.Layout.Part (common) */
2514
2515EOLIAN static Eina_Bool
2516_efl_ui_layout_part_efl_ui_cursor_cursor_set(Eo *obj, void *_pd EINA_UNUSED, const char *cursor)
2517{
2518 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2519 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2520 return _efl_ui_layout_part_cursor_set(sd, pd->part, cursor);
2521}
2522
2523EOLIAN static const char *
2524_efl_ui_layout_part_efl_ui_cursor_cursor_get(Eo *obj, void *_pd EINA_UNUSED)
2525{
2526 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2527 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2528 return _efl_ui_layout_part_cursor_get(sd, pd->part);
2529}
2530
2531EOLIAN static Eina_Bool
2532_efl_ui_layout_part_efl_ui_cursor_cursor_style_set(Eo *obj, void *_pd EINA_UNUSED, const char *style)
2533{
2534 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2535 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2536 return _efl_ui_layout_part_cursor_style_set(sd, pd->part, style);
2537}
2538
2539EOLIAN static const char *
2540_efl_ui_layout_part_efl_ui_cursor_cursor_style_get(Eo *obj, void *_pd EINA_UNUSED)
2541{
2542 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2543 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2544 return _efl_ui_layout_part_cursor_style_get(sd, pd->part);
2545}
2546
2547EOLIAN static Eina_Bool
2548_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool allow)
2549{
2550 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2551 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2552 return _efl_ui_layout_part_cursor_engine_only_set(sd, pd->part, !allow);
2553}
2554
2555EOLIAN static Eina_Bool
2556_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_get(Eo *obj, void *_pd EINA_UNUSED)
2557{
2558 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2559 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2560 return !_efl_ui_layout_part_cursor_engine_only_get(sd, pd->part);
2561}
2562
2563/* Efl.Ui.Layout.Part_Content */
2564ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2565ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2566ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2567
2568/* Efl.Ui.Layout.Part_Text */
2569ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2570ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2571ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2572ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2573
2574EOLIAN static const char *
2575_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
2576{
2577 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2578 return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
2579}
2580
2581EOLIAN static void
2582_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
2583{
2584 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2585 elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
2586}
2587
2588/* Efl.Ui.Layout.Part_Legacy */
2589ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2590ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2591ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2592ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2593ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2594ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2595ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2596
2597EOLIAN static const char *
2598_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
2599{
2600 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2601 return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
2602}
2603
2604EOLIAN static void
2605_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
2606{
2607 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2608 elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
2609}
2610
2611/* Efl.Ui.Layout.Part_Bg (common) */
2612
2613EOLIAN static Efl_Object *
2614_efl_ui_layout_part_bg_efl_object_finalize(Eo *obj, void *_pd EINA_UNUSED)
2615{
2616 Efl_Ui_Layout_Data *sd;
2617 Elm_Part_Data *pd;
2618 Eo *bg;
2619
2620 obj = efl_finalize(efl_super(obj, EFL_UI_LAYOUT_PART_BG_CLASS));
2621 if (!obj) return NULL;
2622
2623 pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2624 sd = efl_data_scope_get(pd->obj, MY_CLASS);
2625 bg = _efl_ui_widget_bg_get(pd->obj);
2626 if (!_efl_ui_layout_content_set(pd->obj, sd, "background", bg))
2627 {
2628 ERR("Failed to swallow new background object!");
2629 // Shouldn't happen. What now? del bg? call super? return null?
2630 }
2631
2632 return obj;
2633}
2634
2635/* Efl.Ui.Layout.Part_Xxx includes */
2636#include "efl_ui_layout_part.eo.c"
2637#include "efl_ui_layout_part_content.eo.c"
2638#include "efl_ui_layout_part_bg.eo.c"
2639#include "efl_ui_layout_part_text.eo.c"
2640#include "efl_ui_layout_part_legacy.eo.c"
2641
2642/* Efl.Part end */
2643
2644
2645/* Internal EO APIs and hidden overrides */
2646
2647EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval)
2648EFL_FUNC_BODY_CONST(elm_layout_text_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
2649EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
2650
2651ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
2652ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
2653
2654#define EFL_UI_LAYOUT_EXTRA_OPS \
2655 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_layout), \
2656 ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_layout), \
2657 ELM_PART_TEXT_DEFAULT_OPS(efl_ui_layout), \
2658 ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \
2659 ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \
2660 EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), \
2661 EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_layout_efl_object_dbg_info_get)
2662
2663#include "efl_ui_layout.eo.c"
diff --git a/src/lib/elementary/efl_ui_layout.eo b/src/lib/elementary/efl_ui_layout.eo
index 1667b0d..573768c 100644
--- a/src/lib/elementary/efl_ui_layout.eo
+++ b/src/lib/elementary/efl_ui_layout.eo
@@ -43,7 +43,6 @@ class Efl.Ui.Layout (Efl.Ui.Widget, Efl.Part, Efl.Container, Efl.File,
43 } 43 }
44 } 44 }
45 implements { 45 implements {
46 class.constructor;
47 Efl.Object.constructor; 46 Efl.Object.constructor;
48 Efl.Object.finalize; 47 Efl.Object.finalize;
49 Efl.File.file { get; set; } 48 Efl.File.file { get; set; }
diff --git a/src/lib/elementary/efl_ui_layout_legacy.eo b/src/lib/elementary/efl_ui_layout_legacy.eo
new file mode 100644
index 0000000..453d78e
--- /dev/null
+++ b/src/lib/elementary/efl_ui_layout_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Layout_Legacy (Efl.Ui.Layout, Efl.Ui.Legacy)
2{
3 [[Elementary layout class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_legacy.c b/src/lib/elementary/efl_ui_legacy.c
new file mode 100644
index 0000000..85a0c23
--- /dev/null
+++ b/src/lib/elementary/efl_ui_legacy.c
@@ -0,0 +1,8 @@
1#ifdef HAVE_CONFIG_H
2# include "elementary_config.h"
3#endif
4
5#include <Elementary.h>
6#include "elm_priv.h"
7
8#include "efl_ui_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_legacy.eo b/src/lib/elementary/efl_ui_legacy.eo
new file mode 100644
index 0000000..e077691
--- /dev/null
+++ b/src/lib/elementary/efl_ui_legacy.eo
@@ -0,0 +1,9 @@
1interface EFl.Ui.Legacy (Efl.Interface)
2{
3 [[The bg (background) widget is used for setting (solid) background decorations
4
5 in a window (unless it has transparency enabled) or on any container object. It
6 works just like an image but has some properties useful for backgrounds, such as
7 setting it to tiled, centered, scaled or stretched.
8 ]]
9}
diff --git a/src/lib/elementary/efl_ui_multibuttonentry.c b/src/lib/elementary/efl_ui_multibuttonentry.c
index 638c791..47a8e16 100644
--- a/src/lib/elementary/efl_ui_multibuttonentry.c
+++ b/src/lib/elementary/efl_ui_multibuttonentry.c
@@ -18,7 +18,6 @@
18#define MY_CLASS_PFX efl_ui_multibuttonentry 18#define MY_CLASS_PFX efl_ui_multibuttonentry
19 19
20#define MY_CLASS_NAME "Efl.Ui.Multibuttonentry" 20#define MY_CLASS_NAME "Efl.Ui.Multibuttonentry"
21#define MY_CLASS_NAME_LEGACY "elm_multibuttonentry"
22 21
23#define MAX_STR 256 22#define MAX_STR 256
24#define MIN_W_ENTRY 10 23#define MIN_W_ENTRY 10
@@ -1636,13 +1635,6 @@ _efl_ui_multibuttonentry_efl_ui_widget_on_access_update(Eo *obj, Efl_Ui_Multibut
1636 _access_obj_process(obj, _efl_ui_multibuttonentry_smart_focus_next_enable); 1635 _access_obj_process(obj, _efl_ui_multibuttonentry_smart_focus_next_enable);
1637} 1636}
1638 1637
1639EAPI Evas_Object *
1640elm_multibuttonentry_add(Evas_Object *parent)
1641{
1642 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
1643 return elm_legacy_add(MY_CLASS, parent);
1644}
1645
1646static void 1638static void
1647_legacy_focused(void *data, const Efl_Event *ev) 1639_legacy_focused(void *data, const Efl_Event *ev)
1648{ 1640{
@@ -1684,7 +1676,6 @@ EOLIAN static Eo *
1684_efl_ui_multibuttonentry_efl_object_constructor(Eo *obj, Efl_Ui_Multibuttonentry_Data *sd EINA_UNUSED) 1676_efl_ui_multibuttonentry_efl_object_constructor(Eo *obj, Efl_Ui_Multibuttonentry_Data *sd EINA_UNUSED)
1685{ 1677{
1686 obj = efl_constructor(efl_super(obj, MY_CLASS)); 1678 obj = efl_constructor(efl_super(obj, MY_CLASS));
1687 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
1688 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 1679 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
1689 efl_access_role_set(obj, EFL_ACCESS_ROLE_PANEL); 1680 efl_access_role_set(obj, EFL_ACCESS_ROLE_PANEL);
1690 1681
@@ -1977,10 +1968,8 @@ _efl_ui_multibuttonentry_efl_ui_format_format_cb_set(Eo *obj EINA_UNUSED, Efl_Ui
1977} 1968}
1978 1969
1979static void 1970static void
1980_efl_ui_multibuttonentry_class_constructor(Efl_Class *klass) 1971_efl_ui_multibuttonentry_class_constructor(Efl_Class *klass EINA_UNUSED)
1981{ 1972{
1982 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
1983
1984 if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF) 1973 if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF)
1985 _efl_ui_multibuttonentry_smart_focus_next_enable = EINA_TRUE; 1974 _efl_ui_multibuttonentry_smart_focus_next_enable = EINA_TRUE;
1986} 1975}
@@ -2082,6 +2071,30 @@ ELM_PART_OVERRIDE_TEXT_GET(efl_ui_multibuttonentry, EFL_UI_MULTIBUTTONENTRY, Efl
2082#include "elm_multibuttonentry_item.eo.c" 2071#include "elm_multibuttonentry_item.eo.c"
2083#include "efl_ui_multibuttonentry.eo.c" 2072#include "efl_ui_multibuttonentry.eo.c"
2084 2073
2074#include "efl_ui_multibuttonentry_legacy.eo.h"
2075#define MY_CLASS_NAME_LEGACY "elm_multibuttonentry"
2076
2077static void
2078_efl_ui_multibuttonentry_legacy_class_constructor(Efl_Class *klass)
2079{
2080 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
2081}
2082
2083EOLIAN static Eo *
2084_efl_ui_multibuttonentry_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
2085{
2086 obj = efl_constructor(efl_super(obj, EFL_UI_MULTIBUTTONENTRY_LEGACY_CLASS));
2087 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
2088 return obj;
2089}
2090
2091EAPI Evas_Object *
2092elm_multibuttonentry_add(Evas_Object *parent)
2093{
2094 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
2095 return elm_legacy_add(EFL_UI_MULTIBUTTONENTRY_LEGACY_CLASS, parent);
2096}
2097
2085/* Legacy APIs */ 2098/* Legacy APIs */
2086 2099
2087typedef struct 2100typedef struct
@@ -2128,3 +2141,5 @@ elm_multibuttonentry_format_function_set(Eo *obj, Efl_Ui_Multibuttonentry_Format
2128 2141
2129 efl_ui_format_cb_set(obj, mfwd, _format_legacy_to_format_eo_cb, _format_legacy_to_format_eo_free_cb); 2142 efl_ui_format_cb_set(obj, mfwd, _format_legacy_to_format_eo_cb, _format_legacy_to_format_eo_free_cb);
2130} 2143}
2144
2145#include "efl_ui_multibuttonentry_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_multibuttonentry_legacy.eo b/src/lib/elementary/efl_ui_multibuttonentry_legacy.eo
new file mode 100644
index 0000000..e649ed6
--- /dev/null
+++ b/src/lib/elementary/efl_ui_multibuttonentry_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Multibuttonentry_Legacy (Efl.Ui.Multibuttonentry, Efl.Ui.Legacy)
2{
3 [[Elementary multibuttonentry class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c
index de2b225..6f77dd7 100644
--- a/src/lib/elementary/efl_ui_panes.c
+++ b/src/lib/elementary/efl_ui_panes.c
@@ -19,7 +19,6 @@
19#define MY_CLASS_PFX efl_ui_panes 19#define MY_CLASS_PFX efl_ui_panes
20 20
21#define MY_CLASS_NAME "Efl.Ui.Panes" 21#define MY_CLASS_NAME "Efl.Ui.Panes"
22#define MY_CLASS_NAME_LEGACY "elm_panes"
23/** 22/**
24 * TODO 23 * TODO
25 * Update the minimun height of the bar in the theme. 24 * Update the minimun height of the bar in the theme.
@@ -465,7 +464,6 @@ EOLIAN static Eo *
465_efl_ui_panes_efl_object_constructor(Eo *obj, Efl_Ui_Panes_Data *_pd EINA_UNUSED) 464_efl_ui_panes_efl_object_constructor(Eo *obj, Efl_Ui_Panes_Data *_pd EINA_UNUSED)
466{ 465{
467 obj = efl_constructor(efl_super(obj, MY_CLASS)); 466 obj = efl_constructor(efl_super(obj, MY_CLASS));
468 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
469 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 467 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
470 efl_access_role_set(obj, EFL_ACCESS_ROLE_SPLIT_PANE); 468 efl_access_role_set(obj, EFL_ACCESS_ROLE_SPLIT_PANE);
471 469
@@ -550,12 +548,6 @@ _efl_ui_panes_fixed_get(Eo *obj EINA_UNUSED, Efl_Ui_Panes_Data *sd)
550 return sd->fixed; 548 return sd->fixed;
551} 549}
552 550
553static void
554_efl_ui_panes_class_constructor(Efl_Class *klass)
555{
556 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
557}
558
559/* Efl.Part begin */ 551/* Efl.Part begin */
560 552
561static Eina_Bool 553static Eina_Bool
@@ -660,13 +652,30 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_panes)
660 ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_panes), \ 652 ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_panes), \
661 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_panes) 653 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_panes)
662 654
663/* Legacy APIs */ 655#include "efl_ui_panes.eo.c"
656
657#include "efl_ui_panes_legacy.eo.h"
658#define MY_CLASS_NAME_LEGACY "elm_panes"
659
660static void
661_efl_ui_panes_legacy_class_constructor(Efl_Class *klass)
662{
663 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
664}
665
666EOLIAN static Eo *
667_efl_ui_panes_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
668{
669 obj = efl_constructor(efl_super(obj, EFL_UI_PANES_LEGACY_CLASS));
670 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
671 return obj;
672}
664 673
665EAPI Evas_Object * 674EAPI Evas_Object *
666elm_panes_add(Evas_Object *parent) 675elm_panes_add(Evas_Object *parent)
667{ 676{
668 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 677 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
669 return elm_legacy_add(MY_CLASS, parent); 678 return elm_legacy_add(EFL_UI_PANES_LEGACY_CLASS, parent);
670} 679}
671 680
672EAPI void 681EAPI void
@@ -826,6 +835,4 @@ elm_panes_content_right_unset(Evas_Object *obj)
826 return elm_layout_content_unset(obj, "right"); 835 return elm_layout_content_unset(obj, "right");
827} 836}
828 837
829/* Legacy APIs end */ 838#include "efl_ui_panes_legacy.eo.c"
830
831#include "efl_ui_panes.eo.c"
diff --git a/src/lib/elementary/efl_ui_panes.eo b/src/lib/elementary/efl_ui_panes.eo
index bfd8381..41e8021 100644
--- a/src/lib/elementary/efl_ui_panes.eo
+++ b/src/lib/elementary/efl_ui_panes.eo
@@ -49,7 +49,6 @@ class Efl.Ui.Panes (Efl.Ui.Layout, Efl.Ui.Direction,
49 second: Efl.Ui.Panes.Part; [[The second half of the panes widget (right or bottom)]] 49 second: Efl.Ui.Panes.Part; [[The second half of the panes widget (right or bottom)]]
50 } 50 }
51 implements { 51 implements {
52 class.constructor;
53 Efl.Object.constructor; 52 Efl.Object.constructor;
54 Efl.Ui.Widget.theme_apply; 53 Efl.Ui.Widget.theme_apply;
55 Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and $horizontal. Default is $vertical.]] } 54 Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and $horizontal. Default is $vertical.]] }
diff --git a/src/lib/elementary/efl_ui_panes_legacy.eo b/src/lib/elementary/efl_ui_panes_legacy.eo
new file mode 100644
index 0000000..704f709
--- /dev/null
+++ b/src/lib/elementary/efl_ui_panes_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Panes_Legacy(Efl.Ui.Panes, Efl.Ui.Legacy)
2{
3 [[Elementary panes class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c
index 0ecaed2..dc03e3d 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -19,7 +19,6 @@
19#define MY_CLASS_PFX efl_ui_progressbar 19#define MY_CLASS_PFX efl_ui_progressbar
20 20
21#define MY_CLASS_NAME "Efl.Ui.Progressbar" 21#define MY_CLASS_NAME "Efl.Ui.Progressbar"
22#define MY_CLASS_NAME_LEGACY "elm_progressbar"
23 22
24static const char SIG_CHANGED[] = "changed"; 23static const char SIG_CHANGED[] = "changed";
25 24
@@ -421,7 +420,6 @@ EOLIAN static Eo *
421_efl_ui_progressbar_efl_object_constructor(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED) 420_efl_ui_progressbar_efl_object_constructor(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED)
422{ 421{
423 obj = efl_constructor(efl_super(obj, MY_CLASS)); 422 obj = efl_constructor(efl_super(obj, MY_CLASS));
424 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
425 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 423 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
426 efl_access_role_set(obj, EFL_ACCESS_ROLE_PROGRESS_BAR); 424 efl_access_role_set(obj, EFL_ACCESS_ROLE_PROGRESS_BAR);
427 425
@@ -585,12 +583,6 @@ _efl_ui_progressbar_pulse_get(Eo *obj EINA_UNUSED, Efl_Ui_Progressbar_Data *sd)
585 return (sd->pulse_state && sd->pulse); 583 return (sd->pulse_state && sd->pulse);
586} 584}
587 585
588EOLIAN static void
589_efl_ui_progressbar_class_constructor(Efl_Class *klass)
590{
591 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
592}
593
594/* Efl.Part begin */ 586/* Efl.Part begin */
595 587
596EOLIAN static Eo * 588EOLIAN static Eo *
@@ -651,13 +643,29 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_progressbar)
651 643
652#include "efl_ui_progressbar.eo.c" 644#include "efl_ui_progressbar.eo.c"
653 645
654/* Legacy APIs */ 646#include "efl_ui_progressbar_legacy.eo.h"
647
648#define MY_CLASS_NAME_LEGACY "elm_progressbar"
649
650static void
651_efl_ui_progressbar_legacy_class_constructor(Efl_Class *klass)
652{
653 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
654}
655
656EOLIAN static Eo *
657_efl_ui_progressbar_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
658{
659 obj = efl_constructor(efl_super(obj, EFL_UI_PROGRESSBAR_LEGACY_CLASS));
660 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
661 return obj;
662}
655 663
656EAPI Evas_Object * 664EAPI Evas_Object *
657elm_progressbar_add(Evas_Object *parent) 665elm_progressbar_add(Evas_Object *parent)
658{ 666{
659 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 667 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
660 Eo *obj = elm_legacy_add(MY_CLASS, parent); 668 Eo *obj = elm_legacy_add(EFL_UI_PROGRESSBAR_LEGACY_CLASS, parent);
661 elm_progressbar_unit_format_set(obj, "%.0f %%"); 669 elm_progressbar_unit_format_set(obj, "%.0f %%");
662 670
663 return obj; 671 return obj;
@@ -825,3 +833,5 @@ elm_progressbar_value_get(const Evas_Object *obj)
825{ 833{
826 return efl_ui_range_value_get(obj); 834 return efl_ui_range_value_get(obj);
827} 835}
836
837#include "efl_ui_progressbar_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_progressbar.eo b/src/lib/elementary/efl_ui_progressbar.eo
index 3100b90..fd1e890 100644
--- a/src/lib/elementary/efl_ui_progressbar.eo
+++ b/src/lib/elementary/efl_ui_progressbar.eo
@@ -49,7 +49,6 @@ class Efl.Ui.Progressbar (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Format,
49 } 49 }
50 } 50 }
51 implements { 51 implements {
52 class.constructor;
53 Efl.Object.constructor; 52 Efl.Object.constructor;
54 Efl.Ui.Widget.theme_apply; 53 Efl.Ui.Widget.theme_apply;
55 Efl.Ui.Widget.widget_sub_object_add; 54 Efl.Ui.Widget.widget_sub_object_add;
diff --git a/src/lib/elementary/efl_ui_progressbar_legacy.eo b/src/lib/elementary/efl_ui_progressbar_legacy.eo
new file mode 100644
index 0000000..b6bf882
--- /dev/null
+++ b/src/lib/elementary/efl_ui_progressbar_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Progressbar_Legacy (Efl.Ui.Progressbar, Efl.Ui.Legacy)
2{
3 [[Elementary progressbar class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c
index 1486cf8..8a3c537 100644
--- a/src/lib/elementary/efl_ui_radio.c
+++ b/src/lib/elementary/efl_ui_radio.c
@@ -17,7 +17,6 @@
17#define MY_CLASS_PFX efl_ui_radio 17#define MY_CLASS_PFX efl_ui_radio
18 18
19#define MY_CLASS_NAME "Efl.Ui.Radio" 19#define MY_CLASS_NAME "Efl.Ui.Radio"
20#define MY_CLASS_NAME_LEGACY "elm_radio"
21 20
22static const Elm_Layout_Part_Alias_Description _text_aliases[] = 21static const Elm_Layout_Part_Alias_Description _text_aliases[] =
23{ 22{
@@ -209,7 +208,6 @@ _efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *pd)
209 if (!elm_widget_theme_klass_get(obj)) 208 if (!elm_widget_theme_klass_get(obj))
210 elm_widget_theme_klass_set(obj, "radio"); 209 elm_widget_theme_klass_set(obj, "radio");
211 obj = efl_constructor(efl_super(obj, MY_CLASS)); 210 obj = efl_constructor(efl_super(obj, MY_CLASS));
212 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
213 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 211 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
214 212
215 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); 213 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
@@ -337,12 +335,6 @@ _efl_ui_radio_efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Radio_Data *_pd E
337 return EINA_TRUE; 335 return EINA_TRUE;
338} 336}
339 337
340EOLIAN static void
341_efl_ui_radio_class_constructor(Efl_Class *klass)
342{
343 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
344}
345
346EOLIAN const Efl_Access_Action_Data * 338EOLIAN const Efl_Access_Action_Data *
347_efl_ui_radio_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *pd EINA_UNUSED) 339_efl_ui_radio_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *pd EINA_UNUSED)
348{ 340{
@@ -380,13 +372,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
380 372
381#include "efl_ui_radio.eo.c" 373#include "efl_ui_radio.eo.c"
382 374
375#include "efl_ui_radio_legacy.eo.h"
376
377#define MY_CLASS_NAME_LEGACY "elm_radio"
383/* Legacy APIs */ 378/* Legacy APIs */
384 379
380static void
381_efl_ui_radio_legacy_class_constructor(Efl_Class *klass)
382{
383 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
384}
385
386EOLIAN static Eo *
387_efl_ui_radio_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
388{
389 obj = efl_constructor(efl_super(obj, EFL_UI_RADIO_LEGACY_CLASS));
390 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
391 return obj;
392}
393
385EAPI Evas_Object * 394EAPI Evas_Object *
386elm_radio_add(Evas_Object *parent) 395elm_radio_add(Evas_Object *parent)
387{ 396{
388 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 397 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
389 return elm_legacy_add(MY_CLASS, parent); 398 return elm_legacy_add(EFL_UI_RADIO_LEGACY_CLASS, parent);
390} 399}
391 400
392EAPI void 401EAPI void
@@ -400,3 +409,5 @@ elm_radio_value_get(const Evas_Object *obj)
400{ 409{
401 return efl_ui_nstate_value_get(obj); 410 return efl_ui_nstate_value_get(obj);
402} 411}
412
413#include "efl_ui_radio_legacy.eo.c" \ No newline at end of file
diff --git a/src/lib/elementary/efl_ui_radio.eo b/src/lib/elementary/efl_ui_radio.eo
index 35602e8..f3ec5d6 100644
--- a/src/lib/elementary/efl_ui_radio.eo
+++ b/src/lib/elementary/efl_ui_radio.eo
@@ -59,7 +59,6 @@ class Efl.Ui.Radio (Efl.Ui.Check, Efl.Access.Widget.Action, Efl.Content)
59 } 59 }
60 } 60 }
61 implements { 61 implements {
62 class.constructor;
63 Efl.Object.constructor; 62 Efl.Object.constructor;
64 Efl.Object.destructor; 63 Efl.Object.destructor;
65 Efl.Ui.Widget.theme_apply; 64 Efl.Ui.Widget.theme_apply;
diff --git a/src/lib/elementary/efl_ui_radio_legacy.eo b/src/lib/elementary/efl_ui_radio_legacy.eo
new file mode 100644
index 0000000..da18c8a
--- /dev/null
+++ b/src/lib/elementary/efl_ui_radio_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Radio_Legacy (Efl.Ui.Radio, Efl.Ui.Legacy)
2{
3 [[Elementary radio class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c
index be7232b..ca38c46 100644
--- a/src/lib/elementary/efl_ui_slider.c
+++ b/src/lib/elementary/efl_ui_slider.c
@@ -18,7 +18,6 @@
18#define MY_CLASS_PFX efl_ui_slider 18#define MY_CLASS_PFX efl_ui_slider
19 19
20#define MY_CLASS_NAME "Efl.Ui.Slider" 20#define MY_CLASS_NAME "Efl.Ui.Slider"
21#define MY_CLASS_NAME_LEGACY "elm_slider"
22#define SLIDER_DELAY_CHANGED_INTERVAL 0.2 21#define SLIDER_DELAY_CHANGED_INTERVAL 0.2
23#define SLIDER_STEP 0.05 22#define SLIDER_STEP 0.05
24 23
@@ -1222,7 +1221,6 @@ EOLIAN static Eo *
1222_efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED) 1221_efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED)
1223{ 1222{
1224 obj = efl_constructor(efl_super(obj, MY_CLASS)); 1223 obj = efl_constructor(efl_super(obj, MY_CLASS));
1225 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
1226 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 1224 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
1227 efl_access_role_set(obj, EFL_ACCESS_ROLE_SLIDER); 1225 efl_access_role_set(obj, EFL_ACCESS_ROLE_SLIDER);
1228 1226
@@ -1313,12 +1311,6 @@ _efl_ui_slider_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Slider_Data *
1313 return int_ret; 1311 return int_ret;
1314} 1312}
1315 1313
1316EOLIAN static void
1317_efl_ui_slider_class_constructor(Efl_Class *klass)
1318{
1319 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
1320}
1321
1322// A11Y Accessibility 1314// A11Y Accessibility
1323 1315
1324EOLIAN static void 1316EOLIAN static void
@@ -1540,13 +1532,42 @@ _efl_ui_slider_part_indicator_visible_mode_get(Eo *obj, void *_pd EINA_UNUSED)
1540 1532
1541/* Efl.Part end */ 1533/* Efl.Part end */
1542 1534
1543/* Legacy APIs */ 1535/* Internal EO APIs and hidden overrides */
1536
1537ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_slider)
1538ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_slider)
1539
1540#define EFL_UI_SLIDER_EXTRA_OPS \
1541 ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_slider), \
1542 ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_slider), \
1543 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_slider), \
1544 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_slider)
1545
1546#include "efl_ui_slider.eo.c"
1547
1548#include "efl_ui_slider_legacy.eo.h"
1549
1550#define MY_CLASS_NAME_LEGACY "elm_slider"
1551
1552static void
1553_efl_ui_slider_legacy_class_constructor(Efl_Class *klass)
1554{
1555 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
1556}
1557
1558EOLIAN static Eo *
1559_efl_ui_slider_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
1560{
1561 obj = efl_constructor(efl_super(obj, EFL_UI_SLIDER_LEGACY_CLASS));
1562 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
1563 return obj;
1564}
1544 1565
1545EAPI Evas_Object * 1566EAPI Evas_Object *
1546elm_slider_add(Evas_Object *parent) 1567elm_slider_add(Evas_Object *parent)
1547{ 1568{
1548 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 1569 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
1549 return elm_legacy_add(MY_CLASS, parent); 1570 return elm_legacy_add(EFL_UI_SLIDER_LEGACY_CLASS, parent);
1550} 1571}
1551 1572
1552EAPI void 1573EAPI void
@@ -1819,15 +1840,4 @@ elm_slider_indicator_visible_mode_get(const Evas_Object *obj)
1819 return efl_ui_slider_part_indicator_visible_mode_get(efl_part(obj, "indicator")); 1840 return efl_ui_slider_part_indicator_visible_mode_get(efl_part(obj, "indicator"));
1820} 1841}
1821 1842
1822/* Internal EO APIs and hidden overrides */ 1843#include "efl_ui_slider_legacy.eo.c"
1823
1824ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_slider)
1825ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_slider)
1826
1827#define EFL_UI_SLIDER_EXTRA_OPS \
1828 ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_slider), \
1829 ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_slider), \
1830 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_slider), \
1831 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_slider)
1832
1833#include "efl_ui_slider.eo.c"
diff --git a/src/lib/elementary/efl_ui_slider.eo b/src/lib/elementary/efl_ui_slider.eo
index 5009284..002204d 100644
--- a/src/lib/elementary/efl_ui_slider.eo
+++ b/src/lib/elementary/efl_ui_slider.eo
@@ -34,7 +34,6 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
34 [[A floating indicator above the slider.]] 34 [[A floating indicator above the slider.]]
35 } 35 }
36 implements { 36 implements {
37 class.constructor;
38 Efl.Object.constructor; 37 Efl.Object.constructor;
39 Efl.Canvas.Group.group_calculate; 38 Efl.Canvas.Group.group_calculate;
40 Efl.Ui.Widget.theme_apply; 39 Efl.Ui.Widget.theme_apply;
diff --git a/src/lib/elementary/efl_ui_slider_legacy.eo b/src/lib/elementary/efl_ui_slider_legacy.eo
new file mode 100644
index 0000000..c6653c0
--- /dev/null
+++ b/src/lib/elementary/efl_ui_slider_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Slider_Legacy (Efl.Ui.Slider, Efl.Ui.Legacy)
2{
3 [[Elementary slider class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_video.c b/src/lib/elementary/efl_ui_video.c
index 9d19b8a..96a68d7 100644
--- a/src/lib/elementary/efl_ui_video.c
+++ b/src/lib/elementary/efl_ui_video.c
@@ -18,7 +18,6 @@
18 18
19#define MY_CLASS EFL_UI_VIDEO_CLASS 19#define MY_CLASS EFL_UI_VIDEO_CLASS
20#define MY_CLASS_NAME "Efl.Ui.Video" 20#define MY_CLASS_NAME "Efl.Ui.Video"
21#define MY_CLASS_NAME_LEGACY "elm_video"
22 21
23static const Evas_Smart_Cb_Description _smart_callbacks[] = { 22static const Evas_Smart_Cb_Description _smart_callbacks[] = {
24 {SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */ 23 {SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */
@@ -258,18 +257,10 @@ _efl_ui_video_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Video_Data *sd)
258 efl_canvas_group_del(efl_super(obj, MY_CLASS)); 257 efl_canvas_group_del(efl_super(obj, MY_CLASS));
259} 258}
260 259
261EAPI Evas_Object *
262elm_video_add(Evas_Object *parent)
263{
264 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
265 return elm_legacy_add(MY_CLASS, parent);
266}
267
268EOLIAN static Eo * 260EOLIAN static Eo *
269_efl_ui_video_efl_object_constructor(Eo *obj, Efl_Ui_Video_Data *_pd EINA_UNUSED) 261_efl_ui_video_efl_object_constructor(Eo *obj, Efl_Ui_Video_Data *_pd EINA_UNUSED)
270{ 262{
271 obj = efl_constructor(efl_super(obj, MY_CLASS)); 263 obj = efl_constructor(efl_super(obj, MY_CLASS));
272 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
273 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 264 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
274 efl_access_role_set(obj, EFL_ACCESS_ROLE_ANIMATION); 265 efl_access_role_set(obj, EFL_ACCESS_ROLE_ANIMATION);
275 266
@@ -373,12 +364,6 @@ _efl_ui_video_remember_position_get(Eo *obj EINA_UNUSED, Efl_Ui_Video_Data *sd)
373 return sd->remember; 364 return sd->remember;
374} 365}
375 366
376EOLIAN static void
377_efl_ui_video_class_constructor(Efl_Class *klass)
378{
379 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
380}
381
382EOLIAN const Efl_Access_Action_Data * 367EOLIAN const Efl_Access_Action_Data *
383_efl_ui_video_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_Ui_Video_Data *pd EINA_UNUSED) 368_efl_ui_video_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_Ui_Video_Data *pd EINA_UNUSED)
384{ 369{
@@ -390,6 +375,42 @@ _efl_ui_video_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_
390 }; 375 };
391 return &atspi_actions[0]; 376 return &atspi_actions[0];
392} 377}
378/* Internal EO APIs and hidden overrides */
379
380ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_video, Efl_Ui_Video_Data)
381
382/* Internal EO APIs and hidden overrides */
383
384#define EFL_UI_VIDEO_EXTRA_OPS \
385 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_video), \
386 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_video)
387
388#include "efl_ui_video.eo.c"
389
390#include "efl_ui_video_legacy.eo.h"
391
392#define MY_CLASS_NAME_LEGACY "elm_video"
393
394static void
395_efl_ui_video_legacy_class_constructor(Efl_Class *klass)
396{
397 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
398}
399
400EOLIAN static Eo *
401_efl_ui_video_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
402{
403 obj = efl_constructor(efl_super(obj, EFL_UI_VIDEO_LEGACY_CLASS));
404 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
405 return obj;
406}
407
408EAPI Evas_Object *
409elm_video_add(Evas_Object *parent)
410{
411 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
412 return elm_legacy_add(EFL_UI_VIDEO_LEGACY_CLASS, parent);
413}
393 414
394EAPI Eina_Bool 415EAPI Eina_Bool
395elm_video_file_set(Eo *obj, const char *filename) 416elm_video_file_set(Eo *obj, const char *filename)
@@ -475,14 +496,4 @@ elm_video_pause(Evas_Object *obj)
475 efl_player_play_set(obj, EINA_FALSE); 496 efl_player_play_set(obj, EINA_FALSE);
476} 497}
477 498
478/* Internal EO APIs and hidden overrides */ 499#include "efl_ui_video_legacy.eo.c"
479
480ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_video, Efl_Ui_Video_Data)
481
482/* Internal EO APIs and hidden overrides */
483
484#define EFL_UI_VIDEO_EXTRA_OPS \
485 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_video), \
486 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_video)
487
488#include "efl_ui_video.eo.c"
diff --git a/src/lib/elementary/efl_ui_video.eo b/src/lib/elementary/efl_ui_video.eo
index 5971f26..32aa8ef 100644
--- a/src/lib/elementary/efl_ui_video.eo
+++ b/src/lib/elementary/efl_ui_video.eo
@@ -42,7 +42,6 @@ class Efl.Ui.Video (Efl.Ui.Layout, Efl.File,
42 } 42 }
43 } 43 }
44 implements { 44 implements {
45 class.constructor;
46 Efl.Object.constructor; 45 Efl.Object.constructor;
47 Efl.File.file { get; set; } 46 Efl.File.file { get; set; }
48 Efl.Ui.Widget.widget_event; 47 Efl.Ui.Widget.widget_event;
diff --git a/src/lib/elementary/efl_ui_video_legacy.eo b/src/lib/elementary/efl_ui_video_legacy.eo
new file mode 100644
index 0000000..9edfc48
--- /dev/null
+++ b/src/lib/elementary/efl_ui_video_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Video_Legacy (Efl.Ui.Video, Efl.Ui.Legacy)
2{
3 [[Efl UI video class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c
index 2816397d..c346087 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -55,9 +55,6 @@ typedef struct _Elm_Event_Cb_Data Elm_Event_Cb_Data;
55typedef struct _Elm_Label_Data Elm_Label_Data; 55typedef struct _Elm_Label_Data Elm_Label_Data;
56typedef struct _Elm_Translate_String_Data Elm_Translate_String_Data; 56typedef struct _Elm_Translate_String_Data Elm_Translate_String_Data;
57 57
58/* FIXME: EAPI because of elm_code_widget test case */
59EAPI Eina_Bool _elm_legacy_add = EINA_FALSE;
60
61struct _Elm_Event_Cb_Data 58struct _Elm_Event_Cb_Data
62{ 59{
63 Elm_Event_Cb func; 60 Elm_Event_Cb func;
@@ -5162,11 +5159,6 @@ _efl_ui_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UN
5162 Eo *parent = NULL; 5159 Eo *parent = NULL;
5163 5160
5164 sd->on_create = EINA_TRUE; 5161 sd->on_create = EINA_TRUE;
5165 if (_elm_legacy_add)
5166 {
5167 sd->legacy = _elm_legacy_add;
5168 _elm_legacy_add = EINA_FALSE;
5169 }
5170 efl_canvas_group_clipped_set(obj, EINA_FALSE); 5162 efl_canvas_group_clipped_set(obj, EINA_FALSE);
5171 obj = efl_constructor(efl_super(obj, MY_CLASS)); 5163 obj = efl_constructor(efl_super(obj, MY_CLASS));
5172 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); 5164 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
@@ -5217,13 +5209,6 @@ _efl_ui_widget_efl_object_destructor(Eo *obj, Elm_Widget_Smart_Data *sd)
5217} 5209}
5218 5210
5219/* internal eo */ 5211/* internal eo */
5220static void
5221_efl_ui_widget_legacy_ctor(Eo *obj, Elm_Widget_Smart_Data *sd)
5222{
5223 efl_canvas_object_legacy_ctor(efl_super(obj, MY_CLASS));
5224 sd->legacy = EINA_TRUE;
5225 _elm_legacy_add = EINA_FALSE;
5226}
5227 5212
5228EOLIAN static void 5213EOLIAN static void
5229_efl_ui_widget_efl_object_debug_name_override(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED, Eina_Strbuf *sb) 5214_efl_ui_widget_efl_object_debug_name_override(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED, Eina_Strbuf *sb)
@@ -6009,7 +5994,6 @@ ELM_PART_TEXT_DEFAULT_GET(efl_ui_widget, NULL)
6009 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_widget), \ 5994 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_widget), \
6010 ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_widget), \ 5995 ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_widget), \
6011 ELM_PART_TEXT_DEFAULT_OPS(efl_ui_widget), \ 5996 ELM_PART_TEXT_DEFAULT_OPS(efl_ui_widget), \
6012 EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_widget_legacy_ctor), \
6013 EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_widget_efl_object_dbg_info_get) 5997 EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_widget_efl_object_dbg_info_get)
6014 5998
6015#include "elm_widget_item.eo.c" 5999#include "elm_widget_item.eo.c"
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 38be004..081ce2d 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -5103,7 +5103,6 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
5103 5103
5104 /* FIXME: Major hack: calling the constructor in the middle of finalize. */ 5104 /* FIXME: Major hack: calling the constructor in the middle of finalize. */
5105 efl_constructor(efl_super(obj, MY_CLASS)); 5105 efl_constructor(efl_super(obj, MY_CLASS));
5106 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
5107 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); 5106 evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
5108 5107
5109 evas_object_focus_set(obj, EINA_TRUE); 5108 evas_object_focus_set(obj, EINA_TRUE);
@@ -6958,10 +6957,8 @@ _on_atspi_bus_connected(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUS
6958} 6957}
6959 6958
6960EOLIAN static void 6959EOLIAN static void
6961_efl_ui_win_class_constructor(Efl_Class *klass) 6960_efl_ui_win_class_constructor(Efl_Class *klass EINA_UNUSED)
6962{ 6961{
6963 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
6964
6965 if (_elm_config->atspi_mode) 6962 if (_elm_config->atspi_mode)
6966 { 6963 {
6967 Eo *bridge = _elm_atspi_bridge_get(); 6964 Eo *bridge = _elm_atspi_bridge_get();
@@ -8326,62 +8323,6 @@ _fake_canvas_set(Evas_Object *obj, Ecore_Evas *oee)
8326 _elm_win_need_frame_adjust(sd, ecore_evas_engine_name_get(oee)); 8323 _elm_win_need_frame_adjust(sd, ecore_evas_engine_name_get(oee));
8327} 8324}
8328 8325
8329EAPI Evas_Object *
8330elm_win_add(Evas_Object *parent, const char *name, Efl_Ui_Win_Type type)
8331{
8332 const Efl_Class *klass = MY_CLASS;
8333
8334 switch ((int) type)
8335 {
8336 case ELM_WIN_INLINED_IMAGE: klass = EFL_UI_WIN_INLINED_CLASS; break;
8337 case ELM_WIN_SOCKET_IMAGE: klass = EFL_UI_WIN_SOCKET_CLASS; break;
8338 default: break;
8339 }
8340
8341 return elm_legacy_add(klass, parent,
8342 efl_ui_win_name_set(efl_added, name),
8343 efl_ui_win_type_set(efl_added, type));
8344}
8345
8346EAPI Evas_Object *
8347elm_win_fake_add(Ecore_Evas *ee)
8348{
8349 return elm_legacy_add(MY_CLASS, NULL,
8350 _fake_canvas_set(efl_added, ee),
8351 efl_ui_win_name_set(efl_added, NULL),
8352 efl_ui_win_type_set(efl_added, ELM_WIN_FAKE));
8353}
8354
8355EAPI Evas_Object *
8356elm_win_util_standard_add(const char *name, const char *title)
8357{
8358 Evas_Object *win;
8359
8360 win = elm_legacy_add(EFL_UI_WIN_CLASS, NULL,
8361 efl_text_set(efl_added, title),
8362 efl_ui_win_name_set(efl_added, name),
8363 efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
8364 if (!win) return NULL;
8365
8366 _elm_win_standard_init(win);
8367 return win;
8368}
8369
8370EAPI Evas_Object *
8371elm_win_util_dialog_add(Evas_Object *parent, const char *name, const char *title)
8372{
8373 Evas_Object *win;
8374
8375 win = elm_legacy_add(EFL_UI_WIN_CLASS, parent,
8376 efl_text_set(efl_added, title),
8377 efl_ui_win_name_set(efl_added, name),
8378 efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC));
8379 if (!win) return NULL;
8380
8381 _elm_win_standard_init(win);
8382 return win;
8383}
8384
8385/** 8326/**
8386 * @internal 8327 * @internal
8387 * 8328 *
@@ -8676,3 +8617,78 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_win, Efl_Ui_Win_Data)
8676 EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_win_efl_canvas_object_legacy_ctor) 8617 EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_win_efl_canvas_object_legacy_ctor)
8677 8618
8678#include "efl_ui_win.eo.c" 8619#include "efl_ui_win.eo.c"
8620
8621#include "efl_ui_win_legacy.eo.h"
8622
8623static void
8624_efl_ui_win_legacy_class_constructor(Efl_Class *klass)
8625{
8626 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
8627}
8628
8629EOLIAN static Eo *
8630_efl_ui_win_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
8631{
8632 obj = efl_constructor(efl_super(obj, EFL_UI_WIN_LEGACY_CLASS));
8633 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
8634 return obj;
8635}
8636
8637EAPI Evas_Object *
8638elm_win_add(Evas_Object *parent, const char *name, Efl_Ui_Win_Type type)
8639{
8640 const Efl_Class *klass = EFL_UI_WIN_LEGACY_CLASS;
8641
8642 switch ((int) type)
8643 {
8644 case ELM_WIN_INLINED_IMAGE: klass = EFL_UI_WIN_INLINED_CLASS; break;
8645 case ELM_WIN_SOCKET_IMAGE: klass = EFL_UI_WIN_SOCKET_CLASS; break;
8646 default: break;
8647 }
8648
8649 return elm_legacy_add(klass, parent,
8650 efl_ui_win_name_set(efl_added, name),
8651 efl_ui_win_type_set(efl_added, type));
8652}
8653
8654
8655EAPI Evas_Object *
8656elm_win_fake_add(Ecore_Evas *ee)
8657{
8658 return elm_legacy_add(EFL_UI_WIN_LEGACY_CLASS, NULL,
8659 _fake_canvas_set(efl_added, ee),
8660 efl_ui_win_name_set(efl_added, NULL),
8661 efl_ui_win_type_set(efl_added, ELM_WIN_FAKE));
8662}
8663
8664EAPI Evas_Object *
8665elm_win_util_standard_add(const char *name, const char *title)
8666{
8667 Evas_Object *win;
8668
8669 win = elm_legacy_add(EFL_UI_WIN_LEGACY_CLASS, NULL,
8670 efl_text_set(efl_added, title),
8671 efl_ui_win_name_set(efl_added, name),
8672 efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
8673 if (!win) return NULL;
8674
8675 _elm_win_standard_init(win);
8676 return win;
8677}
8678
8679EAPI Evas_Object *
8680elm_win_util_dialog_add(Evas_Object *parent, const char *name, const char *title)
8681{
8682 Evas_Object *win;
8683
8684 win = elm_legacy_add(EFL_UI_WIN_LEGACY_CLASS, parent,
8685 efl_text_set(efl_added, title),
8686 efl_ui_win_name_set(efl_added, name),
8687 efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC));
8688 if (!win) return NULL;
8689
8690 _elm_win_standard_init(win);
8691 return win;
8692}
8693
8694#include "efl_ui_win_legacy.eo.c"
diff --git a/src/lib/elementary/efl_ui_win_legacy.eo b/src/lib/elementary/efl_ui_win_legacy.eo
new file mode 100644
index 0000000..fe13a04
--- /dev/null
+++ b/src/lib/elementary/efl_ui_win_legacy.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Win_Legacy (Efl.Ui.Win, Efl.Ui.Legacy)
2{
3 [[Efl UI window class]]
4 data: null;
5 implements {
6 class.constructor;
7 Efl.Object.constructor;
8 }
9}
diff --git a/src/lib/elementary/elm_actionslider.eo b/src/lib/elementary/elm_actionslider.eo
index 30f78db..351cb28 100644
--- a/src/lib/elementary/elm_actionslider.eo
+++ b/src/lib/elementary/elm_actionslider.eo
@@ -10,7 +10,7 @@ enum Elm.Actionslider.Pos
10 all = (1 << 3) - 1 [[All positions for left/center/right.]] 10 all = (1 << 3) - 1 [[All positions for left/center/right.]]
11} 11}
12 12
13class Elm.Actionslider (Efl.Ui.Layout, Efl.Ui.Selectable) 13class Elm.Actionslider (Efl.Ui.Layout, Efl.Ui.Selectable, Efl.Ui.Legacy)
14{ 14{
15 [[An actionslider is a switcher for 2 or 3 labels 15 [[An actionslider is a switcher for 2 or 3 labels
16 16
diff --git a/src/lib/elementary/elm_box.eo b/src/lib/elementary/elm_box.eo
index 9249599..c728048 100644
--- a/src/lib/elementary/elm_box.eo
+++ b/src/lib/elementary/elm_box.eo
@@ -1,6 +1,6 @@
1import evas_box; 1import evas_box;
2 2
3class Elm.Box (Efl.Ui.Widget, Efl.Ui.Focus.Composition) 3class Elm.Box (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary box class]] 5 [[Elementary box class]]
6 legacy_prefix: elm_box; 6 legacy_prefix: elm_box;
diff --git a/src/lib/elementary/elm_bubble.eo b/src/lib/elementary/elm_bubble.eo
index f696846..2b326ab 100644
--- a/src/lib/elementary/elm_bubble.eo
+++ b/src/lib/elementary/elm_bubble.eo
@@ -12,7 +12,7 @@ enum Elm.Bubble.Pos
12 bottom_right [[The arrow of the bubble points to the bottom right corner.]] 12 bottom_right [[The arrow of the bubble points to the bottom right corner.]]
13} 13}
14 14
15class Elm.Bubble (Efl.Ui.Layout, Efl.Ui.Clickable) 15class Elm.Bubble (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Legacy)
16{ 16{
17 [[Speech bubble widget used in messaging applications]] 17 [[Speech bubble widget used in messaging applications]]
18 18
diff --git a/src/lib/elementary/elm_calendar.eo b/src/lib/elementary/elm_calendar.eo
index 80c7748..47cc947 100644
--- a/src/lib/elementary/elm_calendar.eo
+++ b/src/lib/elementary/elm_calendar.eo
@@ -72,7 +72,8 @@ struct Elm.Calendar.Mark; [[Item handle for a calendar mark.
72 with @Elm.Calendar.mark_del. 72 with @Elm.Calendar.mark_del.
73 ]] 73 ]]
74 74
75class Elm.Calendar (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Access.Widget.Action) 75class Elm.Calendar (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Access.Widget.Action,
76 Efl.Ui.Legacy)
76{ 77{
77 [[Calendar widget 78 [[Calendar widget
78 79
diff --git a/src/lib/elementary/elm_clock.eo b/src/lib/elementary/elm_clock.eo
index 16e4868..3bd3f0f 100644
--- a/src/lib/elementary/elm_clock.eo
+++ b/src/lib/elementary/elm_clock.eo
@@ -18,7 +18,7 @@ enum Elm.Clock.Edit_Mode
18 all = (1 << 6) - 1 [[All digits should be editable.]] 18 all = (1 << 6) - 1 [[All digits should be editable.]]
19} 19}
20 20
21class Elm.Clock (Efl.Ui.Layout, Efl.Ui.Focus.Composition) 21class Elm.Clock (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
22{ 22{
23 [[Digital clock widget 23 [[Digital clock widget
24 24
diff --git a/src/lib/elementary/elm_code.h b/src/lib/elementary/elm_code.h
index 9ffd0e9..3a0887b 100644
--- a/src/lib/elementary/elm_code.h
+++ b/src/lib/elementary/elm_code.h
@@ -11,6 +11,7 @@
11#include "elm_code_parse.h" 11#include "elm_code_parse.h"
12#include "elm_code_syntax.h" 12#include "elm_code_syntax.h"
13#include "elm_code_widget.eo.h" 13#include "elm_code_widget.eo.h"
14#include "elm_code_widget_legacy.eo.h"
14#include "elm_code_widget_legacy.h" 15#include "elm_code_widget_legacy.h"
15#include "elm_code_widget_selection.h" 16#include "elm_code_widget_selection.h"
16#include "elm_code_diff_widget.h" 17#include "elm_code_diff_widget.h"
diff --git a/src/lib/elementary/elm_code_diff_widget.c b/src/lib/elementary/elm_code_diff_widget.c
index eec32ee..d8ec149 100644
--- a/src/lib/elementary/elm_code_diff_widget.c
+++ b/src/lib/elementary/elm_code_diff_widget.c
@@ -95,7 +95,7 @@ elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code)
95 // left side of diff 95 // left side of diff
96 wcode1 = elm_code_create(); 96 wcode1 = elm_code_create();
97 elm_code_parser_standard_add(wcode1, ELM_CODE_PARSER_STANDARD_DIFF); 97 elm_code_parser_standard_add(wcode1, ELM_CODE_PARSER_STANDARD_DIFF);
98 widget_left = efl_add(ELM_CODE_WIDGET_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode1)); 98 widget_left = elm_legacy_add(ELM_CODE_WIDGET_LEGACY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode1));
99 99
100 evas_object_size_hint_weight_set(widget_left, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 100 evas_object_size_hint_weight_set(widget_left, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
101 evas_object_size_hint_align_set(widget_left, EVAS_HINT_FILL, EVAS_HINT_FILL); 101 evas_object_size_hint_align_set(widget_left, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -106,7 +106,7 @@ elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code)
106 // right side of diff 106 // right side of diff
107 wcode2 = elm_code_create(); 107 wcode2 = elm_code_create();
108 elm_code_parser_standard_add(wcode2, ELM_CODE_PARSER_STANDARD_DIFF); 108 elm_code_parser_standard_add(wcode2, ELM_CODE_PARSER_STANDARD_DIFF);
109 widget_right = efl_add(ELM_CODE_WIDGET_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode2)); 109 widget_right = elm_legacy_add(ELM_CODE_WIDGET_LEGACY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode2));
110 110
111 evas_object_size_hint_weight_set(widget_right, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 111 evas_object_size_hint_weight_set(widget_right, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
112 evas_object_size_hint_align_set(widget_right, EVAS_HINT_FILL, EVAS_HINT_FILL); 112 evas_object_size_hint_align_set(widget_right, EVAS_HINT_FILL, EVAS_HINT_FILL);
diff --git a/src/lib/elementary/elm_code_widget.c b/src/lib/elementary/elm_code_widget.c
index 5d1fc78..21abee7 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -59,12 +59,19 @@ static Eina_Unicode status_icons[] = {
59static void _elm_code_widget_resize(Elm_Code_Widget *widget, Elm_Code_Line *newline); 59static void _elm_code_widget_resize(Elm_Code_Widget *widget, Elm_Code_Line *newline);
60 60
61#ifndef ELM_CODE_TEST 61#ifndef ELM_CODE_TEST
62
63#include "elm_code_widget_legacy.eo.h"
64
62EAPI Evas_Object * 65EAPI Evas_Object *
63elm_code_widget_add(Evas_Object *parent, Elm_Code *code) 66elm_code_widget_add(Evas_Object *parent, Elm_Code *code)
64{ 67{
65 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 68 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
66 return elm_legacy_add(MY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, code)); 69 return elm_legacy_add(ELM_CODE_WIDGET_LEGACY_CLASS, parent,
70 elm_obj_code_widget_code_set(efl_added, code));
67} 71}
72
73#include "elm_code_widget_legacy.eo.c"
74
68#endif // ELM_CODE_TEST 75#endif // ELM_CODE_TEST
69 76
70EOLIAN static Eo * 77EOLIAN static Eo *
diff --git a/src/lib/elementary/elm_code_widget_legacy.eo b/src/lib/elementary/elm_code_widget_legacy.eo
new file mode 100644
index 0000000..1c228b3
--- /dev/null
+++ b/src/lib/elementary/elm_code_widget_legacy.eo
@@ -0,0 +1,5 @@
1class Elm.Code_Widget_Legacy (Elm.Code_Widget, Efl.Ui.Legacy)
2{
3 [[Elementary code widget]]
4 data: null;
5}
diff --git a/src/lib/elementary/elm_colorselector.eo b/src/lib/elementary/elm_colorselector.eo
index 2449b8b..6a18f28 100644
--- a/src/lib/elementary/elm_colorselector.eo
+++ b/src/lib/elementary/elm_colorselector.eo
@@ -13,7 +13,7 @@ enum Elm.Colorselector.Mode
13} 13}
14 14
15class Elm.Colorselector (Efl.Ui.Layout, Efl.Ui.Focus.Composition, 15class Elm.Colorselector (Efl.Ui.Layout, Efl.Ui.Focus.Composition,
16 Efl.Access.Widget.Action, Efl.Ui.Clickable) 16 Efl.Access.Widget.Action, Efl.Ui.Clickable, Efl.Ui.Legacy)
17{ 17{
18 [[Elementary colorselector class]] 18 [[Elementary colorselector class]]
19 legacy_prefix: elm_colorselector; 19 legacy_prefix: elm_colorselector;
diff --git a/src/lib/elementary/elm_combobox.eo b/src/lib/elementary/elm_combobox.eo
index d0c914b..d8fa736 100644
--- a/src/lib/elementary/elm_combobox.eo
+++ b/src/lib/elementary/elm_combobox.eo
@@ -1,6 +1,6 @@
1class Elm.Combobox (Efl.Ui.Button, Efl.Ui.Selectable, 1class Elm.Combobox (Efl.Ui.Button, Efl.Ui.Selectable,
2 Efl.Access.Widget.Action, 2 Efl.Access.Widget.Action,
3 Elm.Entry, Elm.Genlist, Elm.Hover) 3 Elm.Entry, Elm.Genlist, Elm.Hover, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary combobox class]] 5 [[Elementary combobox class]]
6 legacy_prefix: elm_combobox; 6 legacy_prefix: elm_combobox;
diff --git a/src/lib/elementary/elm_conformant.eo b/src/lib/elementary/elm_conformant.eo
index 66a3632..f63dbbd 100644
--- a/src/lib/elementary/elm_conformant.eo
+++ b/src/lib/elementary/elm_conformant.eo
@@ -1,4 +1,4 @@
1class Elm.Conformant (Efl.Ui.Layout) 1class Elm.Conformant (Efl.Ui.Layout, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary conformant class]] 3 [[Elementary conformant class]]
4 legacy_prefix: elm_conformant; 4 legacy_prefix: elm_conformant;
diff --git a/src/lib/elementary/elm_ctxpopup.eo b/src/lib/elementary/elm_ctxpopup.eo
index f759dcb..1421d03 100644
--- a/src/lib/elementary/elm_ctxpopup.eo
+++ b/src/lib/elementary/elm_ctxpopup.eo
@@ -9,7 +9,7 @@ enum Elm.Ctxpopup.Direction
9} 9}
10 10
11class Elm.Ctxpopup (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Access.Widget.Action, 11class Elm.Ctxpopup (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Access.Widget.Action,
12 Efl.Ui.Menu) 12 Efl.Ui.Menu, Efl.Ui.Legacy)
13{ 13{
14 [[Elementary context popup class]] 14 [[Elementary context popup class]]
15 legacy_prefix: elm_ctxpopup; 15 legacy_prefix: elm_ctxpopup;
diff --git a/src/lib/elementary/elm_ctxpopup_item.eo b/src/lib/elementary/elm_ctxpopup_item.eo
index 8c87b23..db6bc1f 100644
--- a/src/lib/elementary/elm_ctxpopup_item.eo
+++ b/src/lib/elementary/elm_ctxpopup_item.eo
@@ -1,4 +1,5 @@
1class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Access.Widget.Action) 1class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Access.Widget.Action,
2 Efl.Ui.Legacy)
2{ 3{
3 [[Elementary context popup item class]] 4 [[Elementary context popup item class]]
4 legacy_prefix: elm_ctxpopup_item; 5 legacy_prefix: elm_ctxpopup_item;
diff --git a/src/lib/elementary/elm_datetime.c b/src/lib/elementary/elm_datetime.c
index fc68f87..b857971 100644
--- a/src/lib/elementary/elm_datetime.c
+++ b/src/lib/elementary/elm_datetime.c
@@ -17,11 +17,29 @@
17 17
18#include "elm_datetime.h" 18#include "elm_datetime.h"
19 19
20#include "efl_ui_clock_legacy.eo.h"
21
22#define MY_CLASS_NAME_LEGACY "elm_datetime"
23
24static void
25_efl_ui_clock_legacy_class_constructor(Efl_Class *klass)
26{
27 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
28}
29
30EOLIAN static Eo *
31_efl_ui_clock_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
32{
33 obj = efl_constructor(efl_super(obj, EFL_UI_CLOCK_LEGACY_CLASS));
34 efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
35 return obj;
36}
37
20EAPI Evas_Object * 38EAPI Evas_Object *
21elm_datetime_add(Evas_Object *parent) 39elm_datetime_add(Evas_Object *parent)
22{ 40{
23 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); 41 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
24 return elm_legacy_add(EFL_UI_CLOCK_CLASS, parent); 42 return elm_legacy_add(EFL_UI_CLOCK_LEGACY_CLASS, parent);
25} 43}
26 44
27EAPI void 45EAPI void
@@ -131,3 +149,5 @@ elm_datetime_value_max_get(const Evas_Object *obj, Efl_Time *maxtime)
131 if (maxtime) *maxtime = efl_ui_clock_time_max_get(obj); 149 if (maxtime) *maxtime = efl_ui_clock_time_max_get(obj);
132 return EINA_TRUE; 150 return EINA_TRUE;
133} 151}
152
153#include "efl_ui_clock_legacy.eo.c"
diff --git a/src/lib/elementary/elm_dayselector.eo b/src/lib/elementary/elm_dayselector.eo
index 39427aa..d95ca9f 100644
--- a/src/lib/elementary/elm_dayselector.eo
+++ b/src/lib/elementary/elm_dayselector.eo
@@ -17,7 +17,7 @@ enum Elm.Dayselector.Day
17 max [[Sentinel value to indicate last enum field during iteration]] 17 max [[Sentinel value to indicate last enum field during iteration]]
18} 18}
19 19
20class Elm.Dayselector (Efl.Ui.Layout) 20class Elm.Dayselector (Efl.Ui.Layout, Efl.Ui.Legacy)
21{ 21{
22 [[Elementary dayselector class]] 22 [[Elementary dayselector class]]
23 legacy_prefix: elm_dayselector; 23 legacy_prefix: elm_dayselector;
diff --git a/src/lib/elementary/elm_diskselector.eo b/src/lib/elementary/elm_diskselector.eo
index 29c5787..77282aa 100644
--- a/src/lib/elementary/elm_diskselector.eo
+++ b/src/lib/elementary/elm_diskselector.eo
@@ -1,7 +1,7 @@
1class Elm.Diskselector (Efl.Ui.Widget, Elm.Interface_Scrollable, 1class Elm.Diskselector (Efl.Ui.Widget, Elm.Interface_Scrollable,
2 Efl.Access.Widget.Action, 2 Efl.Access.Widget.Action,
3 Efl.Ui.Clickable, Efl.Ui.Scrollable, 3 Efl.Ui.Clickable, Efl.Ui.Scrollable,
4 Efl.Ui.Selectable) 4 Efl.Ui.Selectable, Efl.Ui.Legacy)
5{ 5{
6 [[Elementary diskselector class]] 6 [[Elementary diskselector class]]
7 legacy_prefix: elm_diskselector; 7 legacy_prefix: elm_diskselector;
diff --git a/src/lib/elementary/elm_diskselector_item.eo b/src/lib/elementary/elm_diskselector_item.eo
index 9a281cc..740364f 100644
--- a/src/lib/elementary/elm_diskselector_item.eo
+++ b/src/lib/elementary/elm_diskselector_item.eo
@@ -1,4 +1,4 @@
1class Elm.Diskselector.Item(Elm.Widget.Item) 1class Elm.Diskselector.Item(Elm.Widget.Item, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary diskselector item class]] 3 [[Elementary diskselector item class]]
4 legacy_prefix: elm_diskselector_item; 4 legacy_prefix: elm_diskselector_item;
diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo
index b90a961..88f71bf 100644
--- a/src/lib/elementary/elm_entry.eo
+++ b/src/lib/elementary/elm_entry.eo
@@ -5,7 +5,8 @@ type Elm_Entry_Filter_Cb: __undefined_type; [[Elementary entry filter callback t
5 5
6class Elm.Entry (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, 6class Elm.Entry (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
7 Efl.Access.Text, Efl.Access.Editable.Text, Efl.File, 7 Efl.Access.Text, Efl.Access.Editable.Text, Efl.File,
8 Efl.Ui.Selectable, Efl.Ui.Scrollable, Efl.Access.Widget.Action) 8 Efl.Ui.Selectable, Efl.Ui.Scrollable, Efl.Access.Widget.Action,
9 Efl.Ui.Legacy)
9{ 10{
10 [[Elementary entry class]] 11 [[Elementary entry class]]
11 legacy_prefix: elm_entry; 12 legacy_prefix: elm_entry;
diff --git a/src/lib/elementary/elm_fileselector.eo b/src/lib/elementary/elm_fileselector.eo
index c1a4e43..e7ff91f 100644
--- a/src/lib/elementary/elm_fileselector.eo
+++ b/src/lib/elementary/elm_fileselector.eo
@@ -1,6 +1,6 @@
1class Elm.Fileselector (Efl.Ui.Layout, Elm.Interface.Fileselector, 1class Elm.Fileselector (Efl.Ui.Layout, Elm.Interface.Fileselector,
2 Efl.Access.Widget.Action, 2 Efl.Access.Widget.Action,
3 Efl.Ui.Clickable, Efl.Ui.Selectable) 3 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary fileselector class]] 5 [[Elementary fileselector class]]
6 legacy_prefix: elm_fileselector; 6 legacy_prefix: elm_fileselector;
diff --git a/src/lib/elementary/elm_fileselector_button.eo b/src/lib/elementary/elm_fileselector_button.eo
index 728a086..9ed6c55 100644
--- a/src/lib/elementary/elm_fileselector_button.eo
+++ b/src/lib/elementary/elm_fileselector_button.eo
@@ -1,4 +1,5 @@
1class Elm.Fileselector_Button (Efl.Ui.Button, Elm.Interface.Fileselector) 1class Elm.Fileselector_Button (Efl.Ui.Button, Elm.Interface.Fileselector,
2 Efl.Ui.Legacy)
2{ 3{
3 [[Elementary fileselector button class]] 4 [[Elementary fileselector button class]]
4 event_prefix: elm_fileselector_button; 5 event_prefix: elm_fileselector_button;
diff --git a/src/lib/elementary/elm_fileselector_entry.eo b/src/lib/elementary/elm_fileselector_entry.eo
index 1b267b8..2959619 100644
--- a/src/lib/elementary/elm_fileselector_entry.eo
+++ b/src/lib/elementary/elm_fileselector_entry.eo
@@ -1,5 +1,5 @@
1class Elm.Fileselector_Entry (Efl.Ui.Layout, Elm.Interface.Fileselector, 1class Elm.Fileselector_Entry (Efl.Ui.Layout, Elm.Interface.Fileselector,
2 Efl.Ui.Clickable, Efl.Ui.Selectable) 2 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
3{ 3{
4 [[Elementary fileselector entry class]] 4 [[Elementary fileselector entry class]]
5 event_prefix: elm_fileselector_entry; 5 event_prefix: elm_fileselector_entry;
diff --git a/src/lib/elementary/elm_flipselector.eo b/src/lib/elementary/elm_flipselector.eo
index 0ed8c61..f46b749 100644
--- a/src/lib/elementary/elm_flipselector.eo
+++ b/src/lib/elementary/elm_flipselector.eo
@@ -1,6 +1,6 @@
1class Elm.Flipselector (Efl.Ui.Layout, Efl.Ui.Range, 1class Elm.Flipselector (Efl.Ui.Layout, Efl.Ui.Range,
2 Efl.Access.Widget.Action, 2 Efl.Access.Widget.Action,
3 Efl.Ui.Selectable) 3 Efl.Ui.Selectable, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary flipselector class]] 5 [[Elementary flipselector class]]
6 legacy_prefix: elm_flipselector; 6 legacy_prefix: elm_flipselector;
diff --git a/src/lib/elementary/elm_gengrid.eo b/src/lib/elementary/elm_gengrid.eo
index 7a06679..508bb9a 100644
--- a/src/lib/elementary/elm_gengrid.eo
+++ b/src/lib/elementary/elm_gengrid.eo
@@ -12,7 +12,7 @@ enum Elm.Gengrid.Reorder_Type
12 12
13class Elm.Gengrid (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, 13class Elm.Gengrid (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable,
14 Efl.Ui.Clickable, Efl.Access.Widget.Action, 14 Efl.Ui.Clickable, Efl.Access.Widget.Action,
15 Efl.Access.Selection) 15 Efl.Access.Selection, Efl.Ui.Legacy)
16{ 16{
17 [[Elementary gengrid class]] 17 [[Elementary gengrid class]]
18 legacy_prefix: elm_gengrid; 18 legacy_prefix: elm_gengrid;
diff --git a/src/lib/elementary/elm_gengrid_item.eo b/src/lib/elementary/elm_gengrid_item.eo
index 8a0cb65..3297572 100644
--- a/src/lib/elementary/elm_gengrid_item.eo
+++ b/src/lib/elementary/elm_gengrid_item.eo
@@ -25,7 +25,7 @@ enum Elm.Gengrid.Item.Field_Type
25} 25}
26 26
27 27
28class Elm.Gengrid.Item(Elm.Widget.Item.Static_Focus, Efl.Ui.Focus.Object) 28class Elm.Gengrid.Item(Elm.Widget.Item.Static_Focus, Efl.Ui.Focus.Object, Efl.Ui.Legacy)
29{ 29{
30 [[Elementary gengrid item class]] 30 [[Elementary gengrid item class]]
31 legacy_prefix: elm_gengrid_item; 31 legacy_prefix: elm_gengrid_item;
diff --git a/src/lib/elementary/elm_genlist.eo b/src/lib/elementary/elm_genlist.eo
index 318655f..2d9a4e2 100644
--- a/src/lib/elementary/elm_genlist.eo
+++ b/src/lib/elementary/elm_genlist.eo
@@ -4,7 +4,7 @@ import elm_genlist_item;
4 4
5class Elm.Genlist (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Clickable, 5class Elm.Genlist (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Clickable,
6 Efl.Access.Widget_Action, Efl.Access.Selection, 6 Efl.Access.Widget_Action, Efl.Access.Selection,
7 Efl.Ui.Selectable) 7 Efl.Ui.Selectable, Efl.Ui.Legacy)
8{ 8{
9 [[Elementary genlist class]] 9 [[Elementary genlist class]]
10 legacy_prefix: elm_genlist; 10 legacy_prefix: elm_genlist;
diff --git a/src/lib/elementary/elm_genlist_item.eo b/src/lib/elementary/elm_genlist_item.eo
index 64fb098..840d7f7 100644
--- a/src/lib/elementary/elm_genlist_item.eo
+++ b/src/lib/elementary/elm_genlist_item.eo
@@ -38,7 +38,7 @@ enum Elm.Genlist.Item.Scrollto_Type
38 bottom = (1 << 3) [[To the bottom of viewport.]] 38 bottom = (1 << 3) [[To the bottom of viewport.]]
39} 39}
40 40
41class Elm.Genlist.Item(Elm.Widget.Item.Static_Focus) 41class Elm.Genlist.Item(Elm.Widget.Item.Static_Focus, Efl.Ui.Legacy)
42{ 42{
43 [[Elementary genlist item class]] 43 [[Elementary genlist item class]]
44 legacy_prefix: elm_genlist_item; 44 legacy_prefix: elm_genlist_item;
diff --git a/src/lib/elementary/elm_gesture_layer.eo b/src/lib/elementary/elm_gesture_layer.eo
index 2e59094..6f384ed 100644
--- a/src/lib/elementary/elm_gesture_layer.eo
+++ b/src/lib/elementary/elm_gesture_layer.eo
@@ -31,7 +31,7 @@ enum Elm.Gesture.State
31 abort [[Ongoing gesture was aborted]] 31 abort [[Ongoing gesture was aborted]]
32} 32}
33 33
34class Elm.Gesture_Layer (Efl.Ui.Widget) 34class Elm.Gesture_Layer (Efl.Ui.Widget, Efl.Ui.Legacy)
35{ 35{
36 [[Elementary gesture layer class]] 36 [[Elementary gesture layer class]]
37 legacy_prefix: elm_gesture_layer; 37 legacy_prefix: elm_gesture_layer;
diff --git a/src/lib/elementary/elm_glview.eo b/src/lib/elementary/elm_glview.eo
index aafb81b..e6ec64c 100644
--- a/src/lib/elementary/elm_glview.eo
+++ b/src/lib/elementary/elm_glview.eo
@@ -80,7 +80,7 @@ enum Elm.GLView.Render.Policy
80 always = 2 [[Render always even when it is not visible]] 80 always = 2 [[Render always even when it is not visible]]
81} 81}
82 82
83class Elm.Glview (Efl.Ui.Widget, Efl.Gfx.View) 83class Elm.Glview (Efl.Ui.Widget, Efl.Gfx.View, Efl.Ui.Legacy)
84{ 84{
85 [[Elementary GL view class]] 85 [[Elementary GL view class]]
86 legacy_prefix: elm_glview; 86 legacy_prefix: elm_glview;
diff --git a/src/lib/elementary/elm_grid.eo b/src/lib/elementary/elm_grid.eo
index b8e685f..61996cd 100644
--- a/src/lib/elementary/elm_grid.eo
+++ b/src/lib/elementary/elm_grid.eo
@@ -1,4 +1,4 @@
1class Elm.Grid (Efl.Ui.Widget, Efl.Ui.Focus.Composition) 1class Elm.Grid (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary grid class]] 3 [[Elementary grid class]]
4 legacy_prefix: elm_grid; 4 legacy_prefix: elm_grid;
diff --git a/src/lib/elementary/elm_hover.eo b/src/lib/elementary/elm_hover.eo
index 874bae2..cc67a7d 100644
--- a/src/lib/elementary/elm_hover.eo
+++ b/src/lib/elementary/elm_hover.eo
@@ -7,7 +7,8 @@ enum Elm.Hover.Axis
7 both [[ELM_HOVER_AXIS_BOTH -- both.]] 7 both [[ELM_HOVER_AXIS_BOTH -- both.]]
8} 8}
9 9
10class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Ui.Clickable, Efl.Access.Widget.Action) 10class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Ui.Clickable,
11 Efl.Access.Widget.Action, Efl.Ui.Legacy)
11{ 12{
12 [[Elementary hover class]] 13 [[Elementary hover class]]
13 legacy_prefix: elm_hover; 14 legacy_prefix: elm_hover;
diff --git a/src/lib/elementary/elm_hoversel.eo b/src/lib/elementary/elm_hoversel.eo
index 8e7a580..a3454b2 100644
--- a/src/lib/elementary/elm_hoversel.eo
+++ b/src/lib/elementary/elm_hoversel.eo
@@ -2,7 +2,8 @@ import elm_general;
2 2
3class Elm.Hoversel (Efl.Ui.Button, Efl.Ui.Selectable, 3class Elm.Hoversel (Efl.Ui.Button, Efl.Ui.Selectable,
4 Efl.Ui.Clickable, 4 Efl.Ui.Clickable,
5 Efl.Access.Widget.Action) 5 Efl.Access.Widget.Action,
6 Efl.Ui.Legacy)
6{ 7{
7 [[Elementary hoversel class]] 8 [[Elementary hoversel class]]
8 legacy_prefix: elm_hoversel; 9 legacy_prefix: elm_hoversel;
diff --git a/src/lib/elementary/elm_hoversel_item.eo b/src/lib/elementary/elm_hoversel_item.eo
index 1f9a77b..6f5c7f7 100644
--- a/src/lib/elementary/elm_hoversel_item.eo
+++ b/src/lib/elementary/elm_hoversel_item.eo
@@ -1,6 +1,6 @@
1import elm_general; 1import elm_general;
2 2
3class Elm.Hoversel.Item(Elm.Widget.Item) 3class Elm.Hoversel.Item(Elm.Widget.Item, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary hoversel item class]] 5 [[Elementary hoversel item class]]
6 legacy_prefix: elm_hoversel_item; 6 legacy_prefix: elm_hoversel_item;
diff --git a/src/lib/elementary/elm_icon.eo b/src/lib/elementary/elm_icon.eo
index a491436..774b609 100644
--- a/src/lib/elementary/elm_icon.eo
+++ b/src/lib/elementary/elm_icon.eo
@@ -1,4 +1,4 @@
1class Elm.Icon (Efl.Ui.Image) 1class Elm.Icon (Efl.Ui.Image, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary Icon Class]] 3 [[Elementary Icon Class]]
4 legacy_prefix: elm_icon; 4 legacy_prefix: elm_icon;
diff --git a/src/lib/elementary/elm_index.eo b/src/lib/elementary/elm_index.eo
index bdde52b..ee79dd3 100644
--- a/src/lib/elementary/elm_index.eo
+++ b/src/lib/elementary/elm_index.eo
@@ -1,5 +1,5 @@
1class Elm.Index (Efl.Ui.Layout, Efl.Ui.Direction, 1class Elm.Index (Efl.Ui.Layout, Efl.Ui.Direction,
2 Efl.Ui.Clickable, Efl.Ui.Selectable) 2 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
3{ 3{
4 [[elementary index class]] 4 [[elementary index class]]
5 legacy_prefix: elm_index; 5 legacy_prefix: elm_index;
diff --git a/src/lib/elementary/elm_index_item.eo b/src/lib/elementary/elm_index_item.eo
index b1c3d8b..4c27066 100644
--- a/src/lib/elementary/elm_index_item.eo
+++ b/src/lib/elementary/elm_index_item.eo
@@ -1,4 +1,4 @@
1class Elm.Index.Item(Elm.Widget.Item, Efl.Access.Widget.Action) 1class Elm.Index.Item(Elm.Widget.Item, Efl.Access.Widget.Action, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary index item class]] 3 [[Elementary index item class]]
4 legacy_prefix: elm_index_item; 4 legacy_prefix: elm_index_item;
diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c
index ce73fcf..d431401 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -193,7 +193,7 @@ _elm_pan_content_size_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coo
193static Evas_Object * 193static Evas_Object *
194_elm_pan_add(Evas *evas) 194_elm_pan_add(Evas *evas)
195{ 195{
196 return efl_add(MY_PAN_CLASS, evas, efl_canvas_object_legacy_ctor(efl_added)); 196 return elm_legacy_add(MY_PAN_CLASS, evas);
197} 197}
198 198
199EOLIAN static Eo * 199EOLIAN static Eo *
diff --git a/src/lib/elementary/elm_interfaces.h b/src/lib/elementary/elm_interfaces.h
index c15669e..6f27a34 100644
--- a/src/lib/elementary/elm_interfaces.h
+++ b/src/lib/elementary/elm_interfaces.h
@@ -16,6 +16,7 @@
16#include "efl_access_image.eo.h" 16#include "efl_access_image.eo.h"
17#include "efl_access_selection.eo.h" 17#include "efl_access_selection.eo.h"
18#include "efl_access_value.eo.h" 18#include "efl_access_value.eo.h"
19#include "efl_ui_legacy.eo.h"
19#endif 20#endif
20#ifndef EFL_NOLEGACY_API_SUPPORT 21#ifndef EFL_NOLEGACY_API_SUPPORT
21#include "efl_access_action.eo.legacy.h" 22#include "efl_access_action.eo.legacy.h"
@@ -24,5 +25,6 @@
24#include "efl_access_image.eo.legacy.h" 25#include "efl_access_image.eo.legacy.h"
25#include "efl_access_selection.eo.legacy.h" 26#include "efl_access_selection.eo.legacy.h"
26#include "efl_access_value.eo.legacy.h" 27#include "efl_access_value.eo.legacy.h"
28#include "efl_ui_legacy.eo.legacy.h"
27#endif 29#endif
28#endif 30#endif
diff --git a/src/lib/elementary/elm_inwin.eo b/src/lib/elementary/elm_inwin.eo
index 9edf1d6..0b6acf9 100644
--- a/src/lib/elementary/elm_inwin.eo
+++ b/src/lib/elementary/elm_inwin.eo
@@ -1,4 +1,4 @@
1class Elm.Inwin (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Content) 1class Elm.Inwin (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Content, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary inwin class]] 3 [[Elementary inwin class]]
4 legacy_prefix: elm_inwin; 4 legacy_prefix: elm_inwin;
diff --git a/src/lib/elementary/elm_label.eo b/src/lib/elementary/elm_label.eo
index 8211153..73b1298 100644
--- a/src/lib/elementary/elm_label.eo
+++ b/src/lib/elementary/elm_label.eo
@@ -8,7 +8,7 @@ enum Elm.Label.Slide_Mode
8 always [[Slide always.]] 8 always [[Slide always.]]
9} 9}
10 10
11class Elm.Label (Efl.Ui.Layout) 11class Elm.Label (Efl.Ui.Layout, Efl.Ui.Legacy)
12{ 12{
13 [[Elementary label class]] 13 [[Elementary label class]]
14 legacy_prefix: elm_label; 14 legacy_prefix: elm_label;
diff --git a/src/lib/elementary/elm_list.eo b/src/lib/elementary/elm_list.eo
index 5987cca..4e5cc2b 100644
--- a/src/lib/elementary/elm_list.eo
+++ b/src/lib/elementary/elm_list.eo
@@ -38,7 +38,7 @@ enum Elm.List.Mode
38 38
39class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable, 39class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable,
40 Efl.Access.Widget.Action, Efl.Access.Selection, 40 Efl.Access.Widget.Action, Efl.Access.Selection,
41 Efl.Ui.Clickable, Efl.Ui.Selectable) 41 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
42{ 42{
43 [[Elementary list class]] 43 [[Elementary list class]]
44 legacy_prefix: elm_list; 44 legacy_prefix: elm_list;
diff --git a/src/lib/elementary/elm_list_item.eo b/src/lib/elementary/elm_list_item.eo
index 23729d3..c100578 100644
--- a/src/lib/elementary/elm_list_item.eo
+++ b/src/lib/elementary/elm_list_item.eo
@@ -1,4 +1,4 @@
1class Elm.List.Item(Elm.Widget.Item) 1class Elm.List.Item(Elm.Widget.Item, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary list item class]] 3 [[Elementary list item class]]
4 legacy_prefix: elm_list_item; 4 legacy_prefix: elm_list_item;
diff --git a/src/lib/elementary/elm_map.eo b/src/lib/elementary/elm_map.eo
index a20ccff..9c4d68d 100644
--- a/src/lib/elementary/elm_map.eo
+++ b/src/lib/elementary/elm_map.eo
@@ -71,7 +71,7 @@ enum Elm.Map.Route_Method
71 71
72class Elm.Map (Efl.Ui.Widget, Elm.Interface_Scrollable, 72class Elm.Map (Efl.Ui.Widget, Elm.Interface_Scrollable,
73 Efl.Access.Widget.Action, 73 Efl.Access.Widget.Action,
74 Efl.Ui.Clickable) 74 Efl.Ui.Clickable, Efl.Ui.Legacy)
75{ 75{
76 [[Elementary map class]] 76 [[Elementary map class]]
77 legacy_prefix: elm_map; 77 legacy_prefix: elm_map;
diff --git a/src/lib/elementary/elm_mapbuf.eo b/src/lib/elementary/elm_mapbuf.eo
index a8f1ead..b116ed7 100644
--- a/src/lib/elementary/elm_mapbuf.eo
+++ b/src/lib/elementary/elm_mapbuf.eo
@@ -1,4 +1,4 @@
1class Elm.Mapbuf (Efl.Ui.Widget, Efl.Content, Efl.Part) 1class Elm.Mapbuf (Efl.Ui.Widget, Efl.Content, Efl.Part, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary mapbuf class]] 3 [[Elementary mapbuf class]]
4 legacy_prefix: elm_mapbuf; 4 legacy_prefix: elm_mapbuf;
diff --git a/src/lib/elementary/elm_menu.eo b/src/lib/elementary/elm_menu.eo
index ccbaa21..a808f29 100644
--- a/src/lib/elementary/elm_menu.eo
+++ b/src/lib/elementary/elm_menu.eo
@@ -1,5 +1,5 @@
1class Elm.Menu (Efl.Ui.Widget, Efl.Ui.Clickable, Efl.Ui.Menu, 1class Elm.Menu (Efl.Ui.Widget, Efl.Ui.Clickable, Efl.Ui.Menu,
2 Efl.Access.Selection, Efl.Ui.Focus.Manager) 2 Efl.Access.Selection, Efl.Ui.Focus.Manager, Efl.Ui.Legacy)
3{ 3{
4 [[Elementary menu class]] 4 [[Elementary menu class]]
5 legacy_prefix: elm_menu; 5 legacy_prefix: elm_menu;
diff --git a/src/lib/elementary/elm_menu_item.eo b/src/lib/elementary/elm_menu_item.eo
index 249b0f0..464f831 100644
--- a/src/lib/elementary/elm_menu_item.eo
+++ b/src/lib/elementary/elm_menu_item.eo
@@ -1,5 +1,5 @@
1class Elm.Menu.Item(Elm.Widget.Item, Efl.Access.Selection, 1class Elm.Menu.Item(Elm.Widget.Item, Efl.Access.Selection,
2 Efl.Ui.Item) 2 Efl.Ui.Item, Efl.Ui.Legacy)
3{ 3{
4 [[Elementary menu item class]] 4 [[Elementary menu item class]]
5 legacy_prefix: elm_menu_item; 5 legacy_prefix: elm_menu_item;
diff --git a/src/lib/elementary/elm_multibuttonentry_item.eo b/src/lib/elementary/elm_multibuttonentry_item.eo
index 1c7292d..32a6185 100644
--- a/src/lib/elementary/elm_multibuttonentry_item.eo
+++ b/src/lib/elementary/elm_multibuttonentry_item.eo
@@ -1,5 +1,6 @@
1class Elm.Multibuttonentry.Item(Elm.Widget.Item, 1class Elm.Multibuttonentry.Item(Elm.Widget.Item,
2 Efl.Access.Widget.Action) 2 Efl.Access.Widget.Action,
3 Efl.Ui.Legacy)
3{ 4{
4 [[Elementary multibuttonentry class]] 5 [[Elementary multibuttonentry class]]
5 legacy_prefix: elm_multibuttonentry_item; 6 legacy_prefix: elm_multibuttonentry_item;
diff --git a/src/lib/elementary/elm_naviframe.eo b/src/lib/elementary/elm_naviframe.eo
index 4f6c7bf..349f397 100644
--- a/src/lib/elementary/elm_naviframe.eo
+++ b/src/lib/elementary/elm_naviframe.eo
@@ -1,4 +1,4 @@
1class Elm.Naviframe (Efl.Ui.Layout, Efl.Access.Widget.Action) 1class Elm.Naviframe (Efl.Ui.Layout, Efl.Access.Widget.Action, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary naviframe class]] 3 [[Elementary naviframe class]]
4 legacy_prefix: elm_naviframe; 4 legacy_prefix: elm_naviframe;
diff --git a/src/lib/elementary/elm_naviframe_item.eo b/src/lib/elementary/elm_naviframe_item.eo
index 6e372e7..761a669 100644
--- a/src/lib/elementary/elm_naviframe_item.eo
+++ b/src/lib/elementary/elm_naviframe_item.eo
@@ -1,6 +1,6 @@
1type Elm_Naviframe_Item_Pop_Cb: __undefined_type; [[Elementary naviframe item pop callback type]] 1type Elm_Naviframe_Item_Pop_Cb: __undefined_type; [[Elementary naviframe item pop callback type]]
2 2
3class Elm.Naviframe.Item(Elm.Widget.Item) 3class Elm.Naviframe.Item(Elm.Widget.Item, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary naviframe item class]] 5 [[Elementary naviframe item class]]
6 legacy_prefix: elm_naviframe_item; 6 legacy_prefix: elm_naviframe_item;
diff --git a/src/lib/elementary/elm_notify.eo b/src/lib/elementary/elm_notify.eo
index a3a0afc..4b4236e 100644
--- a/src/lib/elementary/elm_notify.eo
+++ b/src/lib/elementary/elm_notify.eo
@@ -1,4 +1,4 @@
1class Elm.Notify (Efl.Ui.Widget, Efl.Ui.Focus.Layer, Efl.Content, Efl.Part) 1class Elm.Notify (Efl.Ui.Widget, Efl.Ui.Focus.Layer, Efl.Content, Efl.Part, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary notification class]] 3 [[Elementary notification class]]
4 legacy_prefix: elm_notify; 4 legacy_prefix: elm_notify;
diff --git a/src/lib/elementary/elm_panel.eo b/src/lib/elementary/elm_panel.eo
index 6a8f6f9..fd4aa87 100644
--- a/src/lib/elementary/elm_panel.eo
+++ b/src/lib/elementary/elm_panel.eo
@@ -9,7 +9,7 @@ enum Elm.Panel.Orient
9} 9}
10 10
11class Elm.Panel (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Elm.Interface_Scrollable, 11class Elm.Panel (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Elm.Interface_Scrollable,
12 Efl.Access.Widget.Action) 12 Efl.Access.Widget.Action, Efl.Ui.Legacy)
13{ 13{
14 [[Elementary panel class]] 14 [[Elementary panel class]]
15 legacy_prefix: elm_panel; 15 legacy_prefix: elm_panel;
diff --git a/src/lib/elementary/elm_photo.eo b/src/lib/elementary/elm_photo.eo
index a7811ab..bd9e986 100644
--- a/src/lib/elementary/elm_photo.eo
+++ b/src/lib/elementary/elm_photo.eo
@@ -1,4 +1,5 @@
1class Elm.Photo (Efl.Ui.Widget, Efl.File, Efl.Ui.Clickable, Efl.Ui.Draggable) 1class Elm.Photo (Efl.Ui.Widget, Efl.File, Efl.Ui.Clickable, Efl.Ui.Draggable,
2 Efl.Ui.Legacy)
2{ 3{
3 [[Elementary photo class]] 4 [[Elementary photo class]]
4 legacy_prefix: elm_photo; 5 legacy_prefix: elm_photo;
diff --git a/src/lib/elementary/elm_player.eo b/src/lib/elementary/elm_player.eo
index 3771e08..49263c1 100644
--- a/src/lib/elementary/elm_player.eo
+++ b/src/lib/elementary/elm_player.eo
@@ -1,4 +1,4 @@
1class Elm.Player (Efl.Ui.Layout, Efl.Access.Widget.Action) 1class Elm.Player (Efl.Ui.Layout, Efl.Access.Widget.Action, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary player class]] 3 [[Elementary player class]]
4 legacy_prefix: elm_player; 4 legacy_prefix: elm_player;
diff --git a/src/lib/elementary/elm_plug.eo b/src/lib/elementary/elm_plug.eo
index 674835c..728e9fc 100644
--- a/src/lib/elementary/elm_plug.eo
+++ b/src/lib/elementary/elm_plug.eo
@@ -1,4 +1,4 @@
1class Elm.Plug (Efl.Ui.Widget, Efl.Ui.Clickable) 1class Elm.Plug (Efl.Ui.Widget, Efl.Ui.Clickable, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary plug class]] 3 [[Elementary plug class]]
4 legacy_prefix: elm_plug; 4 legacy_prefix: elm_plug;
diff --git a/src/lib/elementary/elm_popup.eo b/src/lib/elementary/elm_popup.eo
index f611d91..133f237 100644
--- a/src/lib/elementary/elm_popup.eo
+++ b/src/lib/elementary/elm_popup.eo
@@ -23,7 +23,7 @@ enum Elm.Popup.Orient
23} 23}
24 24
25 25
26class Elm.Popup (Efl.Ui.Layout, Efl.Access.Widget.Action) 26class Elm.Popup (Efl.Ui.Layout, Efl.Access.Widget.Action, Efl.Ui.Legacy)
27{ 27{
28 [[Elementary popup class]] 28 [[Elementary popup class]]
29 legacy_prefix: elm_popup; 29 legacy_prefix: elm_popup;
diff --git a/src/lib/elementary/elm_popup_item.eo b/src/lib/elementary/elm_popup_item.eo
index dcf9577..7668b17 100644
--- a/src/lib/elementary/elm_popup_item.eo
+++ b/src/lib/elementary/elm_popup_item.eo
@@ -1,4 +1,4 @@
1class Elm.Popup.Item(Elm.Widget.Item) 1class Elm.Popup.Item(Elm.Widget.Item, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary popup item class]] 3 [[Elementary popup item class]]
4 legacy_prefix: elm_popup_item; 4 legacy_prefix: elm_popup_item;
diff --git a/src/lib/elementary/elm_prefs.eo b/src/lib/elementary/elm_prefs.eo
index 2b7eb66..0f91b45 100644
--- a/src/lib/elementary/elm_prefs.eo
+++ b/src/lib/elementary/elm_prefs.eo
@@ -3,7 +3,7 @@ import eina_types;
3type Elm_Prefs_Data: __undefined_type; [[Elementary preferences data type]] 3type Elm_Prefs_Data: __undefined_type; [[Elementary preferences data type]]
4type Elm_Prefs_Reset_Mode: __undefined_type; [[Elementary preferences reset mode type]] 4type Elm_Prefs_Reset_Mode: __undefined_type; [[Elementary preferences reset mode type]]
5 5
6class Elm.Prefs (Efl.Ui.Widget, Efl.File) 6class Elm.Prefs (Efl.Ui.Widget, Efl.File, Efl.Ui.Legacy)
7{ 7{
8 [[Elementary preferences class]] 8 [[Elementary preferences class]]
9 legacy_prefix: elm_prefs; 9 legacy_prefix: elm_prefs;
diff --git a/src/lib/elementary/elm_route.eo b/src/lib/elementary/elm_route.eo
index fa95398..fe41b6a 100644
--- a/src/lib/elementary/elm_route.eo
+++ b/src/lib/elementary/elm_route.eo
@@ -1,4 +1,4 @@
1class Elm.Route (Efl.Ui.Widget) 1class Elm.Route (Efl.Ui.Widget, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary route class]] 3 [[Elementary route class]]
4 legacy_prefix: elm_route; 4 legacy_prefix: elm_route;
diff --git a/src/lib/elementary/elm_scroller.eo b/src/lib/elementary/elm_scroller.eo
index cb0e3fe..0abe125 100644
--- a/src/lib/elementary/elm_scroller.eo
+++ b/src/lib/elementary/elm_scroller.eo
@@ -1,6 +1,6 @@
1class Elm.Scroller (Efl.Ui.Layout, Elm.Interface_Scrollable, 1class Elm.Scroller (Efl.Ui.Layout, Elm.Interface_Scrollable,
2 Efl.Access.Widget.Action, 2 Efl.Access.Widget.Action,
3 Efl.Ui.Scrollable, Efl.Content) 3 Efl.Ui.Scrollable, Efl.Content, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary scroller class]] 5 [[Elementary scroller class]]
6 legacy_prefix: elm_scroller; 6 legacy_prefix: elm_scroller;
diff --git a/src/lib/elementary/elm_segment_control.eo b/src/lib/elementary/elm_segment_control.eo
index 7c2cbea..bd42439 100644
--- a/src/lib/elementary/elm_segment_control.eo
+++ b/src/lib/elementary/elm_segment_control.eo
@@ -1,4 +1,4 @@
1class Elm.Segment_Control (Efl.Ui.Layout, Efl.Ui.Focus.Composition) 1class Elm.Segment_Control (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary segment control class]] 3 [[Elementary segment control class]]
4 legacy_prefix: elm_segment_control; 4 legacy_prefix: elm_segment_control;
diff --git a/src/lib/elementary/elm_segment_control_item.eo b/src/lib/elementary/elm_segment_control_item.eo
index 743b058..dab3f9c 100644
--- a/src/lib/elementary/elm_segment_control_item.eo
+++ b/src/lib/elementary/elm_segment_control_item.eo
@@ -1,4 +1,4 @@
1class Elm.Segment_Control.Item(Elm.Widget.Item, Efl.Ui.Focus.Object) 1class Elm.Segment_Control.Item(Elm.Widget.Item, Efl.Ui.Focus.Object, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary segment control item class]] 3 [[Elementary segment control item class]]
4 legacy_prefix: elm_segment_control_item; 4 legacy_prefix: elm_segment_control_item;
diff --git a/src/lib/elementary/elm_separator.eo b/src/lib/elementary/elm_separator.eo
index 3c7b23d..c29585d 100644
--- a/src/lib/elementary/elm_separator.eo
+++ b/src/lib/elementary/elm_separator.eo
@@ -1,4 +1,4 @@
1class Elm.Separator (Efl.Ui.Layout) 1class Elm.Separator (Efl.Ui.Layout, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary separator class]] 3 [[Elementary separator class]]
4 legacy_prefix: elm_separator; 4 legacy_prefix: elm_separator;
diff --git a/src/lib/elementary/elm_slideshow.eo b/src/lib/elementary/elm_slideshow.eo
index 9f0b533..acb6b24 100644
--- a/src/lib/elementary/elm_slideshow.eo
+++ b/src/lib/elementary/elm_slideshow.eo
@@ -1,6 +1,6 @@
1type Elm_Slideshow_Item_Class: __undefined_type; [[Elementary slideshow item class type]] 1type Elm_Slideshow_Item_Class: __undefined_type; [[Elementary slideshow item class type]]
2 2
3class Elm.Slideshow (Efl.Ui.Layout, Efl.Access.Widget.Action) 3class Elm.Slideshow (Efl.Ui.Layout, Efl.Access.Widget.Action, Efl.Ui.Legacy)
4{ 4{
5 [[Elementary slideshow class]] 5 [[Elementary slideshow class]]
6 eo_prefix: elm_obj_slideshow; 6 eo_prefix: elm_obj_slideshow;
diff --git a/src/lib/elementary/elm_spinner.eo b/src/lib/elementary/elm_spinner.eo
index 8cc571d..f0b0dc6 100644
--- a/src/lib/elementary/elm_spinner.eo
+++ b/src/lib/elementary/elm_spinner.eo
@@ -1,5 +1,5 @@
1class Elm.Spinner (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Focus.Composition, 1class Elm.Spinner (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Focus.Composition,
2 Efl.Access.Value, Efl.Access.Widget.Action) 2 Efl.Access.Value, Efl.Access.Widget.Action, Efl.Ui.Legacy)
3{ 3{
4 [[Elementary spinner class]] 4 [[Elementary spinner class]]
5 legacy_prefix: elm_spinner; 5 legacy_prefix: elm_spinner;
diff --git a/src/lib/elementary/elm_table.eo b/src/lib/elementary/elm_table.eo
index 8271373..7eaae08 100644
--- a/src/lib/elementary/elm_table.eo
+++ b/src/lib/elementary/elm_table.eo
@@ -1,4 +1,4 @@
1class Elm.Table (Efl.Ui.Widget, Efl.Ui.Focus.Composition) 1class Elm.Table (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
2{ 2{
3 [[Elementary table class]] 3 [[Elementary table class]]
4 legacy_prefix: elm_table; 4 legacy_prefix: elm_table;
diff --git a/src/lib/elementary/elm_theme.c b/src/lib/elementary/elm_theme.c
index 69028c6..ed24b7a 100644
--- a/src/lib/elementary/elm_theme.c
+++ b/src/lib/elementary/elm_theme.c
@@ -281,6 +281,7 @@ _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, con
281 Elm_Theme *th = NULL; 281 Elm_Theme *th = NULL;
282 282
283 if (parent) th = elm_widget_theme_get(parent); 283 if (parent) th = elm_widget_theme_get(parent);
284
284 return _elm_theme_set(th, o, clas, group, style, elm_widget_is_legacy(parent)); 285 return _elm_theme_set(th, o, clas, group, style, elm_widget_is_legacy(parent));
285} 286}
286 287
diff --git a/src/lib/elementary/elm_thumb.eo b/src/lib/elementary/elm_thumb.eo
index a6f9820..fa8a94a 100644
--- a/src/lib/elementary/elm_thumb.eo
+++ b/src/lib/elementary/elm_thumb.eo
@@ -1,5 +1,5 @@
1class Elm.Thumb (Efl.Ui.Layout, Efl.File, Efl.Ui.Clickable, 1class Elm.Thumb (Efl.Ui.Layout, Efl.File, Efl.Ui.Clickable,
2 Efl.Ui.Draggable) 2 Efl.Ui.Draggable, Efl.Ui.Legacy)
3{ 3{
4 [[Elementary thumbnail class]] 4 [[Elementary thumbnail class]]
5 legacy_prefix: elm_thumb; 5 legacy_prefix: elm_thumb;
diff --git a/src/lib/elementary/elm_toolbar.eo b/src/lib/elementary/elm_toolbar.eo
index 4847729..00704c7 100644
--- a/src/lib/elementary/elm_toolbar.eo
+++ b/src/lib/elementary/elm_toolbar.eo
@@ -25,7 +25,7 @@ enum Elm.Toolbar.Shrink_Mode
25 25
26class Elm.Toolbar (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Direction, 26class Elm.Toolbar (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Direction,
27 Efl.Access.Widget.Action, Efl.Access.Selection, 27 Efl.Access.Widget.Action, Efl.Access.Selection,
28 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Menu) 28 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Menu, Efl.Ui.Legacy)
29{ 29{
30 [[Elementary toolbar class]] 30 [[Elementary toolbar class]]
31 legacy_prefix: elm_toolbar; 31 legacy_prefix: elm_toolbar;
diff --git a/src/lib/elementary/elm_toolbar_item.eo b/src/lib/elementary/elm_toolbar_item.eo
index a9af54e..5143b8f 100644
--- a/src/lib/elementary/elm_toolbar_item.eo
+++ b/src/lib/elementary/elm_toolbar_item.eo
@@ -23,7 +23,7 @@ struct Elm.Toolbar.Item.State
23 data: const(void_ptr); [[Item data]] 23 data: const(void_ptr); [[Item data]]
24} 24}
25 25
26class Elm.Toolbar.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Ui.Focus.Object) 26class Elm.Toolbar.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Ui.Focus.Object, Efl.Ui.Legacy)
27{ 27{
28 [[Elementary toolbar item class]] 28 [[Elementary toolbar item class]]
29 legacy_prefix: elm_toolbar_item; 29 legacy_prefix: elm_toolbar_item;
diff --git a/src/lib/elementary/elm_web.eo b/src/lib/elementary/elm_web.eo
index 1ff13fe..ee2e939 100644
--- a/src/lib/elementary/elm_web.eo
+++ b/src/lib/elementary/elm_web.eo
@@ -14,7 +14,7 @@ enum Elm.Web.Zoom_Mode
14 last [[Sentinel value to indicate last enum field during iteration]] 14 last [[Sentinel value to indicate last enum field during iteration]]
15} 15}
16 16
17class Elm.Web (Efl.Ui.Widget) 17class Elm.Web (Efl.Ui.Widget, Efl.Ui.Legacy)
18{ 18{
19 [[Elementary web view class]] 19 [[Elementary web view class]]
20 legacy_prefix: elm_web; 20 legacy_prefix: elm_web;
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index 20673e5..3a8267b 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -464,7 +464,6 @@ typedef struct _Elm_Widget_Smart_Data
464 Eina_Bool on_create : 1; /**< This is true when the widget is on creation(general widget constructor). */ 464 Eina_Bool on_create : 1; /**< This is true when the widget is on creation(general widget constructor). */
465 Eina_Bool on_destroy: 1; /**< This is true when the widget is on destruction(general widget destructor). */ 465 Eina_Bool on_destroy: 1; /**< This is true when the widget is on destruction(general widget destructor). */
466 Eina_Bool provider_lookup : 1; /**< This is true when efl_provider_find is currently walking the tree */ 466 Eina_Bool provider_lookup : 1; /**< This is true when efl_provider_find is currently walking the tree */
467 Eina_Bool legacy : 1; /**< Widget was created with a legacy API, not efl_add() */
468 Eina_Bool has_shadow : 1; 467 Eina_Bool has_shadow : 1;
469} Elm_Widget_Smart_Data; 468} Elm_Widget_Smart_Data;
470 469
@@ -822,10 +821,7 @@ _elm_widget_sub_object_redirect_to_top(Evas_Object *obj, Evas_Object *sobj)
822 return ret; 821 return ret;
823} 822}
824 823
825/* Internal hack to mark legacy objects as such before construction. 824#define elm_legacy_add(k, p, ...) ({ \
826 * No need for TLS: Only UI objects created in the main loop matter. */
827EAPI extern Eina_Bool _elm_legacy_add;
828#define elm_legacy_add(k, p, ...) ({ _elm_legacy_add = 1; \
829 efl_add(k, p, efl_canvas_object_legacy_ctor(efl_added), ##__VA_ARGS__); }) 825 efl_add(k, p, efl_canvas_object_legacy_ctor(efl_added), ##__VA_ARGS__); })
830 826
831static inline Eo * 827static inline Eo *
@@ -838,11 +834,7 @@ elm_widget_resize_object_get(const Eo *obj)
838static inline Eina_Bool 834static inline Eina_Bool
839elm_widget_is_legacy(const Eo *obj) 835elm_widget_is_legacy(const Eo *obj)
840{ 836{
841 Elm_Widget_Smart_Data *sd; 837 return efl_isa(obj, EFL_UI_LEGACY_INTERFACE);
842
843 if (_elm_legacy_add) return EINA_TRUE;
844 sd = (Elm_Widget_Smart_Data *) efl_data_scope_safe_get(obj, EFL_UI_WIDGET_CLASS);
845 return sd ? sd->legacy : EINA_FALSE;
846} 838}
847 839
848/** Takes in any canvas object and returns the first smart parent that is a widget */ 840/** Takes in any canvas object and returns the first smart parent that is a widget */