diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2019-07-30 13:11:54 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2019-07-30 13:12:52 -0400 |
commit | 4d79efce64db8c9be8a79a299fbeb2ae97b60af2 (patch) | |
tree | 6ad3b81928b82bc95cf8d18a121c9363df309e74 /src/lib/elementary/efl_ui_layout_legacy_eo.c | |
parent | 7e517e2a1196207bbfe76ce9ab12be3093d9afc5 (diff) | |
download | efl-4d79efce64db8c9be8a79a299fbeb2ae97b60af2.tar.gz |
elm_layout: create a mixin to provide elm_layout_sizing_eval
Summary:
this removes elm_layout_sizing_eval entirely from the implementation
hierarchy of any efl_ui-based widgets, ensuring that future code will
correctly use efl_canvas_group functionality
Depends on D9439
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl_widgets
Maniphest Tasks: T8059
Differential Revision: https://phab.enlightenment.org/D9440
Diffstat (limited to 'src/lib/elementary/efl_ui_layout_legacy_eo.c')
-rw-r--r-- | src/lib/elementary/efl_ui_layout_legacy_eo.c | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/src/lib/elementary/efl_ui_layout_legacy_eo.c b/src/lib/elementary/efl_ui_layout_legacy_eo.c index 6bec4f9f78..33056b5c03 100644 --- a/src/lib/elementary/efl_ui_layout_legacy_eo.c +++ b/src/lib/elementary/efl_ui_layout_legacy_eo.c @@ -1,7 +1,6 @@ Efl_Object *_efl_ui_layout_legacy_efl_object_constructor(Eo *obj, void *pd); - static Eina_Bool _efl_ui_layout_legacy_class_initializer(Efl_Class *klass) { @@ -32,4 +31,40 @@ static const Efl_Class_Description _efl_ui_layout_legacy_class_desc = { NULL }; -EFL_DEFINE_CLASS(efl_ui_layout_legacy_class_get, &_efl_ui_layout_legacy_class_desc, EFL_UI_LAYOUT_CLASS, EFL_UI_LEGACY_INTERFACE, NULL); +EFL_DEFINE_CLASS(efl_ui_layout_legacy_class_get, &_efl_ui_layout_legacy_class_desc, EFL_UI_LAYOUT_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); + +static void _elm_layout_sizing_eval(Eo *obj, Elm_Layout_Data *ld); +EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval); + +static Eina_Bool +_elm_layout_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_LAYOUT_EXTRA_OPS +#define ELM_LAYOUT_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), + EFL_OBJECT_OP_FUNC(efl_canvas_group_change, _elm_layout_efl_canvas_group_change), + ELM_LAYOUT_EXTRA_OPS + ); + opsp = &ops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_layout_class_desc = { + EO_VERSION, + "Elm.Layout", + EFL_CLASS_TYPE_MIXIN, + sizeof(Elm_Layout_Data), + _elm_layout_class_initializer, + NULL, + NULL +}; + +EFL_DEFINE_CLASS(elm_layout_mixin_get, &_elm_layout_class_desc, NULL, NULL); |