| 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 |