summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_layout_legacy_eo.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2019-07-30 13:11:54 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-07-30 13:12:52 -0400
commit4d79efce64db8c9be8a79a299fbeb2ae97b60af2 (patch)
tree6ad3b81928b82bc95cf8d18a121c9363df309e74 /src/lib/elementary/efl_ui_layout_legacy_eo.c
parent7e517e2a1196207bbfe76ce9ab12be3093d9afc5 (diff)
downloadefl-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.c39
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);