PlaceableTwopass |
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:
Name Expression Type requirements Return 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 spacevoid 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 elementvoid Place place(t, p);
p contains the calculated horizontal and vertical extents of t
within the visual spacevoid
- Expression Semantics:
Name Expression Precondition Semantics Postcondition Place place(t, p);
p
must not be less than the minimum extents specified bymeasure_horizontal
andmeasure_vertical
Places t
within the visual space according top
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);