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 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:
Name | Expression | Precondition | Semantics | Postcondition |
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;
measure_horizontal(p, h);