This item is part of the EO interfaces work, see T5301.
Layouts in EFL are quite hard to get right because:
- Inconsistencies between containers
- Hinting API that is often not respected (eg. padding)
- Conflicting use of API application-side and framework-side (eg. min_size)
We have basically 3 base containers:
- 1D: Box (Efl.Ui.Box derived from elm_box)
- 2D: Table (Efl.Ui.Grid derived from elm_table)
- Layout (Efl.Canvas.Layout and Efl.Ui.Layout which are currently known as edje_object and elm_layout)
EFL should as much as possible respect the hints provided by the application, and the API usage should not conflict between the application and the framework.
- Respect user min_size (2 APIs exist: restricted_min_size and min_size)
- Respect padding in box & table - space between children
- Respect margin - space around an element
- Respect align
- Respect weights in the least surprising manner
- Respect aspect ratio if it is set