OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012, Google Inc. All rights reserved. | 2 * Copyright (c) 2012, Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 class DoubleRect; | 45 class DoubleRect; |
46 | 46 |
47 class PLATFORM_EXPORT LayoutRect { | 47 class PLATFORM_EXPORT LayoutRect { |
48 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); | 48 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); |
49 public: | 49 public: |
50 LayoutRect() { } | 50 LayoutRect() { } |
51 LayoutRect(const LayoutPoint& location, const LayoutSize& size) | 51 LayoutRect(const LayoutPoint& location, const LayoutSize& size) |
52 : m_location(location), m_size(size) { } | 52 : m_location(location), m_size(size) { } |
53 LayoutRect(LayoutUnit x, LayoutUnit y, LayoutUnit width, LayoutUnit height) | 53 LayoutRect(LayoutUnit x, LayoutUnit y, LayoutUnit width, LayoutUnit height) |
54 : m_location(LayoutPoint(x, y)), m_size(LayoutSize(width, height)) { } | 54 : m_location(LayoutPoint(x, y)), m_size(LayoutSize(width, height)) { } |
| 55 LayoutRect(int x, int y, int width, int height) |
| 56 : m_location(LayoutPoint(x, y)), m_size(LayoutSize(width, height)) { } |
55 LayoutRect(const FloatPoint& location, const FloatSize& size) | 57 LayoutRect(const FloatPoint& location, const FloatSize& size) |
56 : m_location(location), m_size(size) { } | 58 : m_location(location), m_size(size) { } |
57 LayoutRect(const DoublePoint& location, const DoubleSize& size) | 59 LayoutRect(const DoublePoint& location, const DoubleSize& size) |
58 : m_location(location), m_size(size) { } | 60 : m_location(location), m_size(size) { } |
59 LayoutRect(const IntPoint& location, const IntSize& size) | 61 LayoutRect(const IntPoint& location, const IntSize& size) |
60 : m_location(location), m_size(size) { } | 62 : m_location(location), m_size(size) { } |
61 explicit LayoutRect(const IntRect& rect) : m_location(rect.location()), m_si
ze(rect.size()) { } | 63 explicit LayoutRect(const IntRect& rect) : m_location(rect.location()), m_si
ze(rect.size()) { } |
62 | 64 |
63 explicit LayoutRect(const FloatRect&); // don't do this implicitly since it'
s lossy | 65 explicit LayoutRect(const FloatRect&); // don't do this implicitly since it'
s lossy |
64 explicit LayoutRect(const DoubleRect&); // don't do this implicitly since it
's lossy | 66 explicit LayoutRect(const DoubleRect&); // don't do this implicitly since it
's lossy |
(...skipping 26 matching lines...) Expand all Loading... |
91 | 93 |
92 // NOTE: The result is rounded to integer values, and thus may be not the ex
act | 94 // NOTE: The result is rounded to integer values, and thus may be not the ex
act |
93 // center point. | 95 // center point. |
94 LayoutPoint center() const { return LayoutPoint(x() + width() / 2, y() + hei
ght() / 2); } | 96 LayoutPoint center() const { return LayoutPoint(x() + width() / 2, y() + hei
ght() / 2); } |
95 | 97 |
96 void move(const LayoutSize& size) { m_location += size; } | 98 void move(const LayoutSize& size) { m_location += size; } |
97 void move(const IntSize& size) { m_location.move(LayoutUnit(size.width()), L
ayoutUnit(size.height())); } | 99 void move(const IntSize& size) { m_location.move(LayoutUnit(size.width()), L
ayoutUnit(size.height())); } |
98 void moveBy(const LayoutPoint& offset) { m_location.move(offset.x(), offset.
y()); } | 100 void moveBy(const LayoutPoint& offset) { m_location.move(offset.x(), offset.
y()); } |
99 void moveBy(const IntPoint& offset) { m_location.move(LayoutUnit(offset.x())
, LayoutUnit(offset.y())); } | 101 void moveBy(const IntPoint& offset) { m_location.move(LayoutUnit(offset.x())
, LayoutUnit(offset.y())); } |
100 void move(LayoutUnit dx, LayoutUnit dy) { m_location.move(dx, dy); } | 102 void move(LayoutUnit dx, LayoutUnit dy) { m_location.move(dx, dy); } |
| 103 void move(int dx, int dy) { m_location.move(LayoutUnit(dx), LayoutUnit(dy));
} |
101 | 104 |
102 void expand(const LayoutSize& size) { m_size += size; } | 105 void expand(const LayoutSize& size) { m_size += size; } |
103 void expand(const LayoutRectOutsets& box) | 106 void expand(const LayoutRectOutsets& box) |
104 { | 107 { |
105 m_location.move(-box.left(), -box.top()); | 108 m_location.move(-box.left(), -box.top()); |
106 m_size.expand(box.left() + box.right(), box.top() + box.bottom()); | 109 m_size.expand(box.left() + box.right(), box.top() + box.bottom()); |
107 } | 110 } |
108 void expand(LayoutUnit dw, LayoutUnit dh) { m_size.expand(dw, dh); } | 111 void expand(LayoutUnit dw, LayoutUnit dh) { m_size.expand(dw, dh); } |
109 void expandEdges(LayoutUnit top, LayoutUnit right, LayoutUnit bottom, Layout
Unit left) | 112 void expandEdges(LayoutUnit top, LayoutUnit right, LayoutUnit bottom, Layout
Unit left) |
110 { | 113 { |
111 m_location.move(-left, -top); | 114 m_location.move(-left, -top); |
112 m_size.expand(left + right, top + bottom); | 115 m_size.expand(left + right, top + bottom); |
113 } | 116 } |
114 void contract(const LayoutSize& size) { m_size -= size; } | 117 void contract(const LayoutSize& size) { m_size -= size; } |
115 void contract(LayoutUnit dw, LayoutUnit dh) { m_size.expand(-dw, -dh); } | 118 void contract(LayoutUnit dw, LayoutUnit dh) { m_size.expand(-dw, -dh); } |
| 119 void contract(int dw, int dh) { m_size.expand(-dw, -dh); } |
116 void contractEdges(LayoutUnit top, LayoutUnit right, LayoutUnit bottom, Layo
utUnit left) | 120 void contractEdges(LayoutUnit top, LayoutUnit right, LayoutUnit bottom, Layo
utUnit left) |
117 { | 121 { |
118 m_location.move(left, top); | 122 m_location.move(left, top); |
119 m_size.shrink(left + right, top + bottom); | 123 m_size.shrink(left + right, top + bottom); |
120 } | 124 } |
121 | 125 |
122 void shiftXEdgeTo(LayoutUnit edge) | 126 void shiftXEdgeTo(LayoutUnit edge) |
123 { | 127 { |
124 LayoutUnit delta = edge - x(); | 128 LayoutUnit delta = edge - x(); |
125 setX(edge); | 129 setX(edge); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 { | 172 { |
169 m_location.setX(m_location.x() - dx); | 173 m_location.setX(m_location.x() - dx); |
170 m_size.setWidth(m_size.width() + dx + dx); | 174 m_size.setWidth(m_size.width() + dx + dx); |
171 } | 175 } |
172 void inflateY(LayoutUnit dy) | 176 void inflateY(LayoutUnit dy) |
173 { | 177 { |
174 m_location.setY(m_location.y() - dy); | 178 m_location.setY(m_location.y() - dy); |
175 m_size.setHeight(m_size.height() + dy + dy); | 179 m_size.setHeight(m_size.height() + dy + dy); |
176 } | 180 } |
177 void inflate(LayoutUnit d) { inflateX(d); inflateY(d); } | 181 void inflate(LayoutUnit d) { inflateX(d); inflateY(d); } |
| 182 void inflate(int d) { inflate(LayoutUnit(d)); } |
178 void scale(float s); | 183 void scale(float s); |
179 void scale(float xAxisScale, float yAxisScale); | 184 void scale(float xAxisScale, float yAxisScale); |
180 | 185 |
181 LayoutRect transposedRect() const { return LayoutRect(m_location.transposedP
oint(), m_size.transposedSize()); } | 186 LayoutRect transposedRect() const { return LayoutRect(m_location.transposedP
oint(), m_size.transposedSize()); } |
182 | 187 |
183 static IntRect infiniteIntRect() | 188 static IntRect infiniteIntRect() |
184 { | 189 { |
185 // Due to saturated arithemetic this value is not the same as LayoutRect
(IntRect(INT_MIN/2, INT_MIN/2, INT_MAX, INT_MAX)). | 190 // Due to saturated arithemetic this value is not the same as LayoutRect
(IntRect(INT_MIN/2, INT_MIN/2, INT_MAX, INT_MAX)). |
186 static IntRect infiniteIntRect(LayoutRect(LayoutUnit::nearlyMin() / 2, L
ayoutUnit::nearlyMin() / 2, LayoutUnit::nearlyMax(), LayoutUnit::nearlyMax())); | 191 static IntRect infiniteIntRect(LayoutRect(LayoutUnit::nearlyMin() / 2, L
ayoutUnit::nearlyMin() / 2, LayoutUnit::nearlyMax(), LayoutUnit::nearlyMax())); |
187 return infiniteIntRect; | 192 return infiniteIntRect; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 return IntRect(roundedIntPoint(location), pixelSnappedIntSize(size, location
)); | 263 return IntRect(roundedIntPoint(location), pixelSnappedIntSize(size, location
)); |
259 } | 264 } |
260 | 265 |
261 // Redeclared here to avoid ODR issues. | 266 // Redeclared here to avoid ODR issues. |
262 // See platform/testing/GeometryPrinters.h. | 267 // See platform/testing/GeometryPrinters.h. |
263 void PrintTo(const LayoutRect&, std::ostream*); | 268 void PrintTo(const LayoutRect&, std::ostream*); |
264 | 269 |
265 } // namespace blink | 270 } // namespace blink |
266 | 271 |
267 #endif // LayoutRect_h | 272 #endif // LayoutRect_h |
OLD | NEW |