OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2012 Adobe Systems Incorporated. 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 * | 7 * |
8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
10 * disclaimer. | 10 * disclaimer. |
(...skipping 13 matching lines...) Expand all Loading... |
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR | 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR |
25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF | 25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF |
26 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 26 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
27 * SUCH DAMAGE. | 27 * SUCH DAMAGE. |
28 */ | 28 */ |
29 | 29 |
30 #include "config.h" | 30 #include "config.h" |
31 #include "core/rendering/style/BasicShapes.h" | 31 #include "core/rendering/style/BasicShapes.h" |
32 | 32 |
33 #include "core/css/BasicShapeFunctions.h" | 33 #include "core/css/BasicShapeFunctions.h" |
| 34 #include "core/rendering/style/RenderStyle.h" |
34 #include "platform/CalculationValue.h" | 35 #include "platform/CalculationValue.h" |
35 #include "platform/LengthFunctions.h" | 36 #include "platform/LengthFunctions.h" |
36 #include "platform/geometry/FloatRect.h" | 37 #include "platform/geometry/FloatRect.h" |
37 #include "platform/graphics/Path.h" | 38 #include "platform/graphics/Path.h" |
38 | 39 |
39 namespace blink { | 40 namespace blink { |
40 | 41 |
41 bool BasicShape::canBlend(const BasicShape* other) const | 42 bool BasicShape::canBlend(const BasicShape* other) const |
42 { | 43 { |
43 // FIXME: Support animations between different shapes in the future. | 44 // FIXME: Support animations between different shapes in the future. |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 { | 221 { |
221 return FloatSize(floatValueForLength(lengthSize.width(), boundingBox.width()
), | 222 return FloatSize(floatValueForLength(lengthSize.width(), boundingBox.width()
), |
222 floatValueForLength(lengthSize.height(), boundingBox.height())); | 223 floatValueForLength(lengthSize.height(), boundingBox.height())); |
223 } | 224 } |
224 | 225 |
225 void BasicShapeInset::path(Path& path, const FloatRect& boundingBox) | 226 void BasicShapeInset::path(Path& path, const FloatRect& boundingBox) |
226 { | 227 { |
227 ASSERT(path.isEmpty()); | 228 ASSERT(path.isEmpty()); |
228 float left = floatValueForLength(m_left, boundingBox.width()); | 229 float left = floatValueForLength(m_left, boundingBox.width()); |
229 float top = floatValueForLength(m_top, boundingBox.height()); | 230 float top = floatValueForLength(m_top, boundingBox.height()); |
230 path.addRoundedRect( | 231 FloatRect rect(left + boundingBox.x(), top + boundingBox.y(), |
231 FloatRect( | 232 std::max<float>(boundingBox.width() - left - floatValueForLength(m_right
, boundingBox.width()), 0), |
232 left + boundingBox.x(), | 233 std::max<float>(boundingBox.height() - top - floatValueForLength(m_botto
m, boundingBox.height()), 0)); |
233 top + boundingBox.y(), | 234 auto radii = FloatRoundedRect::Radii(floatSizeForLengthSize(m_topLeftRadius,
boundingBox), |
234 std::max<float>(boundingBox.width() - left - floatValueForLength(m_r
ight, boundingBox.width()), 0), | |
235 std::max<float>(boundingBox.height() - top - floatValueForLength(m_b
ottom, boundingBox.height()), 0) | |
236 ), | |
237 floatSizeForLengthSize(m_topLeftRadius, boundingBox), | |
238 floatSizeForLengthSize(m_topRightRadius, boundingBox), | 235 floatSizeForLengthSize(m_topRightRadius, boundingBox), |
239 floatSizeForLengthSize(m_bottomLeftRadius, boundingBox), | 236 floatSizeForLengthSize(m_bottomLeftRadius, boundingBox), |
240 floatSizeForLengthSize(m_bottomRightRadius, boundingBox) | 237 floatSizeForLengthSize(m_bottomRightRadius, boundingBox)); |
241 ); | 238 radii.scale(calcBorderRadiiConstraintScaleFor(rect, radii)); |
| 239 path.addRoundedRect(FloatRoundedRect(rect, radii)); |
242 } | 240 } |
243 | 241 |
244 static inline LengthSize blendLengthSize(const LengthSize& to, const LengthSize&
from, double progress) | 242 static inline LengthSize blendLengthSize(const LengthSize& to, const LengthSize&
from, double progress) |
245 { | 243 { |
246 return LengthSize(to.width().blend(from.width(), progress, ValueRangeAll), | 244 return LengthSize(to.width().blend(from.width(), progress, ValueRangeAll), |
247 to.height().blend(from.height(), progress, ValueRangeAll)); | 245 to.height().blend(from.height(), progress, ValueRangeAll)); |
248 } | 246 } |
249 | 247 |
250 PassRefPtr<BasicShape> BasicShapeInset::blend(const BasicShape* other, double pr
ogress) const | 248 PassRefPtr<BasicShape> BasicShapeInset::blend(const BasicShape* other, double pr
ogress) const |
251 { | 249 { |
(...skipping 23 matching lines...) Expand all Loading... |
275 && m_top == other.m_top | 273 && m_top == other.m_top |
276 && m_bottom == other.m_bottom | 274 && m_bottom == other.m_bottom |
277 && m_left == other.m_left | 275 && m_left == other.m_left |
278 && m_topLeftRadius == other.m_topLeftRadius | 276 && m_topLeftRadius == other.m_topLeftRadius |
279 && m_topRightRadius == other.m_topRightRadius | 277 && m_topRightRadius == other.m_topRightRadius |
280 && m_bottomRightRadius == other.m_bottomRightRadius | 278 && m_bottomRightRadius == other.m_bottomRightRadius |
281 && m_bottomLeftRadius == other.m_bottomLeftRadius; | 279 && m_bottomLeftRadius == other.m_bottomLeftRadius; |
282 } | 280 } |
283 | 281 |
284 } | 282 } |
OLD | NEW |