stlab.adobe.com Adobe Systems Incorporated

PlaceableTwopass
[Layout Library (Eve)]

Detailed Description

A model of the PlaceableTwopass concept is an item that can be measured and placed within a visual space.

Refinement Of:
Associated Types:
Extents Type typename placeable_extents_type<PlaceableTwopass>::type Models adobe::extents_t. Used by the PlaceableTwopass to relate the minimum visual extents it requires in order to be placed correctly.
Placement Data Type typename placement_data_type<PlaceableTwopass>::type Models adobe::place_data_t. Contains the derived information necessary for the PlaceableTwopass to position itself within the visual space
Todo:
Need concepts for extents and placement data
Notation:
T A type that is a model of PlaceableTwopass
t Object of type T
e Object of type typename placeable_extents_type<PlaceableTwopass>::type
p Object of type typename placement_data_type<PlaceableTwopass>::type
Definitions:
Valid Expressions:
NameExpressionType requirementsReturn type
Measure Horizontal measure_horizontal(t, e); e is a reference parameter that on return must contain the calculated horizontal extents of t within the visual space void
Measure Vertical measure_vertical(t, e, p); p contains the calculated place_data_t of t within the visual space. e is a ouput only reference parameter that on return must contain the minimum visual vertical properties required by this visual element void
Place place(t, p); p contains the calculated horizontal and vertical extents of t within the visual space void
Expression Semantics:
NameExpressionPreconditionSemanticsPostcondition
Place place(t, p); p must not be less than the minimum extents specified by measure_horizontal and measure_vertical Places t within the visual space according to p t is properly placed within the visual space
Complexity Guarantees:
Invariants:
Type(s) Modeling this Concept:
  • Most text-based user interface elements are PlaceableTwopass, in that they need to be measured before they can be placed appropriately within the dialog to which they belong.
Notes:
See Also:
concept_placeable_twopass, measure_horizontal, measure_vertical, place
Example:
    PlaceableTwopass_t             p;

    using adobe::measure_horizontal;
    using adobe::measure_vertical;
    using adobe::place;

    adobe::extents_t h;
    measure_horizontal(p, h);

    adobe::extents_t v;
    adobe::place_data_t(/*initialized with h and actual placement location*/);

    measure_vertical(p, v, d);

    /* update place data, d, with vertical info returned in v, then call: */
    place(p, d);

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google