Box, HBox, VBox - tile interactors in a box
A box is a scene of interactors that are tiled side-by-side in the available
space. Interactors are placed left-to-right in a horizontal box, and
top-to-bottom in a vertical box.
A box will try to stretch or shrink the interactors inside it to
fit the available space. The natural size of a box is the sum of its
elements along the major axis, and the maximum along its minor axis. A box's
stretchability (shrinkability) is the sum of its elements along its major
axis and the minimum of its elements along its minor axis.
- Create a new box. Zero to seven interactors may be passed as arguments;
the interactors are inserted into the box.
- void Align(Alignment)
- Set the alignment mode that the box uses to place elements along the minor
axis. The default alignment for an hbox is Bottom; other choices
are Top and Center. The default alignment for a vbox is
Left; other choices are Right and Center.
- void Insert(Interactor*)
- Append an interactor to the box. Components of an hbox (vbox) will appear
left-to-right (top-to-bottom) in the order in which they are
- void Change(Interactor*)
- Notify the box that the given interactor's shape has changed. If change
propagation is true, the box will modify its own shape to reflect the
change and notify its parent. Regardless of propagation, the box will
recompute the positions of the component interactors and update any that
- void Remove(Interactor*)
- Take an element of out a box. Remove does not cause any immediate change
to the other components in the box; the Change operation must be called
after one or more Removes to update the component positions.
Glue(3I), Interactor(3I), Scene(3I), Shape(3I)