17.1 Overview

Group class is responsible for the complete layout of a MUI window. A group may contain any number of child objects, maybe buttons, cycle gadgets or even other groups.

Some attributes of group class define how the children of a group are layouted. You can e.g. tell your group to place its children horizontally (in a row) or vertically (in a column). Since every MUI object knows about its minimum and maximum dimensions, group class has everything it needs to do that job.

More sophisticated layout is possible by assigning different weights to objects in a group or by making a group two-dimensional.

Beneath the layout issues, a group object passes attributes and methods through to all of its children. Thus, you can talk and listen to any child of a group by talking and listening to the group itself.

The following different group types are supported by MUI Royale:

<hgroup>
Group children will be laid out in a row (vertical).

<vgroup>
Group children will be laid out in a column (horizontal).

<colgroup>
Group children will be laid out in columns.

<virtgroup>
A virtual group. Normally used inside a scrollgroup. See Virtgroup class for details.

<scrollgroup>
A group with scrollbars. Virtual groups are usually embedded inside a scrollgroup. See Scrollgroup class for details.

Column groups are useful if you need to have identical gadget sizes for all your children in a group for a more pleasant visual appearance. For example, imagine a form made up of string gadgets and text objects. It is recommended to use a <colgroup> here because it leads to a clear and ordered visual appearance. Here's an example:

 
<colgroup columns="2">
   <text>Name</text>
   <string/>
   <text>Street</text>
   <string/>
   <text>City</text>
   <string/>
   <text>Zip code</text>
   <string/>
   <text>Country</text>
   <string/>
   <text>Telephone</text>
   <string/>
   <text>Email</text>
   <string/>
</colgroup>

If we used a <vgroup> with one <hgroup> per row the appearance would be pretty bad because the string gadget's width would be different for each line which looks pretty non-professional.


Show TOC