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>::typeModels 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>::typeModels 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:
TA type that is a model of PlaceableTwopass tObject of type TeObject of type typename placeable_extents_type<PlaceableTwopass>::typepObject 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 twithin the visual spacevoid Measure Vertical measure_vertical(t, e, p);p contains the calculated place_data_t of twithin 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 twithin the visual spacevoid
- Expression Semantics:
Name Expression Precondition Semantics Postcondition Place place(t, p);pmust not be less than the minimum extents specified bymeasure_horizontalandmeasure_verticalPlaces twithin the visual space according toptis 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);

