| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 void offsetAndBreadthForPositionedChild(const LayoutBox&, GridTrackSizingDir
ection, LayoutUnit& offset, LayoutUnit& breadth); | 154 void offsetAndBreadthForPositionedChild(const LayoutBox&, GridTrackSizingDir
ection, LayoutUnit& offset, LayoutUnit& breadth); |
| 155 void populateGridPositionsForDirection(GridSizingData&, GridTrackSizingDirec
tion); | 155 void populateGridPositionsForDirection(GridSizingData&, GridTrackSizingDirec
tion); |
| 156 | 156 |
| 157 typedef struct GridItemsSpanGroupRange GridItemsSpanGroupRange; | 157 typedef struct GridItemsSpanGroupRange GridItemsSpanGroupRange; |
| 158 LayoutUnit currentItemSizeForTrackSizeComputationPhase(TrackSizeComputationP
hase, LayoutBox&, GridTrackSizingDirection, GridSizingData&) const; | 158 LayoutUnit currentItemSizeForTrackSizeComputationPhase(TrackSizeComputationP
hase, LayoutBox&, GridTrackSizingDirection, GridSizingData&) const; |
| 159 void resolveContentBasedTrackSizingFunctionsForNonSpanningItems(GridTrackSiz
ingDirection, const GridSpan&, LayoutBox& gridItem, GridTrack&, GridSizingData&)
const; | 159 void resolveContentBasedTrackSizingFunctionsForNonSpanningItems(GridTrackSiz
ingDirection, const GridSpan&, LayoutBox& gridItem, GridTrack&, GridSizingData&)
const; |
| 160 template <TrackSizeComputationPhase> void resolveContentBasedTrackSizingFunc
tionsForItems(GridTrackSizingDirection, GridSizingData&, const GridItemsSpanGrou
pRange&) const; | 160 template <TrackSizeComputationPhase> void resolveContentBasedTrackSizingFunc
tionsForItems(GridTrackSizingDirection, GridSizingData&, const GridItemsSpanGrou
pRange&) const; |
| 161 template <TrackSizeComputationPhase> void distributeSpaceToTracks(Vector<Gri
dTrack*>&, Vector<GridTrack*>* growBeyondGrowthLimitsTracks, GridSizingData&, La
youtUnit& availableLogicalSpace) const; | 161 template <TrackSizeComputationPhase> void distributeSpaceToTracks(Vector<Gri
dTrack*>&, Vector<GridTrack*>* growBeyondGrowthLimitsTracks, GridSizingData&, La
youtUnit& availableLogicalSpace) const; |
| 162 | 162 |
| 163 typedef HashSet<size_t, DefaultHash<size_t>::Hash, WTF::UnsignedWithZeroKeyH
ashTraits<size_t>> TrackIndexSet; | 163 typedef HashSet<size_t, DefaultHash<size_t>::Hash, WTF::UnsignedWithZeroKeyH
ashTraits<size_t>> TrackIndexSet; |
| 164 double computeFlexFactorUnitSize(const Vector<GridTrack>&, GridTrackSizingDi
rection, double flexFactorSum, LayoutUnit& leftOverSpace, const Vector<size_t, 8
>& flexibleTracksIndexes, std::unique_ptr<TrackIndexSet> tracksToTreatAsInflexib
le = nullptr) const; | 164 double computeFlexFactorUnitSize(const Vector<GridTrack>&, GridTrackSizingDi
rection, const GridSizingData&, double flexFactorSum, LayoutUnit& leftOverSpace,
const Vector<size_t, 8>& flexibleTracksIndexes, std::unique_ptr<TrackIndexSet>
tracksToTreatAsInflexible = nullptr) const; |
| 165 double findFlexFactorUnitSize(const Vector<GridTrack>&, const GridSpan&, Gri
dTrackSizingDirection, LayoutUnit leftOverSpace) const; | 165 double findFlexFactorUnitSize(const Vector<GridTrack>&, const GridSpan&, Gri
dTrackSizingDirection, const GridSizingData&, LayoutUnit leftOverSpace) const; |
| 166 | 166 |
| 167 const GridTrackSize& rawGridTrackSize(GridTrackSizingDirection, size_t) cons
t; | 167 const GridTrackSize& rawGridTrackSize(GridTrackSizingDirection, size_t) cons
t; |
| 168 GridTrackSize gridTrackSize(GridTrackSizingDirection, size_t, SizingOperatio
n = TrackSizing) const; | 168 GridTrackSize gridTrackSize(GridTrackSizingDirection, size_t, const GridSizi
ngData&) const; |
| 169 | 169 |
| 170 bool updateOverrideContainingBlockContentSizeForChild(LayoutBox&, GridTrackS
izingDirection, GridSizingData&) const; | 170 bool updateOverrideContainingBlockContentSizeForChild(LayoutBox&, GridTrackS
izingDirection, GridSizingData&) const; |
| 171 LayoutUnit logicalHeightForChild(LayoutBox&, GridSizingData&) const; | 171 LayoutUnit logicalHeightForChild(LayoutBox&, GridSizingData&) const; |
| 172 LayoutUnit minSizeForChild(LayoutBox&, GridTrackSizingDirection, GridSizingD
ata&) const; | 172 LayoutUnit minSizeForChild(LayoutBox&, GridTrackSizingDirection, GridSizingD
ata&) const; |
| 173 LayoutUnit minContentForChild(LayoutBox&, GridTrackSizingDirection, GridSizi
ngData&) const; | 173 LayoutUnit minContentForChild(LayoutBox&, GridTrackSizingDirection, GridSizi
ngData&) const; |
| 174 LayoutUnit maxContentForChild(LayoutBox&, GridTrackSizingDirection, GridSizi
ngData&) const; | 174 LayoutUnit maxContentForChild(LayoutBox&, GridTrackSizingDirection, GridSizi
ngData&) const; |
| 175 GridAxisPosition columnAxisPositionForChild(const LayoutBox&) const; | 175 GridAxisPosition columnAxisPositionForChild(const LayoutBox&) const; |
| 176 GridAxisPosition rowAxisPositionForChild(const LayoutBox&) const; | 176 GridAxisPosition rowAxisPositionForChild(const LayoutBox&) const; |
| 177 LayoutUnit rowAxisOffsetForChild(const LayoutBox&, GridSizingData&) const; | 177 LayoutUnit rowAxisOffsetForChild(const LayoutBox&, GridSizingData&) const; |
| 178 LayoutUnit columnAxisOffsetForChild(const LayoutBox&, GridSizingData&) const
; | 178 LayoutUnit columnAxisOffsetForChild(const LayoutBox&, GridSizingData&) const
; |
| 179 ContentAlignmentData computeContentPositionAndDistributionOffset(GridTrackSi
zingDirection, const LayoutUnit& availableFreeSpace, unsigned numberOfGridTracks
) const; | 179 ContentAlignmentData computeContentPositionAndDistributionOffset(GridTrackSi
zingDirection, const LayoutUnit& availableFreeSpace, unsigned numberOfGridTracks
) const; |
| 180 LayoutPoint findChildLogicalPosition(const LayoutBox&, GridSizingData&) cons
t; | 180 LayoutPoint findChildLogicalPosition(const LayoutBox&, GridSizingData&) cons
t; |
| 181 GridArea cachedGridArea(const LayoutBox&) const; | 181 GridArea cachedGridArea(const LayoutBox&) const; |
| 182 GridSpan cachedGridSpan(const LayoutBox&, GridTrackSizingDirection) const; | 182 GridSpan cachedGridSpan(const LayoutBox&, GridTrackSizingDirection) const; |
| 183 | 183 |
| 184 LayoutUnit gridAreaBreadthForChild(const LayoutBox& child, GridTrackSizingDi
rection, const GridSizingData&) const; | 184 LayoutUnit gridAreaBreadthForChild(const LayoutBox& child, GridTrackSizingDi
rection, const GridSizingData&) const; |
| 185 LayoutUnit gridAreaBreadthForChildIncludingAlignmentOffsets(const LayoutBox&
, GridTrackSizingDirection, const GridSizingData&) const; | 185 LayoutUnit gridAreaBreadthForChildIncludingAlignmentOffsets(const LayoutBox&
, GridTrackSizingDirection, const GridSizingData&) const; |
| 186 LayoutUnit assumedRowsSizeForOrthogonalChild(const LayoutBox&, SizingOperati
on) const; | 186 LayoutUnit assumedRowsSizeForOrthogonalChild(const LayoutBox&, const GridSiz
ingData&) const; |
| 187 | 187 |
| 188 void applyStretchAlignmentToTracksIfNeeded(GridTrackSizingDirection, GridSiz
ingData&); | 188 void applyStretchAlignmentToTracksIfNeeded(GridTrackSizingDirection, GridSiz
ingData&); |
| 189 | 189 |
| 190 void paintChildren(const PaintInfo&, const LayoutPoint&) const override; | 190 void paintChildren(const PaintInfo&, const LayoutPoint&) const override; |
| 191 | 191 |
| 192 LayoutUnit marginLogicalHeightForChild(const LayoutBox&) const; | 192 LayoutUnit marginLogicalHeightForChild(const LayoutBox&) const; |
| 193 LayoutUnit computeMarginLogicalSizeForChild(MarginDirection, const LayoutBox
&) const; | 193 LayoutUnit computeMarginLogicalSizeForChild(MarginDirection, const LayoutBox
&) const; |
| 194 LayoutUnit availableAlignmentSpaceForChildBeforeStretching(LayoutUnit gridAr
eaBreadthForChild, const LayoutBox&) const; | 194 LayoutUnit availableAlignmentSpaceForChildBeforeStretching(LayoutUnit gridAr
eaBreadthForChild, const LayoutBox&) const; |
| 195 StyleSelfAlignmentData justifySelfForChild(const LayoutBox&) const; | 195 StyleSelfAlignmentData justifySelfForChild(const LayoutBox&) const; |
| 196 StyleSelfAlignmentData alignSelfForChild(const LayoutBox&) const; | 196 StyleSelfAlignmentData alignSelfForChild(const LayoutBox&) const; |
| 197 void applyStretchAlignmentToChildIfNeeded(LayoutBox&); | 197 void applyStretchAlignmentToChildIfNeeded(LayoutBox&); |
| 198 bool hasAutoSizeInColumnAxis(const LayoutBox& child) const { return isHorizo
ntalWritingMode() ? child.styleRef().height().isAuto() : child.styleRef().width(
).isAuto(); } | 198 bool hasAutoSizeInColumnAxis(const LayoutBox& child) const { return isHorizo
ntalWritingMode() ? child.styleRef().height().isAuto() : child.styleRef().width(
).isAuto(); } |
| 199 bool hasAutoSizeInRowAxis(const LayoutBox& child) const { return isHorizonta
lWritingMode() ? child.styleRef().width().isAuto() : child.styleRef().height().i
sAuto(); } | 199 bool hasAutoSizeInRowAxis(const LayoutBox& child) const { return isHorizonta
lWritingMode() ? child.styleRef().width().isAuto() : child.styleRef().height().i
sAuto(); } |
| 200 bool allowedToStretchChildAlongColumnAxis(const LayoutBox& child) const { re
turn alignSelfForChild(child).position() == ItemPositionStretch && hasAutoSizeIn
ColumnAxis(child) && !hasAutoMarginsInColumnAxis(child); } | 200 bool allowedToStretchChildAlongColumnAxis(const LayoutBox& child) const { re
turn alignSelfForChild(child).position() == ItemPositionStretch && hasAutoSizeIn
ColumnAxis(child) && !hasAutoMarginsInColumnAxis(child); } |
| 201 bool allowedToStretchChildAlongRowAxis(const LayoutBox& child) const { retur
n justifySelfForChild(child).position() == ItemPositionStretch && hasAutoSizeInR
owAxis(child) && !hasAutoMarginsInRowAxis(child); } | 201 bool allowedToStretchChildAlongRowAxis(const LayoutBox& child) const { retur
n justifySelfForChild(child).position() == ItemPositionStretch && hasAutoSizeInR
owAxis(child) && !hasAutoMarginsInRowAxis(child); } |
| 202 bool hasAutoMarginsInColumnAxis(const LayoutBox&) const; | 202 bool hasAutoMarginsInColumnAxis(const LayoutBox&) const; |
| 203 bool hasAutoMarginsInRowAxis(const LayoutBox&) const; | 203 bool hasAutoMarginsInRowAxis(const LayoutBox&) const; |
| 204 void updateAutoMarginsInColumnAxisIfNeeded(LayoutBox&); | 204 void updateAutoMarginsInColumnAxisIfNeeded(LayoutBox&); |
| 205 void updateAutoMarginsInRowAxisIfNeeded(LayoutBox&); | 205 void updateAutoMarginsInRowAxisIfNeeded(LayoutBox&); |
| 206 | 206 |
| 207 #if ENABLE(ASSERT) | 207 #if ENABLE(ASSERT) |
| 208 bool tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection, GridSizingD
ata&); | 208 bool tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection, GridSizingD
ata&); |
| 209 #endif | 209 #endif |
| 210 | 210 |
| 211 LayoutUnit gridGapForDirection(GridTrackSizingDirection, SizingOperation) co
nst; | 211 LayoutUnit gridGapForDirection(GridTrackSizingDirection, SizingOperation) co
nst; |
| 212 LayoutUnit guttersSize(GridTrackSizingDirection, size_t startLine, size_t sp
an, SizingOperation) const; | 212 LayoutUnit guttersSize(GridTrackSizingDirection, size_t startLine, size_t sp
an, SizingOperation) const; |
| 213 | 213 |
| 214 size_t gridItemSpan(const LayoutBox&, GridTrackSizingDirection); | 214 size_t gridItemSpan(const LayoutBox&, GridTrackSizingDirection); |
| 215 bool spanningItemCrossesFlexibleSizedTracks(const GridSpan&, GridTrackSizing
Direction, SizingOperation) const; | 215 bool spanningItemCrossesFlexibleSizedTracks(const GridSpan&, GridTrackSizing
Direction, const GridSizingData&) const; |
| 216 | 216 |
| 217 size_t gridColumnCount() const; | 217 size_t gridColumnCount() const; |
| 218 size_t gridRowCount() const; | 218 size_t gridRowCount() const; |
| 219 | 219 |
| 220 bool isOrthogonalChild(const LayoutBox&) const; | 220 bool isOrthogonalChild(const LayoutBox&) const; |
| 221 GridTrackSizingDirection flowAwareDirectionForChild(const LayoutBox&, GridTr
ackSizingDirection) const; | 221 GridTrackSizingDirection flowAwareDirectionForChild(const LayoutBox&, GridTr
ackSizingDirection) const; |
| 222 | 222 |
| 223 typedef Vector<Vector<GridCell>> GridRepresentation; | 223 typedef Vector<Vector<GridCell>> GridRepresentation; |
| 224 GridRepresentation m_grid; | 224 GridRepresentation m_grid; |
| 225 bool m_gridIsDirty; | 225 bool m_gridIsDirty; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 245 | 245 |
| 246 std::unique_ptr<OrderedTrackIndexSet> m_autoRepeatEmptyColumns { nullptr }; | 246 std::unique_ptr<OrderedTrackIndexSet> m_autoRepeatEmptyColumns { nullptr }; |
| 247 std::unique_ptr<OrderedTrackIndexSet> m_autoRepeatEmptyRows { nullptr }; | 247 std::unique_ptr<OrderedTrackIndexSet> m_autoRepeatEmptyRows { nullptr }; |
| 248 }; | 248 }; |
| 249 | 249 |
| 250 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutGrid, isLayoutGrid()); | 250 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutGrid, isLayoutGrid()); |
| 251 | 251 |
| 252 } // namespace blink | 252 } // namespace blink |
| 253 | 253 |
| 254 #endif // LayoutGrid_h | 254 #endif // LayoutGrid_h |
| OLD | NEW |