Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: third_party/WebKit/Source/core/style/GridResolvedPosition.h

Issue 1424913009: [css-grid] Simplify the interface of GridResolvedPosition (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698