From 335936e79d9473b72b6afe2902565b9e25701209 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 27 Feb 2019 13:17:16 -0500 Subject: [PATCH] efl.ui.layout: split into abstract and real class Summary: most widgets inherit from layout to provide implementations for common functionality such as content/text/theme get+set. one of the things that layout also brings into its inheritance hierarchy is efl.file and implementations for its methods. this becomes a problem when the widget which inherits layout also wants to provide implementations for efl.file methods (e.g., entry, which uses efl.file to load text files) as it will result in calling all of the efl.file implementations up the chain. in the case of entry, this could result in the 'file' property eventually being set to the current theme file in use by the entry's layout object, and then the entry will attempt to autosave its content to the default theme file when it is destroyed, corrupting the theme file and breaking everything to solve this: * efl.ui.layout remains an instantiable class which implements efl.file * efl.ui.layout_base is the abstract class which provides all the methods of layout but should be inherited by all widgets which want to implement efl.file functionality Depends on D8018 Reviewers: bu5hm4n, segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_api Differential Revision: https://phab.enlightenment.org/D8032 --- src/Makefile_Elementary.am | 1 + src/lib/elementary/Efl_Ui.h | 1 + src/lib/elementary/efl_ui_bg.eo | 2 +- src/lib/elementary/efl_ui_layout.c | 118 +++++++++--------- src/lib/elementary/efl_ui_layout.eo | 78 +----------- src/lib/elementary/efl_ui_layout_base.eo | 85 +++++++++++++ src/lib/elementary/efl_ui_layout_pack.c | 4 +- src/lib/elementary/efl_ui_navigation_layout.c | 2 +- src/lib/elementary/efl_ui_text.eo | 2 +- src/lib/elementary/efl_ui_video.eo | 2 +- src/lib/elementary/efl_ui_widget.c | 16 +-- src/lib/elementary/elm_entry.eo | 2 +- src/lib/elementary/elm_genlist.c | 2 +- src/lib/elementary/elm_layout.h | 1 + src/lib/elementary/elm_main.c | 4 +- src/lib/elementary/elm_thumb.eo | 2 +- src/lib/elementary/elm_widget_layout.h | 4 +- src/lib/elementary/meson.build | 1 + 18 files changed, 172 insertions(+), 155 deletions(-) create mode 100644 src/lib/elementary/efl_ui_layout_base.eo diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index b6f8d17129..43a3d64edb 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -14,6 +14,7 @@ elm_public_eolian_files = \ lib/elementary/efl_ui_image.eo \ lib/elementary/efl_ui_image_zoomable.eo \ lib/elementary/efl_ui_layout.eo \ + lib/elementary/efl_ui_layout_base.eo \ lib/elementary/efl_ui_nstate.eo \ lib/elementary/efl_ui_navigation_bar.eo \ lib/elementary/efl_ui_navigation_bar_part.eo \ diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index 515ee48c06..33cc92efcb 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -171,6 +171,7 @@ EAPI void efl_ui_focus_relation_free(Efl_Ui_Focus_Relations *rel); # include # include # include +# include # include # include # include diff --git a/src/lib/elementary/efl_ui_bg.eo b/src/lib/elementary/efl_ui_bg.eo index 6809b7f418..0094f8c951 100644 --- a/src/lib/elementary/efl_ui_bg.eo +++ b/src/lib/elementary/efl_ui_bg.eo @@ -1,4 +1,4 @@ -class @beta Efl.Ui.Bg extends Efl.Ui.Layout implements Efl.Gfx.Color, Efl.Gfx.Image, Efl.Gfx.Image_Load_Controller +class @beta Efl.Ui.Bg extends Efl.Ui.Layout_Base implements Efl.File, Efl.Gfx.Color, Efl.Gfx.Image, Efl.Gfx.Image_Load_Controller { [[The bg (background) widget is used for setting (solid) background decorations for a window (unless it has transparency enabled) or for any container object. It diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index 14520e53ff..ce0ccec79b 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -15,7 +15,7 @@ #include "elm_part_helper.h" #include "elm_entry.eo.h" -#define MY_CLASS EFL_UI_LAYOUT_CLASS +#define MY_CLASS EFL_UI_LAYOUT_BASE_CLASS #define MY_CLASS_PFX efl_ui_layout #define MY_CLASS_NAME "Efl.Ui.Layout" @@ -133,7 +133,7 @@ struct _Efl_Ui_Layout_Sub_Object_Cursor #define MY_CLASS_NAME_LEGACY "elm_layout" static void -_efl_ui_layout_class_constructor(Efl_Class *klass) +_efl_ui_layout_base_class_constructor(Efl_Class *klass) { evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } @@ -423,7 +423,7 @@ _visuals_refresh(Evas_Object *obj, } EOLIAN static Eina_Bool -_efl_ui_layout_efl_ui_widget_on_disabled_update(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Eina_Bool disabled) +_efl_ui_layout_base_efl_ui_widget_on_disabled_update(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Eina_Bool disabled) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -478,7 +478,7 @@ _efl_ui_layout_theme_internal(Eo *obj, Efl_Ui_Layout_Data *sd) } EOLIAN static Efl_Ui_Theme_Apply_Result -_efl_ui_layout_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Layout_Data *sd) { Efl_Ui_Theme_Apply_Result theme_apply_ret = EFL_UI_THEME_APPLY_RESULT_FAIL; @@ -490,7 +490,7 @@ _efl_ui_layout_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Layout_Data *sd) } EOLIAN static Eina_Bool -_efl_ui_layout_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) +_efl_ui_layout_base_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -522,7 +522,7 @@ _efl_ui_layout_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Layout_Data * } EOLIAN static Eina_Bool -_efl_ui_layout_efl_ui_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Evas_Object *sobj) +_efl_ui_layout_base_efl_ui_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Evas_Object *sobj) { Eina_Bool int_ret = EINA_FALSE; @@ -539,7 +539,7 @@ _efl_ui_layout_efl_ui_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data * } EOLIAN static Eina_Bool -_efl_ui_layout_efl_ui_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_Object *sobj) +_efl_ui_layout_base_efl_ui_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_Object *sobj) { Eina_List *l; Efl_Ui_Layout_Sub_Object_Data *sub_d; @@ -732,7 +732,7 @@ _on_size_evaluate_signal(void *data, } EOLIAN static void -_efl_ui_layout_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) +_efl_ui_layout_base_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) { Evas_Object *edje; @@ -757,7 +757,7 @@ _efl_ui_layout_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_ } EOLIAN static void -_efl_ui_layout_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Layout_Data *sd) { Efl_Ui_Layout_Sub_Object_Data *sub_d; Efl_Ui_Layout_Sub_Object_Cursor *pc; @@ -823,7 +823,7 @@ _efl_ui_layout_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Layout_Data *sd) /* rewrite or extend this one on your derived class as to suit your * needs */ EOLIAN static void -_efl_ui_layout_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Layout_Data *sd) { if (sd->needs_size_calc) { @@ -852,9 +852,10 @@ _parts_cursors_find(Efl_Ui_Layout_Data *sd, * widget inheriting from elm_layout */ EOLIAN static Eina_Error -_efl_ui_layout_efl_file_load(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_efl_file_load(Eo *obj, void *_pd EINA_UNUSED) { Eina_Error err; + Efl_Ui_Layout_Data *sd = efl_data_scope_get(obj, MY_CLASS); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -876,49 +877,49 @@ _efl_ui_layout_efl_file_load(Eo *obj, Efl_Ui_Layout_Data *sd) } EOLIAN static Eina_Error -_efl_ui_layout_efl_file_file_set(Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *file) +_efl_ui_layout_efl_file_file_set(Eo *obj, void *_pd EINA_UNUSED, const char *file) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_GFX_IMAGE_LOAD_ERROR_GENERIC); return efl_file_set(wd->resize_obj, file); } EOLIAN static const char * -_efl_ui_layout_efl_file_file_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_efl_file_file_get(const Eo *obj, void *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); return efl_file_get(wd->resize_obj); } EOLIAN static void -_efl_ui_layout_efl_file_key_set(Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *key) +_efl_ui_layout_efl_file_key_set(Eo *obj, void *_pd EINA_UNUSED, const char *key) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); return efl_file_key_set(wd->resize_obj, key); } EOLIAN static const char * -_efl_ui_layout_efl_file_key_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_efl_file_key_get(const Eo *obj, void *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); return efl_file_key_get(wd->resize_obj); } EOLIAN static Eina_Error -_efl_ui_layout_efl_file_mmap_set(Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const Eina_File *file) +_efl_ui_layout_efl_file_mmap_set(Eo *obj, void *_pd EINA_UNUSED, const Eina_File *file) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); return efl_file_mmap_set(wd->resize_obj, file); } EOLIAN static const Eina_File * -_efl_ui_layout_efl_file_mmap_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_efl_file_mmap_get(const Eo *obj, void *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); return efl_file_mmap_get(wd->resize_obj); } EOLIAN static Efl_Ui_Theme_Apply_Result -_efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style) +_efl_ui_layout_base_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style) { Eina_Bool changed = EINA_FALSE; @@ -940,7 +941,7 @@ _efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, con } EOLIAN static void -_efl_ui_layout_efl_layout_signal_signal_emit(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *emission, const char *source) +_efl_ui_layout_base_efl_layout_signal_signal_emit(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *emission, const char *source) { // Don't do anything else than call forward here EINA_SAFETY_ON_TRUE_RETURN(efl_invalidated_get(obj)); @@ -949,7 +950,7 @@ _efl_ui_layout_efl_layout_signal_signal_emit(Eo *obj, Efl_Ui_Layout_Data *_pd EI } static Eina_Bool -_efl_ui_layout_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) +_efl_ui_layout_base_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { // Don't do anything else than call forward here ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -957,7 +958,7 @@ _efl_ui_layout_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_Layout_Data } static Eina_Bool -_efl_ui_layout_efl_layout_signal_signal_callback_del(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) +_efl_ui_layout_base_efl_layout_signal_signal_callback_del(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { // Don't do anything else than call forward here ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -1151,7 +1152,7 @@ _efl_ui_layout_content_unset(Eo *obj, Efl_Ui_Layout_Data *sd, const char *part) } EOLIAN static Eina_Bool -_efl_ui_layout_efl_container_content_remove(Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, +_efl_ui_layout_base_efl_container_content_remove(Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, Efl_Gfx_Entity *content) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -1232,13 +1233,13 @@ _sub_iterator_create(Eo *eo_obj, Efl_Ui_Layout_Data *sd) } EOLIAN static Eina_Iterator * -_efl_ui_layout_efl_container_content_iterate(Eo *eo_obj EINA_UNUSED, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_container_content_iterate(Eo *eo_obj EINA_UNUSED, Efl_Ui_Layout_Data *sd) { return _sub_iterator_create(eo_obj, sd); } EOLIAN static int -_efl_ui_layout_efl_container_content_count(Eo *eo_obj EINA_UNUSED, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_container_content_count(Eo *eo_obj EINA_UNUSED, Efl_Ui_Layout_Data *sd) { return eina_list_count(sd->subs); } @@ -1678,7 +1679,7 @@ elm_layout_edje_get(const Eo *obj) } EOLIAN static const char * -_efl_ui_layout_efl_layout_group_group_data_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *key) +_efl_ui_layout_base_efl_layout_group_group_data_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *key) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); @@ -1686,7 +1687,7 @@ _efl_ui_layout_efl_layout_group_group_data_get(const Eo *obj, Efl_Ui_Layout_Data } EOLIAN static Eina_Size2D -_efl_ui_layout_efl_layout_group_group_size_min_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) +_efl_ui_layout_base_efl_layout_group_group_size_min_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_SIZE2D(0, 0)); @@ -1694,7 +1695,7 @@ _efl_ui_layout_efl_layout_group_group_size_min_get(const Eo *obj, Efl_Ui_Layout_ } EOLIAN static Eina_Size2D -_efl_ui_layout_efl_layout_group_group_size_max_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) +_efl_ui_layout_base_efl_layout_group_group_size_max_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_SIZE2D(0, 0)); @@ -1702,7 +1703,7 @@ _efl_ui_layout_efl_layout_group_group_size_max_get(const Eo *obj, Efl_Ui_Layout_ } EOLIAN static Eina_Bool -_efl_ui_layout_efl_layout_group_part_exist_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *part) +_efl_ui_layout_base_efl_layout_group_part_exist_get(const Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *part) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); @@ -1737,7 +1738,7 @@ elm_layout_sizing_restricted_eval(Eo *obj, Eina_Bool w, Eina_Bool h) } EOLIAN static int -_efl_ui_layout_efl_layout_calc_calc_freeze(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_layout_calc_calc_freeze(Eo *obj, Efl_Ui_Layout_Data *sd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, 0); @@ -1749,7 +1750,7 @@ _efl_ui_layout_efl_layout_calc_calc_freeze(Eo *obj, Efl_Ui_Layout_Data *sd) } EOLIAN static int -_efl_ui_layout_efl_layout_calc_calc_thaw(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_layout_calc_calc_thaw(Eo *obj, Efl_Ui_Layout_Data *sd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, 0); @@ -1763,35 +1764,35 @@ _efl_ui_layout_efl_layout_calc_calc_thaw(Eo *obj, Efl_Ui_Layout_Data *sd) } EOLIAN void -_efl_ui_layout_efl_layout_calc_calc_auto_update_hints_set(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED, Eina_Bool update) +_efl_ui_layout_base_efl_layout_calc_calc_auto_update_hints_set(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED, Eina_Bool update) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_layout_calc_auto_update_hints_set(wd->resize_obj, update); } EOLIAN Eina_Bool -_efl_ui_layout_efl_layout_calc_calc_auto_update_hints_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_base_efl_layout_calc_calc_auto_update_hints_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); return efl_layout_calc_auto_update_hints_get(wd->resize_obj); } EOLIAN Eina_Size2D -_efl_ui_layout_efl_layout_calc_calc_size_min(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED, Eina_Size2D restricted) +_efl_ui_layout_base_efl_layout_calc_calc_size_min(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED, Eina_Size2D restricted) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, restricted); return efl_layout_calc_size_min(wd->resize_obj, restricted); } EOLIAN Eina_Rect -_efl_ui_layout_efl_layout_calc_calc_parts_extends(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_base_efl_layout_calc_calc_parts_extends(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, (Eina_Rect){.rect = {0, 0, 0, 0}}); return efl_layout_calc_parts_extends(wd->resize_obj); } EOLIAN void -_efl_ui_layout_efl_layout_calc_calc_force(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_base_efl_layout_calc_calc_force(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *sd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_layout_calc_force(wd->resize_obj); @@ -1962,7 +1963,7 @@ elm_layout_edje_object_can_access_get(const Eo *obj) } EOLIAN static void -_efl_ui_layout_efl_object_dbg_info_get(Eo *eo_obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Efl_Dbg_Info *root) +_efl_ui_layout_base_efl_object_dbg_info_get(Eo *eo_obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Efl_Dbg_Info *root) { efl_dbg_info_get(efl_super(eo_obj, MY_CLASS), root); ELM_WIDGET_DATA_GET_OR_RETURN(eo_obj, wd); @@ -2223,7 +2224,7 @@ _efl_ui_layout_connect_hash(Efl_Ui_Layout_Data *pd) } EOLIAN static void -_efl_ui_layout_efl_ui_view_model_set(Eo *obj, Efl_Ui_Layout_Data *pd, Efl_Model *model) +_efl_ui_layout_base_efl_ui_view_model_set(Eo *obj, Efl_Ui_Layout_Data *pd, Efl_Model *model) { Eina_Stringshare *key; Eina_Hash_Tuple *tuple; @@ -2276,13 +2277,13 @@ _efl_ui_layout_efl_ui_view_model_set(Eo *obj, Efl_Ui_Layout_Data *pd, Efl_Model } EOLIAN static Efl_Model * -_efl_ui_layout_efl_ui_view_model_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *pd) +_efl_ui_layout_base_efl_ui_view_model_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *pd) { return pd->connect.model; } EOLIAN static void -_efl_ui_layout_efl_ui_property_bind_property_bind(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *pd, const char *key, const char *property) +_efl_ui_layout_base_efl_ui_property_bind_property_bind(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *pd, const char *key, const char *property) { EINA_SAFETY_ON_NULL_RETURN(key); Eina_Stringshare *sprop; @@ -2331,7 +2332,7 @@ _efl_ui_layout_efl_ui_property_bind_property_bind(Eo *obj EINA_UNUSED, Efl_Ui_La } EOLIAN static void -_efl_ui_layout_efl_ui_factory_bind_factory_bind(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *pd, +_efl_ui_layout_base_efl_ui_factory_bind_factory_bind(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Data *pd, const char *key, Efl_Ui_Factory *factory) { EINA_SAFETY_ON_NULL_RETURN(key); @@ -2380,7 +2381,7 @@ _efl_ui_layout_efl_ui_factory_bind_factory_bind(Eo *obj EINA_UNUSED, Efl_Ui_Layo } EOLIAN static Eo * -_efl_ui_layout_efl_object_constructor(Eo *obj, Efl_Ui_Layout_Data *sd) +_efl_ui_layout_base_efl_object_constructor(Eo *obj, Efl_Ui_Layout_Data *sd) { sd->obj = obj; obj = efl_constructor(efl_super(obj, MY_CLASS)); @@ -2391,7 +2392,7 @@ _efl_ui_layout_efl_object_constructor(Eo *obj, Efl_Ui_Layout_Data *sd) } EOLIAN static Efl_Object* -_efl_ui_layout_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED) +_efl_ui_layout_base_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED) { Eo *eo; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); @@ -2404,14 +2405,14 @@ _efl_ui_layout_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED) } EOLIAN static void -_efl_ui_layout_efl_layout_signal_message_send(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, int id, const Eina_Value msg) +_efl_ui_layout_base_efl_layout_signal_message_send(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, int id, const Eina_Value msg) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_layout_signal_message_send(wd->resize_obj, id, msg); } EOLIAN static void -_efl_ui_layout_efl_layout_signal_signal_process(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, Eina_Bool recurse) +_efl_ui_layout_base_efl_layout_signal_signal_process(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, Eina_Bool recurse) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_layout_signal_process(wd->resize_obj, recurse); @@ -2420,7 +2421,7 @@ _efl_ui_layout_efl_layout_signal_signal_process(Eo *obj, Efl_Ui_Layout_Data *pd /* Efl.Part implementation */ EOLIAN static Eo * -_efl_ui_layout_efl_part_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part) +_efl_ui_layout_base_efl_part_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part) { Efl_Canvas_Layout_Part_Type type = EFL_CANVAS_LAYOUT_PART_TYPE_NONE; @@ -2485,7 +2486,7 @@ _efl_ui_layout_efl_part_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUS } static const char * -_efl_ui_layout_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_base_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) { const char *part = NULL; if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_FALSE)) @@ -2494,7 +2495,7 @@ _efl_ui_layout_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EI } static const char * -_efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) +_efl_ui_layout_base_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED) { const char *part = NULL; if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE)) @@ -2518,11 +2519,11 @@ _efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_ ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(part_typename, typename, ELM_PART_OVERRIDE_INTERNALS_FETCH(CLASS, TYPENAME)) \ /* Efl.Ui.Layout_Part_Content */ -CONTENT_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data) +CONTENT_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT_BASE, Efl_Ui_Layout_Data) /* Efl.Ui.Layout_Part_Text */ -TEXT_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data) -MARKUP_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data) +TEXT_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT_BASE, Efl_Ui_Layout_Data) +MARKUP_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT_BASE, Efl_Ui_Layout_Data) EOLIAN static const char * _efl_ui_layout_part_text_efl_ui_l10n_l10n_text_get(const Eo *obj, void *_pd EINA_UNUSED, const char **domain) @@ -2539,9 +2540,9 @@ _efl_ui_layout_part_text_efl_ui_l10n_l10n_text_set(Eo *obj, void *_pd EINA_UNUSE } /* Efl.Ui.Layout_Part_Legacy */ -CONTENT_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data) -TEXT_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data) -MARKUP_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data) +CONTENT_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT_BASE, Efl_Ui_Layout_Data) +TEXT_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT_BASE, Efl_Ui_Layout_Data) +MARKUP_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT_BASE, Efl_Ui_Layout_Data) EOLIAN static const char * _efl_ui_layout_part_legacy_efl_ui_l10n_l10n_text_get(const Eo *obj, void *_pd EINA_UNUSED, const char **domain) @@ -2600,15 +2601,16 @@ EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX) ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX) -#define EFL_UI_LAYOUT_EXTRA_OPS \ - EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_layout), \ - ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_layout), \ - ELM_PART_TEXT_DEFAULT_OPS(efl_ui_layout), \ +#define EFL_UI_LAYOUT_BASE_EXTRA_OPS \ + EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_layout_base), \ + ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_layout_base), \ + ELM_PART_TEXT_DEFAULT_OPS(efl_ui_layout_base), \ ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \ ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \ EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), \ - EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_layout_efl_object_dbg_info_get) + EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_layout_base_efl_object_dbg_info_get) +#include "efl_ui_layout_base.eo.c" #include "efl_ui_layout.eo.c" #include "efl_ui_layout_legacy.eo.h" diff --git a/src/lib/elementary/efl_ui_layout.eo b/src/lib/elementary/efl_ui_layout.eo index b46af45a01..35f239e8c1 100644 --- a/src/lib/elementary/efl_ui_layout.eo +++ b/src/lib/elementary/efl_ui_layout.eo @@ -1,87 +1,13 @@ import efl_ui; -class @beta Efl.Ui.Layout extends Efl.Ui.Widget implements Efl.Container, Efl.File, - Efl.Ui.View, Efl.Ui.Property_Bind, Efl.Ui.Factory_Bind, - Efl.Layout.Calc, Efl.Layout.Signal, - Efl.Layout.Group +class @beta Efl.Ui.Layout extends Efl.Ui.Layout_Base implements Efl.File { [[Elementary layout class]] - methods { - @property theme { - [[The theme of this widget, defines which edje group will be used. - - Based on the type of widget ($klass), a given $group and a - $style (usually "default"), the edje group name will be formed - for this object. - - Widgets that inherit from this class will call this function - automatically so it should not be called by applications, unless - you are dealing directly with a @Efl.Ui.Layout object. - ]] - set { - [[Sets the edje group from the elementary theme that will be used - as layout. Note that $style will be the new style of this object, - as in an @Efl.Ui.Widget.style. As a consequence this function can - only be called during construction of the object, before finalize. - - If this returns $false the widget is very likely to become - non-functioning. - ]] - return: Efl.Ui.Theme_Apply_Result(0); - [[Whether the style was successfully applied or not, see - the values of @Efl.Ui.Theme_Apply_Result for more information.]] - } - /* - TODO: - get { - [[Get information about the current theme in use.]] - } - */ - values { - klass: string; [[The class of the group, eg. "button".]] - group: string("base"); [[The group, eg. "base".]] - style: string("default"); [[The style to use, eg "default".]] - } - } - } + data: null; implements { - class.constructor; - Efl.Object.constructor; - Efl.Object.finalize; Efl.File.file { get; set; } Efl.File.key { get; set; } Efl.File.mmap { get; set; } Efl.File.load; - Efl.Canvas.Group.group_calculate; - Efl.Layout.Calc.calc_freeze; - Efl.Layout.Calc.calc_thaw; - Efl.Layout.Calc.calc_auto_update_hints { get; set; } - Efl.Layout.Calc.calc_size_min; - Efl.Layout.Calc.calc_parts_extends; - Efl.Layout.Calc.calc_force; - Efl.Layout.Signal.signal_callback_add; - Efl.Layout.Signal.signal_callback_del; - Efl.Layout.Signal.signal_emit; - Efl.Layout.Signal.message_send; - Efl.Layout.Signal.signal_process; - Efl.Layout.Group.group_data { get; } - Efl.Layout.Group.group_size_min { get; } - Efl.Layout.Group.group_size_max { get; } - Efl.Layout.Group.part_exist { get; } - Efl.Ui.Widget.widget_sub_object_add; - Efl.Ui.Widget.theme_apply; - Efl.Ui.Widget.on_disabled_update; - Efl.Ui.Widget.widget_sub_object_del; - Efl.Ui.Focus.Object.on_focus_update; - Efl.Container.content_count; - Efl.Container.content_remove; - Efl.Container.content_iterate; - Efl.Part.part_get; - Efl.Ui.View.model { get; set; } - Efl.Ui.Property_Bind.property_bind; - Efl.Ui.Factory_Bind.factory_bind; - } - events { - theme,changed: void; [[Called when theme changed]] } } diff --git a/src/lib/elementary/efl_ui_layout_base.eo b/src/lib/elementary/efl_ui_layout_base.eo new file mode 100644 index 0000000000..e2384c06e0 --- /dev/null +++ b/src/lib/elementary/efl_ui_layout_base.eo @@ -0,0 +1,85 @@ +import efl_ui; + +abstract @beta Efl.Ui.Layout_Base extends Efl.Ui.Widget implements Efl.Container, + Efl.Ui.View, Efl.Ui.Property_Bind, Efl.Ui.Factory_Bind, + Efl.Layout.Calc, Efl.Layout.Signal, + Efl.Layout.Group +{ + [[Elementary layout abstract]] + eo_prefix: efl_ui_layout; + data: Efl_Ui_Layout_Data; + methods { + @property theme { + [[The theme of this widget, defines which edje group will be used. + + Based on the type of widget ($klass), a given $group and a + $style (usually "default"), the edje group name will be formed + for this object. + + Widgets that inherit from this class will call this function + automatically so it should not be called by applications, unless + you are dealing directly with a @Efl.Ui.Layout object. + ]] + set { + [[Sets the edje group from the elementary theme that will be used + as layout. Note that $style will be the new style of this object, + as in an @Efl.Ui.Widget.style. As a consequence this function can + only be called during construction of the object, before finalize. + + If this returns $false the widget is very likely to become + non-functioning. + ]] + return: Efl.Ui.Theme_Apply_Result(0); + [[Whether the style was successfully applied or not, see + the values of @Efl.Ui.Theme_Apply_Result for more information.]] + } + /* + TODO: + get { + [[Get information about the current theme in use.]] + } + */ + values { + klass: string; [[The class of the group, eg. "button".]] + group: string("base"); [[The group, eg. "base".]] + style: string("default"); [[The style to use, eg "default".]] + } + } + } + implements { + class.constructor; + Efl.Object.constructor; + Efl.Object.finalize; + Efl.Canvas.Group.group_calculate; + Efl.Layout.Calc.calc_freeze; + Efl.Layout.Calc.calc_thaw; + Efl.Layout.Calc.calc_auto_update_hints { get; set; } + Efl.Layout.Calc.calc_size_min; + Efl.Layout.Calc.calc_parts_extends; + Efl.Layout.Calc.calc_force; + Efl.Layout.Signal.signal_callback_add; + Efl.Layout.Signal.signal_callback_del; + Efl.Layout.Signal.signal_emit; + Efl.Layout.Signal.message_send; + Efl.Layout.Signal.signal_process; + Efl.Layout.Group.group_data { get; } + Efl.Layout.Group.group_size_min { get; } + Efl.Layout.Group.group_size_max { get; } + Efl.Layout.Group.part_exist { get; } + Efl.Ui.Widget.widget_sub_object_add; + Efl.Ui.Widget.theme_apply; + Efl.Ui.Widget.on_disabled_update; + Efl.Ui.Widget.widget_sub_object_del; + Efl.Ui.Focus.Object.on_focus_update; + Efl.Container.content_count; + Efl.Container.content_remove; + Efl.Container.content_iterate; + Efl.Part.part_get; + Efl.Ui.View.model { get; set; } + Efl.Ui.Property_Bind.property_bind; + Efl.Ui.Factory_Bind.factory_bind; + } + events { + theme,changed: void; [[Called when theme changed]] + } +} diff --git a/src/lib/elementary/efl_ui_layout_pack.c b/src/lib/elementary/efl_ui_layout_pack.c index e01ba6616f..9e89df4eb5 100644 --- a/src/lib/elementary/efl_ui_layout_pack.c +++ b/src/lib/elementary/efl_ui_layout_pack.c @@ -67,7 +67,7 @@ EOLIAN static void _efl_ui_layout_part_box_real_part_set(Eo *obj, Efl_Ui_Layout_Box_Data *pd, Eo *layout, const char *part) { pd->obj = layout; - pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_CLASS, obj); + pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_BASE_CLASS, obj); eina_stringshare_replace(&pd->part, part); pd->temp = 1; } @@ -225,7 +225,7 @@ EOLIAN static void _efl_ui_layout_part_table_real_part_set(Eo *obj, Efl_Ui_Layout_Table_Data *pd, Eo *layout, const char *part) { pd->obj = layout; - pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_CLASS, obj); + pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_BASE_CLASS, obj); eina_stringshare_replace(&pd->part, part); pd->temp = 1; } diff --git a/src/lib/elementary/efl_ui_navigation_layout.c b/src/lib/elementary/efl_ui_navigation_layout.c index 843dcbbe34..16bcea2462 100644 --- a/src/lib/elementary/efl_ui_navigation_layout.c +++ b/src/lib/elementary/efl_ui_navigation_layout.c @@ -15,7 +15,7 @@ EOLIAN static void _efl_ui_navigation_layout_bar_set(Eo *obj, Efl_Ui_Navigation_Layout_Data *pd, Efl_Ui_Layout *bar) { - EINA_SAFETY_ON_FALSE_RETURN(efl_isa(bar, EFL_UI_LAYOUT_CLASS)); + EINA_SAFETY_ON_FALSE_RETURN(efl_isa(bar, EFL_UI_LAYOUT_BASE_CLASS)); efl_content_set(efl_part(obj, "efl.bar"), bar); pd->bar = bar; diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo index 7394a61929..c4f4bf955b 100644 --- a/src/lib/elementary/efl_ui_text.eo +++ b/src/lib/elementary/efl_ui_text.eo @@ -1,7 +1,7 @@ /* FIXME - Text object must stop using elm_general! */ import elm_general; -class @beta Efl.Ui.Text extends Efl.Ui.Layout implements Efl.Ui.Clickable, +class @beta Efl.Ui.Text extends Efl.Ui.Layout_Base implements Efl.Ui.Clickable, Efl.Access.Text, Efl.Access.Editable.Text, Efl.File, Efl.Ui.Selectable, Efl.Text_Interactive { diff --git a/src/lib/elementary/efl_ui_video.eo b/src/lib/elementary/efl_ui_video.eo index d418cb4511..7ef6975f3a 100644 --- a/src/lib/elementary/efl_ui_video.eo +++ b/src/lib/elementary/efl_ui_video.eo @@ -1,4 +1,4 @@ -class @beta Efl.Ui.Video extends Efl.Ui.Layout implements Efl.Player, Efl.Access.Widget.Action +class @beta Efl.Ui.Video extends Efl.Ui.Layout_Base implements Efl.File, Efl.Player, Efl.Access.Widget.Action { [[Efl UI video class]] legacy_prefix: elm_video; diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 2f51767e37..fe65abbd87 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -236,7 +236,7 @@ _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *eo_it) { Elm_Widget_Item_Data *it = efl_data_scope_get(eo_it, ELM_WIDGET_ITEM_CLASS); - if (efl_isa(it->view, EFL_UI_LAYOUT_CLASS)) + if (efl_isa(it->view, EFL_UI_LAYOUT_BASE_CLASS)) str = edje_object_data_get(elm_layout_edje_get(it->view), "focus_highlight"); else str = edje_object_data_get(it->view, "focus_highlight"); @@ -2821,7 +2821,7 @@ elm_widget_part_text_set(Eo *obj, const char *part, const char *label) /* legacy support: combobox was special (internal entry is text object). */ if (efl_isa(obj, ELM_COMBOBOX_CLASS)) _elm_combobox_part_text_set(obj, part, label); - else if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + else if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) elm_layout_text_set(obj, part, label); } @@ -2831,7 +2831,7 @@ elm_widget_part_text_get(const Eo *obj, const char *part) /* legacy support: combobox was special (internal entry is text object). */ if (efl_isa(obj, ELM_COMBOBOX_CLASS)) return _elm_combobox_part_text_get(obj, part); - else if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + else if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) return elm_layout_text_get(obj, part); return NULL; @@ -3486,7 +3486,7 @@ elm_widget_focus_highlight_focus_part_geometry_get(const Evas_Object *obj, if (!(target_hl_part = edje_object_data_get(edje_obj, "focus_part"))) return; } - else if (obj && efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + else if (obj && efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) { edje_obj = elm_layout_edje_get(obj); if (!(target_hl_part = elm_layout_data_get(obj, "focus_part"))) @@ -5671,7 +5671,7 @@ EAPI void elm_widget_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content) { ELM_WIDGET_CHECK(obj); - if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) { elm_layout_content_set(obj, part, content); return; @@ -5689,7 +5689,7 @@ EAPI Evas_Object * elm_widget_content_part_get(const Evas_Object *obj, const char *part) { ELM_WIDGET_CHECK(obj) NULL; - if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) return elm_layout_content_get(obj, part); if (!efl_isa(obj, EFL_PART_INTERFACE)) return NULL; if (!part) @@ -5704,7 +5704,7 @@ EAPI Evas_Object * elm_widget_content_part_unset(Evas_Object *obj, const char *part) { ELM_WIDGET_CHECK(obj) NULL; - if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) return elm_layout_content_unset(obj, part); if (!efl_isa(obj, EFL_PART_INTERFACE)) return NULL; if (!part) @@ -5720,7 +5720,7 @@ elm_widget_signal_emit(Eo *obj, const char *emission, const char *source) { ELM_WIDGET_CHECK(obj); - if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) elm_layout_signal_emit(obj, emission, source); else if (evas_object_smart_type_check(obj, "elm_icon")) { diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo index d5cbe8202b..d91c4232fd 100644 --- a/src/lib/elementary/elm_entry.eo +++ b/src/lib/elementary/elm_entry.eo @@ -3,7 +3,7 @@ import elm_general; type Elm_Entry_Item_Provider_Cb: __undefined_type; [[Elementary entry item provider callback type]] type Elm_Entry_Filter_Cb: __undefined_type; [[Elementary entry filter callback type]] -class Elm.Entry extends Efl.Ui.Layout implements Elm.Interface_Scrollable, Efl.Ui.Clickable, +class Elm.Entry extends Efl.Ui.Layout_Base implements Elm.Interface_Scrollable, Efl.Ui.Clickable, Efl.Access.Text, Efl.Access.Editable.Text, Efl.File, Efl.Ui.Selectable, Efl.Ui.Scrollable, Efl.Access.Widget.Action, Efl.Ui.Legacy diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index e6f4ec1d8c..86c3ab22eb 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -456,7 +456,7 @@ _item_content_realize(Elm_Gen_Item *it, ELM_WIDGET_DATA_GET_OR_RETURN(content, wd); // FIXME : Layout need sizing eval before group calculate - if (efl_class_get(content) == EFL_UI_LAYOUT_CLASS) + if (efl_class_get(content) == EFL_UI_LAYOUT_BASE_CLASS) elm_layout_sizing_eval(content); _widget_calculate_recursive(content); diff --git a/src/lib/elementary/elm_layout.h b/src/lib/elementary/elm_layout.h index a59fd7c650..2947f169f8 100644 --- a/src/lib/elementary/elm_layout.h +++ b/src/lib/elementary/elm_layout.h @@ -168,6 +168,7 @@ #include #ifdef EFL_EO_API_SUPPORT +#include #include #endif #ifndef EFL_NOLEGACY_API_SUPPORT diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 6cab53b217..71e4325221 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -1477,7 +1477,7 @@ elm_object_domain_translatable_part_text_set(Evas_Object *obj, const char *part, { if (!part) part = efl_ui_widget_default_text_part_get(obj); - else if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + else if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) _elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE); elm_widget_part_translatable_text_set(obj, part, text, domain); @@ -1499,7 +1499,7 @@ elm_object_translatable_part_text_get(const Evas_Object *obj, const char *part) { if (!part) part = efl_ui_widget_default_text_part_get(obj); - else if (efl_isa(obj, EFL_UI_LAYOUT_CLASS)) + else if (efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS)) _elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE); return elm_widget_part_translatable_text_get(obj, part, NULL); diff --git a/src/lib/elementary/elm_thumb.eo b/src/lib/elementary/elm_thumb.eo index 22fd890377..76837b35ce 100644 --- a/src/lib/elementary/elm_thumb.eo +++ b/src/lib/elementary/elm_thumb.eo @@ -1,4 +1,4 @@ -class Elm.Thumb extends Efl.Ui.Layout implements Efl.File, Efl.Ui.Clickable, +class Elm.Thumb extends Efl.Ui.Layout_Base implements Efl.File, Efl.Ui.Clickable, Efl.Ui.Draggable, Efl.Ui.Legacy { [[Elementary thumbnail class]] diff --git a/src/lib/elementary/elm_widget_layout.h b/src/lib/elementary/elm_widget_layout.h index 96a2cd0b94..5628067691 100644 --- a/src/lib/elementary/elm_widget_layout.h +++ b/src/lib/elementary/elm_widget_layout.h @@ -78,10 +78,10 @@ typedef struct _Elm_Layout_Smart_Data */ #define EFL_UI_LAYOUT_DATA_GET(o, sd) \ - Efl_Ui_Layout_Data * sd = efl_data_scope_get(o, EFL_UI_LAYOUT_CLASS) + Efl_Ui_Layout_Data * sd = efl_data_scope_get(o, EFL_UI_LAYOUT_BASE_CLASS) #define EFL_UI_LAYOUT_CHECK(obj) \ - if (EINA_UNLIKELY(!efl_isa(obj, EFL_UI_LAYOUT_CLASS))) \ + if (EINA_UNLIKELY(!efl_isa(obj, EFL_UI_LAYOUT_BASE_CLASS))) \ return #endif diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 4363984615..9c7cc1ed90 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -138,6 +138,7 @@ pub_eo_files = [ 'efl_ui_image.eo', 'efl_ui_image_zoomable.eo', 'efl_ui_layout.eo', + 'efl_ui_layout_base.eo', 'efl_ui_nstate.eo', 'efl_ui_navigation_bar.eo', 'efl_ui_navigation_bar_part.eo',