OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> | 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. | 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. |
7 * Copyright (C) 2015 Google Inc. All rights reserved. | 7 * Copyright (C) 2015 Google Inc. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Lesser General Public | 10 * modify it under the terms of the GNU Lesser General Public |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "core/css/BasicShapeFunctions.h" | 29 #include "core/css/BasicShapeFunctions.h" |
30 #include "core/css/CSSBorderImage.h" | 30 #include "core/css/CSSBorderImage.h" |
31 #include "core/css/CSSBorderImageSliceValue.h" | 31 #include "core/css/CSSBorderImageSliceValue.h" |
32 #include "core/css/CSSCounterValue.h" | 32 #include "core/css/CSSCounterValue.h" |
33 #include "core/css/CSSFontFeatureValue.h" | 33 #include "core/css/CSSFontFeatureValue.h" |
34 #include "core/css/CSSFunctionValue.h" | 34 #include "core/css/CSSFunctionValue.h" |
35 #include "core/css/CSSGridLineNamesValue.h" | 35 #include "core/css/CSSGridLineNamesValue.h" |
36 #include "core/css/CSSGridTemplateAreasValue.h" | 36 #include "core/css/CSSGridTemplateAreasValue.h" |
37 #include "core/css/CSSPathValue.h" | 37 #include "core/css/CSSPathValue.h" |
38 #include "core/css/CSSPrimitiveValueMappings.h" | 38 #include "core/css/CSSPrimitiveValueMappings.h" |
| 39 #include "core/css/CSSQuadValue.h" |
39 #include "core/css/CSSReflectValue.h" | 40 #include "core/css/CSSReflectValue.h" |
40 #include "core/css/CSSShadowValue.h" | 41 #include "core/css/CSSShadowValue.h" |
41 #include "core/css/CSSTimingFunctionValue.h" | 42 #include "core/css/CSSTimingFunctionValue.h" |
42 #include "core/css/CSSValueList.h" | 43 #include "core/css/CSSValueList.h" |
43 #include "core/css/CSSValuePool.h" | 44 #include "core/css/CSSValuePool.h" |
44 #include "core/css/Pair.h" | 45 #include "core/css/Pair.h" |
45 #include "core/css/Rect.h" | |
46 #include "core/layout/LayoutBlock.h" | 46 #include "core/layout/LayoutBlock.h" |
47 #include "core/layout/LayoutBox.h" | 47 #include "core/layout/LayoutBox.h" |
48 #include "core/layout/LayoutGrid.h" | 48 #include "core/layout/LayoutGrid.h" |
49 #include "core/layout/LayoutObject.h" | 49 #include "core/layout/LayoutObject.h" |
50 #include "core/style/ComputedStyle.h" | 50 #include "core/style/ComputedStyle.h" |
51 #include "core/style/ContentData.h" | 51 #include "core/style/ContentData.h" |
52 #include "core/style/PathStyleMotionPath.h" | 52 #include "core/style/PathStyleMotionPath.h" |
53 #include "core/style/QuotesData.h" | 53 #include "core/style/QuotesData.h" |
54 #include "core/style/ShadowList.h" | 54 #include "core/style/ShadowList.h" |
55 #include "platform/LengthFunctions.h" | 55 #include "platform/LengthFunctions.h" |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 left = right; | 231 left = right; |
232 } else { | 232 } else { |
233 if (image.imageSlices().left().hasPercent()) | 233 if (image.imageSlices().left().hasPercent()) |
234 left = cssValuePool().createValue(image.imageSlices().left()
.value(), CSSPrimitiveValue::UnitType::Percentage); | 234 left = cssValuePool().createValue(image.imageSlices().left()
.value(), CSSPrimitiveValue::UnitType::Percentage); |
235 else | 235 else |
236 left = cssValuePool().createValue(image.imageSlices().left()
.value(), CSSPrimitiveValue::UnitType::Number); | 236 left = cssValuePool().createValue(image.imageSlices().left()
.value(), CSSPrimitiveValue::UnitType::Number); |
237 } | 237 } |
238 } | 238 } |
239 } | 239 } |
240 | 240 |
241 RefPtrWillBeRawPtr<Quad> quad = Quad::create(); | 241 return CSSBorderImageSliceValue::create(CSSQuadValue::createQuad(top, right,
bottom, left), image.fill()); |
242 quad->setTop(top); | |
243 quad->setRight(right); | |
244 quad->setBottom(bottom); | |
245 quad->setLeft(left); | |
246 | |
247 return CSSBorderImageSliceValue::create(cssValuePool().createValue(quad.rele
ase()), image.fill()); | |
248 } | 242 } |
249 | 243 |
250 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> valueForNinePieceImageQuad(cons
t BorderImageLengthBox& box, const ComputedStyle& style) | 244 static PassRefPtrWillBeRawPtr<CSSQuadValue> valueForNinePieceImageQuad(const Bor
derImageLengthBox& box, const ComputedStyle& style) |
251 { | 245 { |
252 // Create the slices. | 246 // Create the slices. |
253 RefPtrWillBeRawPtr<CSSPrimitiveValue> top = nullptr; | 247 RefPtrWillBeRawPtr<CSSPrimitiveValue> top = nullptr; |
254 RefPtrWillBeRawPtr<CSSPrimitiveValue> right = nullptr; | 248 RefPtrWillBeRawPtr<CSSPrimitiveValue> right = nullptr; |
255 RefPtrWillBeRawPtr<CSSPrimitiveValue> bottom = nullptr; | 249 RefPtrWillBeRawPtr<CSSPrimitiveValue> bottom = nullptr; |
256 RefPtrWillBeRawPtr<CSSPrimitiveValue> left = nullptr; | 250 RefPtrWillBeRawPtr<CSSPrimitiveValue> left = nullptr; |
257 | 251 |
258 if (box.top().isNumber()) | 252 if (box.top().isNumber()) |
259 top = cssValuePool().createValue(box.top().number(), CSSPrimitiveValue::
UnitType::Number); | 253 top = cssValuePool().createValue(box.top().number(), CSSPrimitiveValue::
UnitType::Number); |
260 else | 254 else |
(...skipping 22 matching lines...) Expand all Loading... |
283 left = right; | 277 left = right; |
284 } else { | 278 } else { |
285 if (box.left().isNumber()) | 279 if (box.left().isNumber()) |
286 left = cssValuePool().createValue(box.left().number(), CSSPr
imitiveValue::UnitType::Number); | 280 left = cssValuePool().createValue(box.left().number(), CSSPr
imitiveValue::UnitType::Number); |
287 else | 281 else |
288 left = cssValuePool().createValue(box.left().length(), style
); | 282 left = cssValuePool().createValue(box.left().length(), style
); |
289 } | 283 } |
290 } | 284 } |
291 } | 285 } |
292 | 286 |
293 RefPtrWillBeRawPtr<Quad> quad = Quad::create(); | 287 return CSSQuadValue::createQuad(top, right, bottom, left); |
294 quad->setTop(top); | |
295 quad->setRight(right); | |
296 quad->setBottom(bottom); | |
297 quad->setLeft(left); | |
298 | |
299 return cssValuePool().createValue(quad.release()); | |
300 } | 288 } |
301 | 289 |
302 static CSSValueID valueForRepeatRule(int rule) | 290 static CSSValueID valueForRepeatRule(int rule) |
303 { | 291 { |
304 switch (rule) { | 292 switch (rule) { |
305 case RepeatImageRule: | 293 case RepeatImageRule: |
306 return CSSValueRepeat; | 294 return CSSValueRepeat; |
307 case RoundImageRule: | 295 case RoundImageRule: |
308 return CSSValueRound; | 296 return CSSValueRound; |
309 case SpaceImageRule: | 297 case SpaceImageRule: |
(...skipping 1939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2249 return valueForBorderRadiusCorner(style.borderBottomLeftRadius(), style)
; | 2237 return valueForBorderRadiusCorner(style.borderBottomLeftRadius(), style)
; |
2250 case CSSPropertyBorderBottomRightRadius: | 2238 case CSSPropertyBorderBottomRightRadius: |
2251 return valueForBorderRadiusCorner(style.borderBottomRightRadius(), style
); | 2239 return valueForBorderRadiusCorner(style.borderBottomRightRadius(), style
); |
2252 case CSSPropertyBorderTopLeftRadius: | 2240 case CSSPropertyBorderTopLeftRadius: |
2253 return valueForBorderRadiusCorner(style.borderTopLeftRadius(), style); | 2241 return valueForBorderRadiusCorner(style.borderTopLeftRadius(), style); |
2254 case CSSPropertyBorderTopRightRadius: | 2242 case CSSPropertyBorderTopRightRadius: |
2255 return valueForBorderRadiusCorner(style.borderTopRightRadius(), style); | 2243 return valueForBorderRadiusCorner(style.borderTopRightRadius(), style); |
2256 case CSSPropertyClip: { | 2244 case CSSPropertyClip: { |
2257 if (style.hasAutoClip()) | 2245 if (style.hasAutoClip()) |
2258 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2246 return cssValuePool().createIdentifierValue(CSSValueAuto); |
2259 RefPtrWillBeRawPtr<Rect> rect = Rect::create(); | 2247 RefPtrWillBeRawPtr<CSSPrimitiveValue> top = zoomAdjustedPixelValue(style
.clip().top().value(), style); |
2260 rect->setTop(zoomAdjustedPixelValue(style.clip().top().value(), style)); | 2248 RefPtrWillBeRawPtr<CSSPrimitiveValue> right = zoomAdjustedPixelValue(sty
le.clip().right().value(), style); |
2261 rect->setRight(zoomAdjustedPixelValue(style.clip().right().value(), styl
e)); | 2249 RefPtrWillBeRawPtr<CSSPrimitiveValue> bottom = zoomAdjustedPixelValue(st
yle.clip().bottom().value(), style); |
2262 rect->setBottom(zoomAdjustedPixelValue(style.clip().bottom().value(), st
yle)); | 2250 RefPtrWillBeRawPtr<CSSPrimitiveValue> left = zoomAdjustedPixelValue(styl
e.clip().left().value(), style); |
2263 rect->setLeft(zoomAdjustedPixelValue(style.clip().left().value(), style)
); | 2251 return CSSQuadValue::createRect(top, right, bottom, left); |
2264 return cssValuePool().createValue(rect.release()); | |
2265 } | 2252 } |
2266 case CSSPropertySpeak: | 2253 case CSSPropertySpeak: |
2267 return cssValuePool().createValue(style.speak()); | 2254 return cssValuePool().createValue(style.speak()); |
2268 case CSSPropertyTransform: | 2255 case CSSPropertyTransform: |
2269 return computedTransform(layoutObject, style); | 2256 return computedTransform(layoutObject, style); |
2270 case CSSPropertyTransformOrigin: { | 2257 case CSSPropertyTransformOrigin: { |
2271 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparat
ed(); | 2258 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparat
ed(); |
2272 if (layoutObject) { | 2259 if (layoutObject) { |
2273 LayoutRect box; | 2260 LayoutRect box; |
2274 if (layoutObject->isBox()) | 2261 if (layoutObject->isBox()) |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2689 case CSSPropertyAll: | 2676 case CSSPropertyAll: |
2690 return nullptr; | 2677 return nullptr; |
2691 default: | 2678 default: |
2692 break; | 2679 break; |
2693 } | 2680 } |
2694 ASSERT_NOT_REACHED(); | 2681 ASSERT_NOT_REACHED(); |
2695 return nullptr; | 2682 return nullptr; |
2696 } | 2683 } |
2697 | 2684 |
2698 } | 2685 } |
OLD | NEW |