1class Efl.Ui.Box extends Efl.Ui.Widget implements Efl.Pack_Linear, Efl.Pack_Layout,
2                  Efl.Ui.Layout_Orientable, Efl.Gfx.Arrangement
3{
4   [[A container that arranges children widgets in a vertical or horizontal fashion.
5
6     The Box widget is the most basic (and the most used) of the container widgets.
7     Other widgets are added to the Box through the @Efl.Pack_Linear interface, and the
8     layout direction (either vertical or horizontal) is controlled through the
9     @Efl.Ui.Layout_Orientable.orientation property.
10
11     The Box widget itself is invisible, as are most container widgets: Their purpose is
12     to handle the position and size of all their children so you don't have to.
13
14     All widgets inside a vertical Box container will have the same width as the container,
15     and their heights will be automatically chosen so that they cover the whole surface of
16     the container from top to bottom (Imagine a stack of pizza boxes neatly fitting inside
17     your oven). The @Efl.Ui.Box.homogeneous property then controls whether all widgets have
18     the same height (homogeneous) or not.
19
20     A horizontal Box container example would be the button toolbar at the top of most word
21     processing programs.
22
23     Precise layout can be further customized through the @Efl.Gfx.Arrangement interface on
24     the Box itself, or through the @Efl.Gfx.Hint interface on each of the children widgets.
25
26     @since 1.23
27   ]]
28   methods {
29      @property homogeneous {
30         [[In homogeneous mode all children of a vertical Box have the same height, equal to
31           the height of the tallest widget. Children of a horizontal Box have the same width,
32           equal to the width of the widest widget. Otherwise, individual widget sizes are not
33           modified.
34         ]]
35         values {
36            homogeneous: bool; [[$true if the Box is homogeneous, $false otherwise.]]
37         }
38      }
39   }
40   implements {
41      Efl.Object.constructor;
42      Efl.Object.invalidate;
43      Efl.Canvas.Group.group_calculate;
44      Efl.Gfx.Entity.position { set; }
45      Efl.Gfx.Entity.size { set; }
46      Efl.Container.content_iterate;
47      Efl.Container.content_count;
48      Efl.Ui.Layout_Orientable.orientation { get; set; }
49      Efl.Pack.pack_clear;
50      Efl.Pack.unpack_all;
51      Efl.Pack.unpack;
52      Efl.Pack.pack;
53      Efl.Gfx.Arrangement.content_padding { get; set; }
54      Efl.Gfx.Arrangement.content_align { get; set; }
55      Efl.Pack_Linear.pack_begin;
56      Efl.Pack_Linear.pack_end;
57      Efl.Pack_Linear.pack_before;
58      Efl.Pack_Linear.pack_after;
59      Efl.Pack_Linear.pack_at;
60      Efl.Pack_Linear.pack_content_get;
61      Efl.Pack_Linear.pack_unpack_at;
62      Efl.Pack_Linear.pack_index_get;
63      Efl.Pack_Layout.layout_update;
64      Efl.Pack_Layout.layout_request;
65      @empty Efl.Ui.L10n.l10n_text { get; set; }
66      @empty Efl.Ui.I18n.language { get; set; }
67   }
68}
69