VisComp: 2.4 VisCompClass Instance Data: VCI_geoAttrs

Up: GEOS SDK TechDocs | Up | Prev: 2.3 VCI_window | Next: 2.5 VCI_geoDimensionAttrs

The most-used feature of composite objects is their ability to manage the sizing and placement of their children. This is known as managing the composite's geometry.

The geometry management behavior implemented by a particular composite object is determined by its VCI_geoAttrs and VCI_geoDimensionAttrs fields. Both of these fields may be set and altered by applications as their geometry needs change. The VCI_geoAttrs field, specifically, determines the type of geometry management employed by the composite.

The VCI_geoAttrs field may contain any or all of the following eight flags:

VCGA_ORIENT_CHILDREN_VERTICALLY
This flag indicates that the composite's children should be arranged vertically rather than the default (horizontally).
VCGA_INCLUDE_ENDS_IN_CHILD_SPACING
When the composite is using full justification (see VCI_geoDimensionAttrs ), this flag indicates that there should be as much space before the first child and after the last child as there is between the children. If this flag is not set, there will be no space outside the first and last children.
VCGA_ALLOW_CHILDREN_TO_WRAP
This flag will allow the children to wrap if their combined lengths won't allow them to fit within the composite's bounds. The composite will keep within the bounds of its parent, and its children will wrap as necessary. If this flag is not set, the composite will try to grow to be as large as necessary to fit all children.
VCGA_ONE_PASS_OPTIMIZATION
This flag makes the geometry manager make only one pass at managing the children. It should only be set if the children can be guaranteed not to wrap or resize.
VCGA_CUSTOM_MANAGE_CHILDREN
This flag indicates that the composite will manage its children without using the geometry manager. This allows the composite or its children to manually determine their positions and sizes. If this flag is set, the composite will keep its own bounds in its VI_bounds field, just as other Vis objects. This flag in a composite indicates custom management for the composite's entire branch, not just its children.
VCGA_HAS_MINIMUM_SIZE
This flag indicates that the composite has a minimum size. The geometry manager will query the composite for this minimum and will ensure the object never gets smaller than that regardless of the size of its children. The minimum size must be returned by a custom MSG_VIS_COMP_GET_MINIMUM_SIZE handler.
VCGA_WRAP_AFTER_CHILD_COUNT
Used in conjunction with VCGA_ALLOW_CHILDREN_TO_WRAP, this flag will cause child wrapping after a certain number of children. This can cause wrapping based on the number of children rather than on child size. The geometry manager will query the composite with MSG_VIS_COMP_GET_WRAP_COUNT .
VCGA_ONLY_DRAWS_IN_MARGINS
This flag is used for optimized visual updates. It causes only the margins of the composite to be drawn when its image is marked invalid; all children of the composite must have their own images marked invalid if they are to be redrawn as well.

Up: GEOS SDK TechDocs | Up | Prev: 2.3 VCI_window | Next: 2.5 VCI_geoDimensionAttrs