MCPcopy Create free account
hub / github.com/Snapchat/Valdi / alignAbsoluteChild

Function alignAbsoluteChild

third-party/yoga/src/yoga/algorithm/AbsoluteLayout.cpp:132–170  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

130}
131
132static void alignAbsoluteChild(
133 const yoga::Node* const parent,
134 yoga::Node* child,
135 const Direction direction,
136 const FlexDirection crossAxis,
137 const float containingBlockWidth) {
138 Align itemAlign = resolveChildAlignment(parent, child);
139 const Wrap parentWrap = parent->style().flexWrap();
140 if (parentWrap == Wrap::WrapReverse) {
141 if (itemAlign == Align::FlexEnd) {
142 itemAlign = Align::FlexStart;
143 } else if (itemAlign != Align::Center) {
144 itemAlign = Align::FlexEnd;
145 }
146 }
147
148 switch (itemAlign) {
149 case Align::Start:
150 case Align::Auto:
151 case Align::FlexStart:
152 case Align::Baseline:
153 case Align::SpaceAround:
154 case Align::SpaceBetween:
155 case Align::Stretch:
156 case Align::SpaceEvenly:
157 setFlexStartLayoutPosition(
158 parent, child, direction, crossAxis, containingBlockWidth);
159 break;
160 case Align::End:
161 case Align::FlexEnd:
162 setFlexEndLayoutPosition(
163 parent, child, direction, crossAxis, containingBlockWidth);
164 break;
165 case Align::Center:
166 setCenterLayoutPosition(
167 parent, child, direction, crossAxis, containingBlockWidth);
168 break;
169 }
170}
171
172/*
173 * Absolutely positioned nodes do not participate in flex layout and thus their

Callers 1

positionAbsoluteChildFunction · 0.85

Calls 4

resolveChildAlignmentFunction · 0.85
setFlexEndLayoutPositionFunction · 0.85
setCenterLayoutPositionFunction · 0.85

Tested by

no test coverage detected