OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 2 Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
3 Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 3 Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
4 | 4 |
5 This library is free software; you can redistribute it and/or | 5 This library is free software; you can redistribute it and/or |
6 modify it under the terms of the GNU Library General Public | 6 modify it under the terms of the GNU Library General Public |
7 License as published by the Free Software Foundation; either | 7 License as published by the Free Software Foundation; either |
8 version 2 of the License, or (at your option) any later version. | 8 version 2 of the License, or (at your option) any later version. |
9 | 9 |
10 This library is distributed in the hope that it will be useful, | 10 This library is distributed in the hope that it will be useful, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 52 return CSSPrimitiveValue::createIdentifier(CSSValueNone); |
53 | 53 |
54 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 54 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
55 const Vector<SVGLength>::const_iterator end = dashes.end(); | 55 const Vector<SVGLength>::const_iterator end = dashes.end(); |
56 for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it) | 56 for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it) |
57 list->append(SVGLength::toCSSPrimitiveValue(*it)); | 57 list->append(SVGLength::toCSSPrimitiveValue(*it)); |
58 | 58 |
59 return list.release(); | 59 return list.release(); |
60 } | 60 } |
61 | 61 |
| 62 static PassRefPtr<CSSValue> paintOrderToCSSValueList(EPaintOrder paintorder) |
| 63 { |
| 64 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
| 65 do { |
| 66 EPaintOrderType paintOrderType = (EPaintOrderType)(paintorder & ((1 << k
PaintOrderBitwidth) - 1)); |
| 67 switch (paintOrderType) { |
| 68 case PT_FILL: |
| 69 case PT_STROKE: |
| 70 case PT_MARKERS: |
| 71 list->append(CSSPrimitiveValue::create(paintOrderType)); |
| 72 break; |
| 73 case PT_NONE: |
| 74 default: |
| 75 ASSERT_NOT_REACHED(); |
| 76 break; |
| 77 } |
| 78 } while (paintorder >>= kPaintOrderBitwidth); |
| 79 |
| 80 return list.release(); |
| 81 } |
| 82 |
62 PassRefPtr<SVGPaint> CSSComputedStyleDeclaration::adjustSVGPaintForCurrentColor(
PassRefPtr<SVGPaint> newPaint, RenderStyle* style) const | 83 PassRefPtr<SVGPaint> CSSComputedStyleDeclaration::adjustSVGPaintForCurrentColor(
PassRefPtr<SVGPaint> newPaint, RenderStyle* style) const |
63 { | 84 { |
64 RefPtr<SVGPaint> paint = newPaint; | 85 RefPtr<SVGPaint> paint = newPaint; |
65 if (paint->paintType() == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR || paint->pai
ntType() == SVGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR) { | 86 if (paint->paintType() == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR || paint->pai
ntType() == SVGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR) { |
66 // SVG handles currentColor itself, style->color() is guaranteed not to
be currentColor. | 87 // SVG handles currentColor itself, style->color() is guaranteed not to
be currentColor. |
67 ASSERT(!style->color().isCurrentColor()); | 88 ASSERT(!style->color().isCurrentColor()); |
68 paint->setColor(style->color().color()); | 89 paint->setColor(style->color().color()); |
69 } | 90 } |
70 return paint.release(); | 91 return paint.release(); |
71 } | 92 } |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 return glyphOrientationToCSSPrimitiveValue(svgStyle->glyphOrientatio
nHorizontal()); | 206 return glyphOrientationToCSSPrimitiveValue(svgStyle->glyphOrientatio
nHorizontal()); |
186 case CSSPropertyGlyphOrientationVertical: { | 207 case CSSPropertyGlyphOrientationVertical: { |
187 if (RefPtr<CSSPrimitiveValue> value = glyphOrientationToCSSPrimitive
Value(svgStyle->glyphOrientationVertical())) | 208 if (RefPtr<CSSPrimitiveValue> value = glyphOrientationToCSSPrimitive
Value(svgStyle->glyphOrientationVertical())) |
188 return value.release(); | 209 return value.release(); |
189 | 210 |
190 if (svgStyle->glyphOrientationVertical() == GO_AUTO) | 211 if (svgStyle->glyphOrientationVertical() == GO_AUTO) |
191 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 212 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); |
192 | 213 |
193 return 0; | 214 return 0; |
194 } | 215 } |
| 216 case CSSPropertyPaintOrder: |
| 217 return paintOrderToCSSValueList(svgStyle->paintOrder()); |
195 case CSSPropertyVectorEffect: | 218 case CSSPropertyVectorEffect: |
196 return CSSPrimitiveValue::create(svgStyle->vectorEffect()); | 219 return CSSPrimitiveValue::create(svgStyle->vectorEffect()); |
197 case CSSPropertyMaskType: | 220 case CSSPropertyMaskType: |
198 return CSSPrimitiveValue::create(svgStyle->maskType()); | 221 return CSSPrimitiveValue::create(svgStyle->maskType()); |
199 case CSSPropertyMarker: | 222 case CSSPropertyMarker: |
200 case CSSPropertyEnableBackground: | 223 case CSSPropertyEnableBackground: |
201 case CSSPropertyColorProfile: | 224 case CSSPropertyColorProfile: |
202 // the above properties are not yet implemented in the engine | 225 // the above properties are not yet implemented in the engine |
203 break; | 226 break; |
204 default: | 227 default: |
205 // If you crash here, it's because you added a css property and are not
handling it | 228 // If you crash here, it's because you added a css property and are not
handling it |
206 // in either this switch statement or the one in CSSComputedStyleDelcara
tion::getPropertyCSSValue | 229 // in either this switch statement or the one in CSSComputedStyleDelcara
tion::getPropertyCSSValue |
207 ASSERT_WITH_MESSAGE(0, "unimplemented propertyID: %d", propertyID); | 230 ASSERT_WITH_MESSAGE(0, "unimplemented propertyID: %d", propertyID); |
208 } | 231 } |
209 LOG_ERROR("unimplemented propertyID: %d", propertyID); | 232 LOG_ERROR("unimplemented propertyID: %d", propertyID); |
210 return 0; | 233 return 0; |
211 } | 234 } |
212 | 235 |
213 } | 236 } |
OLD | NEW |