| 130 | } |
| 131 | |
| 132 | static 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 |
no test coverage detected