Chromium Code Reviews| Index: third_party/WebKit/Source/core/style/GridResolvedPosition.h |
| diff --git a/third_party/WebKit/Source/core/style/GridResolvedPosition.h b/third_party/WebKit/Source/core/style/GridResolvedPosition.h |
| index 184d312ccdbe60f2a31f8dec2b3a2933f63f14c0..c878d8b5bf6ad4a094e8f73e14cf2ff535cb3134 100644 |
| --- a/third_party/WebKit/Source/core/style/GridResolvedPosition.h |
| +++ b/third_party/WebKit/Source/core/style/GridResolvedPosition.h |
| @@ -14,60 +14,47 @@ struct GridSpan; |
| class LayoutBox; |
| class ComputedStyle; |
| -enum GridPositionSide { |
| - ColumnStartSide, |
| - ColumnEndSide, |
| - RowStartSide, |
| - RowEndSide |
| -}; |
| - |
| enum GridTrackSizingDirection { |
| ForColumns, |
| ForRows |
| }; |
| -// This class represents an index into one of the dimensions of the grid array. |
| -// Wraps a size_t integer just for the purpose of knowing what we manipulate in the grid code. |
| -class GridResolvedPosition { |
| - DISALLOW_NEW(); |
| +class GridUnresolvedSpan { |
| public: |
| - static GridResolvedPosition adjustGridPositionForAfterEndSide(size_t resolvedPosition) |
| + GridUnresolvedSpan(GridPosition initialPosition, GridPositionSide initialPositionSide, GridPosition finalPosition, GridPositionSide finalPositionSide) |
| + : m_initialPosition(initialPosition) |
| + , m_finalPosition(finalPosition) |
| + , m_initialPositionSide(initialPositionSide) |
| + , m_finalPositionSide(finalPositionSide) |
| { |
| - return resolvedPosition ? GridResolvedPosition(resolvedPosition - 1) : GridResolvedPosition(0); |
| } |
| - static GridResolvedPosition adjustGridPositionForSide(size_t resolvedPosition, GridPositionSide side) |
| - { |
| - // An item finishing on the N-th line belongs to the N-1-th cell. |
| - if (side == ColumnEndSide || side == RowEndSide) |
| - return adjustGridPositionForAfterEndSide(resolvedPosition); |
| + const GridPosition& initialPosition() const { return m_initialPosition; } |
| + const GridPosition& finalPosition() const { return m_finalPosition; } |
| + GridPositionSide initialPositionSide() const { return m_initialPositionSide; } |
| + GridPositionSide finalPositionSide() const { return m_finalPositionSide; } |
| - return GridResolvedPosition(resolvedPosition); |
| - } |
| + bool requiresAutoPlacement() const; |
| + GridUnresolvedSpan& adjustGridPositionsFromStyle(const ComputedStyle& gridContainerStyle); |
| - static bool isValidNamedLineOrArea(const String& lineName, const ComputedStyle&, GridPositionSide); |
| - static GridPositionSide initialPositionSide(GridTrackSizingDirection); |
| - static GridPositionSide finalPositionSide(GridTrackSizingDirection); |
| - static void initialAndFinalPositionsFromStyle(const ComputedStyle&, const LayoutBox&, GridTrackSizingDirection, GridPosition &initialPosition, GridPosition &finalPosition); |
| - static GridSpan resolveGridPositionsFromAutoPlacementPosition(const ComputedStyle&, const LayoutBox&, GridTrackSizingDirection, const GridResolvedPosition&); |
| - static PassOwnPtr<GridSpan> resolveGridPositionsFromStyle(const ComputedStyle&, const LayoutBox&, GridTrackSizingDirection); |
| - static GridResolvedPosition resolveNamedGridLinePositionFromStyle(const ComputedStyle&, const GridPosition&, GridPositionSide); |
| - static GridResolvedPosition resolveGridPositionFromStyle(const ComputedStyle&, const GridPosition&, GridPositionSide); |
| - static PassOwnPtr<GridSpan> resolveGridPositionAgainstOppositePosition(const ComputedStyle&, const GridResolvedPosition& resolvedOppositePosition, const GridPosition&, GridPositionSide); |
| - static PassOwnPtr<GridSpan> resolveNamedGridLinePositionAgainstOppositePosition(const ComputedStyle&, const GridResolvedPosition& resolvedOppositePosition, const GridPosition&, GridPositionSide); |
| +private: |
| + GridPosition m_initialPosition; |
| + GridPosition m_finalPosition; |
| + GridPositionSide m_initialPositionSide; |
| + GridPositionSide m_finalPositionSide; |
| +}; |
| +// This class represents an index into one of the dimensions of the grid array. |
| +// Wraps a size_t integer just for the purpose of knowing what we manipulate in the grid code. |
| +class GridResolvedPosition { |
| + DISALLOW_NEW(); |
| +public: |
| GridResolvedPosition(size_t position) |
| : m_integerPosition(position) |
| { |
| } |
| - GridResolvedPosition(const GridPosition& position, GridPositionSide side) |
| - { |
| - ASSERT(position.integerPosition()); |
| - size_t integerPosition = position.integerPosition() - 1; |
| - |
| - m_integerPosition = adjustGridPositionForSide(integerPosition, side).toInt(); |
| - } |
| + GridResolvedPosition(const GridPosition&, GridPositionSide); |
| GridResolvedPosition& operator*() |
| { |
| @@ -120,11 +107,17 @@ public: |
| return GridResolvedPosition(m_integerPosition + 1); |
| } |
| + static bool isValidNamedLineOrArea(const String& lineName, const ComputedStyle&, GridPositionSide); |
| + static GridSpan resolveGridPositionsFromAutoPlacementPosition(const ComputedStyle&, const LayoutBox&, GridTrackSizingDirection, const GridResolvedPosition&); |
| + static GridUnresolvedSpan unresolvedSpanFromStyle(const ComputedStyle&, const LayoutBox&, GridTrackSizingDirection); |
| + static GridSpan resolveGridPositionsFromStyle(const GridUnresolvedSpan&, const ComputedStyle&); |
| static size_t explicitGridColumnCount(const ComputedStyle&); |
| static size_t explicitGridRowCount(const ComputedStyle&); |
| private: |
| + static void initialAndFinalPositionsFromStyle(const ComputedStyle&, const LayoutBox&, GridTrackSizingDirection, GridPosition &initialPosition, GridPosition &finalPosition); |
| + static PassOwnPtr<GridSpan> resolveNamedGridLinePositionAgainstOppositePosition(const ComputedStyle&, const GridResolvedPosition& resolvedOppositePosition, const GridPosition&, GridPositionSide); |
|
Manuel Rego
2015/11/10 09:08:03
Nit: Probably this should be plural ("Positions" i
svillar
2015/11/10 10:56:37
Actually that method should not be there, we must
|
| static size_t explicitGridSizeForSide(const ComputedStyle&, GridPositionSide); |
| size_t m_integerPosition; |