Index: Source/core/rendering/style/GridCoordinate.h |
diff --git a/Source/core/rendering/style/GridCoordinate.h b/Source/core/rendering/style/GridCoordinate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a55b7fb79ae705980ce250cfbf3fcb6578c36670 |
--- /dev/null |
+++ b/Source/core/rendering/style/GridCoordinate.h |
@@ -0,0 +1,79 @@ |
+/* |
+ * Copyright (C) 2013 Google Inc. All rights reserved. |
+ * |
+ * Redistribution and use in source and binary forms, with or without |
+ * modification, are permitted provided that the following conditions are |
+ * met: |
+ * |
+ * * Redistributions of source code must retain the above copyright |
+ * notice, this list of conditions and the following disclaimer. |
+ * * Redistributions in binary form must reproduce the above |
+ * copyright notice, this list of conditions and the following disclaimer |
+ * in the documentation and/or other materials provided with the |
+ * distribution. |
+ * * Neither the name of Google Inc. nor the names of its |
+ * contributors may be used to endorse or promote products derived from |
+ * this software without specific prior written permission. |
+ * |
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+ */ |
+ |
+#ifndef GridCoordinate_h |
+#define GridCoordinate_h |
+ |
+#include "wtf/PassOwnPtr.h" |
+ |
+namespace WebCore { |
+ |
+// A span in a single direction (either rows or columns). Note that |initialPositionIndex| |
+// and |finalPositionIndex| are grid areas' indexes, NOT grid lines'. Iterating over the |
+// span should include both |initialPositionIndex| and |finalPositionIndex| to be correct. |
+struct GridSpan { |
+ static PassOwnPtr<GridSpan> create(size_t initialPosition, size_t finalPosition) |
+ { |
+ return adoptPtr(new GridSpan(initialPosition, finalPosition)); |
+ } |
+ |
+ GridSpan(size_t initialPosition, size_t finalPosition) |
+ : initialPositionIndex(initialPosition) |
+ , finalPositionIndex(finalPosition) |
+ { |
+ ASSERT(initialPositionIndex <= finalPositionIndex); |
+ } |
+ |
+ size_t initialPositionIndex; |
+ size_t finalPositionIndex; |
+}; |
+ |
+// This represents a grid area that spans in both rows' and columns' direction. |
+struct GridCoordinate { |
+ // HashMap requires a default constuctor. |
+ GridCoordinate() |
+ : columns(0, 0) |
+ , rows(0, 0) |
+ { |
+ } |
+ |
+ GridCoordinate(const GridSpan& r, const GridSpan& c) |
+ : columns(c) |
+ , rows(r) |
+ { |
+ } |
+ |
+ GridSpan columns; |
+ GridSpan rows; |
+}; |
+ |
+} // namespace WebCore |
+ |
+#endif // GridCoordinate_h |