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
This commit is contained in:
Mike Blumenkrantz 2019-07-30 13:11:54 -04:00
parent 7e517e2a11
commit 4d79efce64
50 changed files with 126 additions and 66 deletions

View File

@ -32,4 +32,4 @@ static const Efl_Class_Description _efl_ui_bg_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_bg_legacy_class_get, &_efl_ui_bg_legacy_class_desc, EFL_UI_BG_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_bg_legacy_class_get, &_efl_ui_bg_legacy_class_desc, EFL_UI_BG_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -44,4 +44,4 @@ static const Efl_Class_Description _efl_ui_button_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_button_legacy_class_get, &_efl_ui_button_legacy_class_desc, EFL_UI_BUTTON_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_button_legacy_class_get, &_efl_ui_button_legacy_class_desc, EFL_UI_BUTTON_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -44,4 +44,4 @@ static const Efl_Class_Description _efl_ui_check_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_check_legacy_class_get, &_efl_ui_check_legacy_class_desc, EFL_UI_CHECK_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_check_legacy_class_get, &_efl_ui_check_legacy_class_desc, EFL_UI_CHECK_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -32,4 +32,4 @@ static const Efl_Class_Description _efl_ui_frame_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_frame_legacy_class_get, &_efl_ui_frame_legacy_class_desc, EFL_UI_FRAME_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_frame_legacy_class_get, &_efl_ui_frame_legacy_class_desc, EFL_UI_FRAME_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -160,7 +160,7 @@ _part_cursor_free(Efl_Ui_Layout_Sub_Object_Cursor *pc)
}
static void
_sizing_eval(Evas_Object *obj, Efl_Ui_Layout_Data *sd)
_sizing_eval(Evas_Object *obj, Efl_Ui_Layout_Data *sd, Elm_Layout_Data *ld)
{
int minh = 0, minw = 0;
int rest_w = 0, rest_h = 0;
@ -179,7 +179,7 @@ _sizing_eval(Evas_Object *obj, Efl_Ui_Layout_Data *sd)
}
elm_coords_finger_size_adjust(sd->finger_size_multiplier_x, &rest_w,
sd->finger_size_multiplier_y, &rest_h);
if (elm_widget_is_legacy(obj))
if (ld)
sz = efl_gfx_hint_size_combined_min_get(obj);
else
sz = efl_gfx_hint_size_min_get(obj);
@ -205,8 +205,13 @@ _sizing_eval(Evas_Object *obj, Efl_Ui_Layout_Data *sd)
if (sd->finger_size_multiplier_y)
elm_coords_finger_size_adjust(sd->finger_size_multiplier_x, NULL,
sd->finger_size_multiplier_y, &minh);
evas_object_size_hint_min_set(obj, minw, minh);
efl_gfx_hint_size_restricted_min_set(obj, EINA_SIZE2D(minw, minh));
if (ld)
{
efl_gfx_hint_size_min_set(obj, EINA_SIZE2D(minw, minh));
}
sd->restricted_calc_w = sd->restricted_calc_h = EINA_FALSE;
}
@ -879,11 +884,11 @@ _efl_ui_layout_efl_canvas_group_group_calculate(Eo *obj, void *_pd EINA_UNUSED)
EOLIAN static void
_efl_ui_layout_base_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Layout_Data *sd)
{
Eina_Bool legacy = elm_widget_is_legacy(obj);
Elm_Layout_Data *ld = efl_data_scope_safe_get(obj, ELM_LAYOUT_MIXIN);
efl_canvas_group_need_recalculate_set(obj, EINA_FALSE);
if ((!legacy) || sd->needs_size_calc)
_sizing_eval(obj, sd);
sd->needs_size_calc = EINA_FALSE;
if ((!ld) || ld->needs_size_calc)
_sizing_eval(obj, sd, ld);
if (ld) ld->needs_size_calc = EINA_FALSE;
}
EOLIAN static void
@ -1781,19 +1786,26 @@ _efl_ui_layout_base_efl_layout_group_part_exist_get(const Eo *obj, Efl_Ui_Layout
return efl_layout_group_part_exist_get(wd->resize_obj, part);
}
EOLIAN static void
_elm_layout_efl_canvas_group_change(Eo *obj, Elm_Layout_Data *ld)
{
Efl_Ui_Layout_Data *sd;
if (!efl_finalized_get(obj)) return;
sd = efl_data_scope_safe_get(obj, EFL_UI_LAYOUT_BASE_CLASS);
if (sd->frozen) return;
ld->needs_size_calc = EINA_TRUE;
efl_canvas_group_change(efl_super(obj, ELM_LAYOUT_MIXIN));
}
/* layout's sizing evaluation is deferred. evaluation requests are
* queued up and only flag the object as 'changed'. when it comes to
* Evas's rendering phase, it will be addressed, finally (see
* _efl_ui_layout_smart_calculate()). */
static void
_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Layout_Data *sd)
EOLIAN static void
_elm_layout_sizing_eval(Eo *obj, Elm_Layout_Data *ld)
{
if (!efl_finalized_get(obj)) return;
if (sd->frozen) return;
if (sd->needs_size_calc) return;
sd->needs_size_calc = EINA_TRUE;
evas_object_smart_changed(obj);
_elm_layout_efl_canvas_group_change(obj, ld);
}
EAPI void
@ -2538,6 +2550,13 @@ _efl_ui_layout_base_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNU
efl_ui_widget_theme_apply(eo);
efl_canvas_group_change(obj);
Elm_Layout_Data *ld = efl_data_scope_safe_get(obj, ELM_LAYOUT_MIXIN);
/* need to explicitly set this here to permit group_calc since efl_canvas_group_change
* blocks non-finalized objects and the object will not be finalized until after this
* function returns
*/
if (ld) ld->needs_size_calc = EINA_TRUE;
win = elm_widget_top_get(obj);
if (efl_isa(win, EFL_UI_WIN_CLASS))
efl_ui_layout_theme_rotation_apply(obj, efl_ui_win_rotation_get(win));
@ -2788,7 +2807,6 @@ _efl_ui_layout_base_theme_rotation_apply(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UN
/* Internal EO APIs and hidden overrides */
EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval)
EFL_FUNC_BODY_CONST(elm_layout_text_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
@ -2801,9 +2819,9 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
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_base_efl_object_dbg_info_get)
#include "efl_ui_layout_base.eo.c"
#include "efl_ui_layout.eo.c"

View File

@ -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);

View File

@ -19,8 +19,10 @@ typedef Eo Efl_Ui_Layout_Legacy;
* @ingroup Efl_Ui_Layout_Legacy
*/
#define EFL_UI_LAYOUT_LEGACY_CLASS efl_ui_layout_legacy_class_get()
#define ELM_LAYOUT_MIXIN elm_layout_mixin_get()
EWAPI const Efl_Class *efl_ui_layout_legacy_class_get(void);
EWAPI const Efl_Class *elm_layout_mixin_get(void);
#endif /* EFL_BETA_API_SUPPORT */
#endif

View File

@ -32,4 +32,4 @@ static const Efl_Class_Description _efl_ui_panes_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_panes_legacy_class_get, &_efl_ui_panes_legacy_class_desc, EFL_UI_PANES_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_panes_legacy_class_get, &_efl_ui_panes_legacy_class_desc, EFL_UI_PANES_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -44,4 +44,4 @@ static const Efl_Class_Description _efl_ui_progressbar_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_progressbar_legacy_class_get, &_efl_ui_progressbar_legacy_class_desc, EFL_UI_PROGRESSBAR_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_progressbar_legacy_class_get, &_efl_ui_progressbar_legacy_class_desc, EFL_UI_PROGRESSBAR_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -44,4 +44,4 @@ static const Efl_Class_Description _efl_ui_radio_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_radio_legacy_class_get, &_efl_ui_radio_legacy_class_desc, EFL_UI_RADIO_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_radio_legacy_class_get, &_efl_ui_radio_legacy_class_desc, EFL_UI_RADIO_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -32,4 +32,4 @@ static const Efl_Class_Description _efl_ui_textpath_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_textpath_legacy_class_get, &_efl_ui_textpath_legacy_class_desc, EFL_UI_TEXTPATH_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_textpath_legacy_class_get, &_efl_ui_textpath_legacy_class_desc, EFL_UI_TEXTPATH_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -32,4 +32,4 @@ static const Efl_Class_Description _efl_ui_video_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_video_legacy_class_get, &_efl_ui_video_legacy_class_desc, EFL_UI_VIDEO_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_video_legacy_class_get, &_efl_ui_video_legacy_class_desc, EFL_UI_VIDEO_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -32,4 +32,4 @@ static const Efl_Class_Description _efl_ui_win_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(efl_ui_win_legacy_class_get, &_efl_ui_win_legacy_class_desc, EFL_UI_WIN_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(efl_ui_win_legacy_class_get, &_efl_ui_win_legacy_class_desc, EFL_UI_WIN_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -77,6 +77,6 @@ static const Efl_Class_Description _elm_actionslider_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_actionslider_class_get, &_elm_actionslider_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_actionslider_class_get, &_elm_actionslider_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_actionslider_eo.legacy.c"

View File

@ -50,6 +50,6 @@ static const Efl_Class_Description _elm_bubble_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_bubble_class_get, &_elm_bubble_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_bubble_class_get, &_elm_bubble_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_bubble_eo.legacy.c"

View File

@ -207,6 +207,6 @@ static const Efl_Class_Description _elm_calendar_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_calendar_class_get, &_elm_calendar_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_calendar_class_get, &_elm_calendar_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_calendar_eo.legacy.c"

View File

@ -244,6 +244,6 @@ static const Efl_Class_Description _elm_clock_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_clock_class_get, &_elm_clock_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_clock_class_get, &_elm_clock_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_clock_eo.legacy.c"

View File

@ -24,4 +24,4 @@ static const Efl_Class_Description _elm_code_widget_legacy_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_code_widget_legacy_class_get, &_elm_code_widget_legacy_class_desc, ELM_CODE_WIDGET_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_code_widget_legacy_class_get, &_elm_code_widget_legacy_class_desc, ELM_CODE_WIDGET_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -146,6 +146,6 @@ static const Efl_Class_Description _elm_colorselector_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_colorselector_class_get, &_elm_colorselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_colorselector_class_get, &_elm_colorselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_colorselector_eo.legacy.c"

View File

@ -44,4 +44,4 @@ static const Efl_Class_Description _elm_conformant_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_conformant_class_get, &_elm_conformant_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_conformant_class_get, &_elm_conformant_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -220,6 +220,6 @@ static const Efl_Class_Description _elm_ctxpopup_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_ctxpopup_class_get, &_elm_ctxpopup_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_ctxpopup_class_get, &_elm_ctxpopup_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_ctxpopup_eo.legacy.c"

View File

@ -126,6 +126,6 @@ static const Efl_Class_Description _elm_dayselector_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_dayselector_class_get, &_elm_dayselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_dayselector_class_get, &_elm_dayselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_dayselector_eo.legacy.c"

View File

@ -1188,6 +1188,6 @@ static const Efl_Class_Description _elm_entry_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_entry_class_get, &_elm_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_TEXT_INTERFACE, EFL_ACCESS_EDITABLE_TEXT_INTERFACE, EFL_FILE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_SCROLLABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_entry_class_get, &_elm_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_TEXT_INTERFACE, EFL_ACCESS_EDITABLE_TEXT_INTERFACE, EFL_FILE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_SCROLLABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_entry_eo.legacy.c"

View File

@ -146,4 +146,4 @@ static const Efl_Class_Description _elm_fileselector_button_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_fileselector_button_class_get, &_elm_fileselector_button_class_desc, EFL_UI_BUTTON_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_fileselector_button_class_get, &_elm_fileselector_button_class_desc, EFL_UI_BUTTON_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -88,4 +88,4 @@ static const Efl_Class_Description _elm_fileselector_entry_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_fileselector_entry_class_get, &_elm_fileselector_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_fileselector_entry_class_get, &_elm_fileselector_entry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -202,6 +202,6 @@ static const Efl_Class_Description _elm_fileselector_class_desc = {
_elm_fileselector_class_destructor
};
EFL_DEFINE_CLASS(elm_fileselector_class_get, &_elm_fileselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_fileselector_class_get, &_elm_fileselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_FILESELECTOR_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_fileselector_eo.legacy.c"

View File

@ -154,6 +154,6 @@ static const Efl_Class_Description _elm_flipselector_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_flipselector_class_get, &_elm_flipselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_RANGE_INTERACTIVE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_flipselector_class_get, &_elm_flipselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_RANGE_INTERACTIVE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_flipselector_eo.legacy.c"

View File

@ -512,6 +512,6 @@ static const Efl_Class_Description _elm_gengrid_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_gengrid_class_get, &_elm_gengrid_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_gengrid_class_get, &_elm_gengrid_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_gengrid_eo.legacy.c"

View File

@ -681,6 +681,6 @@ static const Efl_Class_Description _elm_genlist_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_genlist_class_get, &_elm_genlist_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_genlist_class_get, &_elm_genlist_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_genlist_eo.legacy.c"

View File

@ -92,6 +92,6 @@ static const Efl_Class_Description _elm_hover_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_hover_class_get, &_elm_hover_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_hover_class_get, &_elm_hover_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_hover_eo.legacy.c"

View File

@ -189,6 +189,6 @@ static const Efl_Class_Description _elm_hoversel_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_hoversel_class_get, &_elm_hoversel_class_desc, EFL_UI_BUTTON_LEGACY_CLASS, EFL_UI_SELECTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_hoversel_class_get, &_elm_hoversel_class_desc, EFL_UI_BUTTON_LEGACY_CLASS, EFL_UI_SELECTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_hoversel_eo.legacy.c"

View File

@ -322,6 +322,6 @@ static const Efl_Class_Description _elm_index_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_index_class_get, &_elm_index_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LAYOUT_ORIENTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_index_class_get, &_elm_index_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LAYOUT_ORIENTABLE_INTERFACE, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_index_eo.legacy.c"

View File

@ -49,6 +49,6 @@ static const Efl_Class_Description _elm_inwin_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_inwin_class_get, &_elm_inwin_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, EFL_CONTENT_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_inwin_class_get, &_elm_inwin_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, EFL_CONTENT_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_inwin_eo.legacy.c"

View File

@ -214,6 +214,6 @@ static const Efl_Class_Description _elm_label_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_label_class_get, &_elm_label_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_label_class_get, &_elm_label_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_label_eo.legacy.c"

View File

@ -363,6 +363,6 @@ static const Efl_Class_Description _elm_list_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_list_class_get, &_elm_list_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_list_class_get, &_elm_list_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_SELECTABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
#include "elm_list_eo.legacy.c"

View File

@ -219,6 +219,6 @@ static const Efl_Class_Description _elm_multibuttonentry_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_multibuttonentry_class_get, &_elm_multibuttonentry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_multibuttonentry_class_get, &_elm_multibuttonentry_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_INPUT_CLICKABLE_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_multibuttonentry_eo.legacy.c"

View File

@ -228,6 +228,6 @@ static const Efl_Class_Description _elm_naviframe_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_naviframe_class_get, &_elm_naviframe_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_naviframe_class_get, &_elm_naviframe_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_naviframe_eo.legacy.c"

View File

@ -205,6 +205,6 @@ static const Efl_Class_Description _elm_panel_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_panel_class_get, &_elm_panel_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_panel_class_get, &_elm_panel_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_LAYER_MIXIN, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_panel_eo.legacy.c"

View File

@ -70,4 +70,4 @@ static const Efl_Class_Description _elm_player_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_player_class_get, &_elm_player_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_player_class_get, &_elm_player_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -234,6 +234,6 @@ static const Efl_Class_Description _elm_popup_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_popup_class_get, &_elm_popup_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_popup_class_get, &_elm_popup_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_popup_eo.legacy.c"

View File

@ -163,6 +163,7 @@
# include "efl_ui_homogeneous_model.eo.h"
# include "efl_ui_exact_model.eo.h"
# include "efl_ui_average_model.eo.h"
#include "efl_ui_layout_legacy_eo.h"
extern const char *_efl_model_property_itemw;
extern const char *_efl_model_property_itemh;

View File

@ -51,6 +51,6 @@ static const Efl_Class_Description _elm_route_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_route_class_get, &_elm_route_class_desc, EFL_UI_WIDGET_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_route_class_get, &_elm_route_class_desc, EFL_UI_WIDGET_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_route_eo.legacy.c"

View File

@ -153,6 +153,6 @@ static const Efl_Class_Description _elm_scroller_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_scroller_class_get, &_elm_scroller_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_SCROLLABLE_INTERFACE, EFL_CONTENT_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_scroller_class_get, &_elm_scroller_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_SCROLLABLE_INTERFACE, EFL_CONTENT_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_scroller_eo.legacy.c"

View File

@ -90,6 +90,6 @@ static const Efl_Class_Description _elm_segment_control_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_segment_control_class_get, &_elm_segment_control_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_segment_control_class_get, &_elm_segment_control_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_segment_control_eo.legacy.c"

View File

@ -78,6 +78,6 @@ static const Efl_Class_Description _elm_separator_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_separator_class_get, &_elm_separator_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_separator_class_get, &_elm_separator_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_separator_eo.legacy.c"

View File

@ -86,4 +86,4 @@ static const Efl_Class_Description _elm_slider_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_slider_class_get, &_elm_slider_class_desc, EFL_UI_SLIDER_INTERVAL_CLASS, EFL_UI_LEGACY_INTERFACE, EFL_TEXT_INTERFACE, EFL_TEXT_MARKUP_INTERFACE, EFL_UI_FORMAT_MIXIN, NULL);
EFL_DEFINE_CLASS(elm_slider_class_get, &_elm_slider_class_desc, EFL_UI_SLIDER_INTERVAL_CLASS, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, EFL_TEXT_INTERFACE, EFL_TEXT_MARKUP_INTERFACE, EFL_UI_FORMAT_MIXIN, NULL);

View File

@ -316,6 +316,6 @@ static const Efl_Class_Description _elm_slideshow_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_slideshow_class_get, &_elm_slideshow_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_slideshow_class_get, &_elm_slideshow_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_slideshow_eo.legacy.c"

View File

@ -330,6 +330,6 @@ static const Efl_Class_Description _elm_spinner_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_spinner_class_get, &_elm_spinner_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_RANGE_INTERACTIVE_INTERFACE, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_ACCESS_VALUE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_spinner_class_get, &_elm_spinner_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_RANGE_INTERACTIVE_INTERFACE, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_ACCESS_VALUE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_spinner_eo.legacy.c"

View File

@ -82,4 +82,4 @@ static const Efl_Class_Description _elm_thumb_class_desc = {
NULL
};
EFL_DEFINE_CLASS(elm_thumb_class_get, &_elm_thumb_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_FILE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_DRAGGABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL);
EFL_DEFINE_CLASS(elm_thumb_class_get, &_elm_thumb_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_FILE_MIXIN, EFL_INPUT_CLICKABLE_MIXIN, EFL_UI_DRAGGABLE_INTERFACE, ELM_LAYOUT_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -47,7 +47,7 @@
/**
* Base widget smart data extended with layout instance data.
*/
typedef struct _Elm_Layout_Smart_Data
typedef struct _Efl_Ui_Layout_Data
{
Evas_Object *obj; /**< The object itself */
Eina_List *subs; /**< List of Elm_Layout_Sub_Object_Data structs, to hold the actual sub objects such as text, content and the children of box and table. */
@ -66,7 +66,6 @@ typedef struct _Elm_Layout_Smart_Data
unsigned int finger_size_multiplier_x, finger_size_multiplier_y; /**< multipliers for finger_size during group_calc */
Eina_Bool needs_size_calc : 1; /**< This flag is set true when the layout sizing eval is already requested. This defers sizing evaluation until smart calculation to avoid unnecessary calculation. */
Eina_Bool restricted_calc_w : 1; /**< This is a flag to support edje restricted_calc in w axis. */
Eina_Bool restricted_calc_h : 1; /**< This is a flag to support edje restricted_calc in y axis. */
Eina_Bool can_access : 1; /**< This is true when all text(including textblock) parts can be accessible by accessibility. */
@ -78,6 +77,11 @@ typedef struct _Elm_Layout_Smart_Data
Eina_Bool calc_subobjs : 1; /**< Set to true if group_calc should also handle subobjs during manual calc */
} Efl_Ui_Layout_Data;
typedef struct _Elm_Layout_Data
{
Eina_Bool needs_size_calc : 1; /**< This flag is set true when the layout sizing eval is already requested. This defers sizing evaluation until smart calculation to avoid unnecessary calculation. */
} Elm_Layout_Data;
/**
* @}
*/