18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2004, 2005 Rob Buis <buis@kde.org> 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Copyright (C) 2005, 2006 Apple Computer, Inc. 5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Copyright (C) Research In Motion Limited 2010. All rights reserved. 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This library is free software; you can redistribute it and/or 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project modify it under the terms of the GNU Library General Public 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project License as published by the Free Software Foundation; either 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project version 2 of the License, or (at your option) any later version. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This library is distributed in the hope that it will be useful, 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Library General Public License for more details. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project You should have received a copy of the GNU Library General Public License 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project along with this library; see the file COPYING.LIB. If not, write to 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boston, MA 02110-1301, USA. 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef SVGRenderStyle_h 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SVGRenderStyle_h 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSValueList.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "DataRef.h" 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "GraphicsTypes.h" 30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "Path.h" 31ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include "RenderStyleConstants.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGPaint.h" 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGRenderStyleDefs.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 37d0825bca7fe65beaee391d30da42e937db621564Steve Blockclass FloatRect; 38d0825bca7fe65beaee391d30da42e937db621564Steve Blockclass IntRect; 39d0825bca7fe65beaee391d30da42e937db621564Steve Blockclass RenderObject; 40d0825bca7fe65beaee391d30da42e937db621564Steve Block 41d0825bca7fe65beaee391d30da42e937db621564Steve Blockclass SVGRenderStyle : public RefCounted<SVGRenderStyle> { 42d0825bca7fe65beaee391d30da42e937db621564Steve Blockpublic: 43d0825bca7fe65beaee391d30da42e937db621564Steve Block static PassRefPtr<SVGRenderStyle> create() { return adoptRef(new SVGRenderStyle); } 44d0825bca7fe65beaee391d30da42e937db621564Steve Block PassRefPtr<SVGRenderStyle> copy() const { return adoptRef(new SVGRenderStyle(*this));} 45d0825bca7fe65beaee391d30da42e937db621564Steve Block ~SVGRenderStyle(); 46d0825bca7fe65beaee391d30da42e937db621564Steve Block 47d0825bca7fe65beaee391d30da42e937db621564Steve Block bool inheritedNotEqual(const SVGRenderStyle*) const; 48d0825bca7fe65beaee391d30da42e937db621564Steve Block void inheritFrom(const SVGRenderStyle*); 49d0825bca7fe65beaee391d30da42e937db621564Steve Block 50ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block StyleDifference diff(const SVGRenderStyle*) const; 51ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 52d0825bca7fe65beaee391d30da42e937db621564Steve Block bool operator==(const SVGRenderStyle&) const; 53d0825bca7fe65beaee391d30da42e937db621564Steve Block bool operator!=(const SVGRenderStyle& o) const { return !(*this == o); } 54d0825bca7fe65beaee391d30da42e937db621564Steve Block 55db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block // Initial values for all the properties 56db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EAlignmentBaseline initialAlignmentBaseline() { return AB_AUTO; } 57db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EDominantBaseline initialDominantBaseline() { return DB_AUTO; } 58db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EBaselineShift initialBaselineShift() { return BS_BASELINE; } 59db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EVectorEffect initialVectorEffect() { return VE_NONE; } 60db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static LineCap initialCapStyle() { return ButtCap; } 61db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static WindRule initialClipRule() { return RULE_NONZERO; } 62db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EColorInterpolation initialColorInterpolation() { return CI_SRGB; } 63db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EColorInterpolation initialColorInterpolationFilters() { return CI_LINEARRGB; } 64db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EColorRendering initialColorRendering() { return CR_AUTO; } 65db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static WindRule initialFillRule() { return RULE_NONZERO; } 66db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EImageRendering initialImageRendering() { return IR_AUTO; } 67db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static LineJoin initialJoinStyle() { return MiterJoin; } 68db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EShapeRendering initialShapeRendering() { return SR_AUTO; } 69db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static ETextAnchor initialTextAnchor() { return TA_START; } 70a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch static SVGWritingMode initialWritingMode() { return WM_LRTB; } 71db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EGlyphOrientation initialGlyphOrientationHorizontal() { return GO_0DEG; } 72db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static EGlyphOrientation initialGlyphOrientationVertical() { return GO_AUTO; } 7354cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static float initialFillOpacity() { return 1.0f; } 7454cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static SVGPaint* initialFillPaint() { return SVGPaint::defaultFill(); } 7554cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static float initialStrokeOpacity() { return 1.0f; } 7654cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static SVGPaint* initialStrokePaint() { return SVGPaint::defaultStroke(); } 77dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static Vector<SVGLength> initialStrokeDashArray() { return Vector<SVGLength>(); } 7854cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static float initialStrokeMiterLimit() { return 4.0f; } 7954cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static float initialStopOpacity() { return 1.0f; } 80db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static Color initialStopColor() { return Color(0, 0, 0); } 8154cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block static float initialFloodOpacity() { return 1.0f; } 82db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static Color initialFloodColor() { return Color(0, 0, 0); } 83db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static Color initialLightingColor() { return Color(255, 255, 255); } 84db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static ShadowData* initialShadow() { return 0; } 85db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static String initialClipperResource() { return String(); } 86db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static String initialFilterResource() { return String(); } 87db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static String initialMaskerResource() { return String(); } 88db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static String initialMarkerStartResource() { return String(); } 89db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static String initialMarkerMidResource() { return String(); } 90db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block static String initialMarkerEndResource() { return String(); } 91db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 92dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static SVGLength initialBaselineShiftValue() 93dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch { 94dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength length; 9528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ExceptionCode ec = 0; 9628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu length.newValueSpecifiedUnits(LengthTypeNumber, 0, ec); 9728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ASSERT(!ec); 98dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return length; 99dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 100dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 101dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static SVGLength initialKerning() 102dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch { 103dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength length; 10428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ExceptionCode ec = 0; 10528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu length.newValueSpecifiedUnits(LengthTypeNumber, 0, ec); 10628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ASSERT(!ec); 107dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return length; 108dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 109dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 110dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static SVGLength initialStrokeDashOffset() 111dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch { 112dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength length; 11328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ExceptionCode ec = 0; 11428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu length.newValueSpecifiedUnits(LengthTypeNumber, 0, ec); 11528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ASSERT(!ec); 116dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return length; 117dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 118dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 119dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static SVGLength initialStrokeWidth() 120dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch { 121dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength length; 12228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ExceptionCode ec = 0; 12328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu length.newValueSpecifiedUnits(LengthTypeNumber, 1, ec); 12428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu ASSERT(!ec); 125dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return length; 126dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch } 127dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 128db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block // SVG CSS Property setters 129db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setAlignmentBaseline(EAlignmentBaseline val) { svg_noninherited_flags.f._alignmentBaseline = val; } 130db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setDominantBaseline(EDominantBaseline val) { svg_noninherited_flags.f._dominantBaseline = val; } 131db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setBaselineShift(EBaselineShift val) { svg_noninherited_flags.f._baselineShift = val; } 132db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setVectorEffect(EVectorEffect val) { svg_noninherited_flags.f._vectorEffect = val; } 133db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setCapStyle(LineCap val) { svg_inherited_flags._capStyle = val; } 134db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setClipRule(WindRule val) { svg_inherited_flags._clipRule = val; } 135db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setColorInterpolation(EColorInterpolation val) { svg_inherited_flags._colorInterpolation = val; } 136db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setColorInterpolationFilters(EColorInterpolation val) { svg_inherited_flags._colorInterpolationFilters = val; } 137db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setColorRendering(EColorRendering val) { svg_inherited_flags._colorRendering = val; } 138db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setFillRule(WindRule val) { svg_inherited_flags._fillRule = val; } 139db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setImageRendering(EImageRendering val) { svg_inherited_flags._imageRendering = val; } 140db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setJoinStyle(LineJoin val) { svg_inherited_flags._joinStyle = val; } 141db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setShapeRendering(EShapeRendering val) { svg_inherited_flags._shapeRendering = val; } 142db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setTextAnchor(ETextAnchor val) { svg_inherited_flags._textAnchor = val; } 143a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void setWritingMode(SVGWritingMode val) { svg_inherited_flags._writingMode = val; } 144db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setGlyphOrientationHorizontal(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationHorizontal = val; } 145db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setGlyphOrientationVertical(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationVertical = val; } 146d0825bca7fe65beaee391d30da42e937db621564Steve Block 147db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setFillOpacity(float obj) 148db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 149db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(fill->opacity == obj)) 150db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block fill.access()->opacity = obj; 151db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 152db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 15354cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block void setFillPaint(PassRefPtr<SVGPaint> obj) 154db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 15554cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block if (!(fill->paint == obj)) 15654cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block fill.access()->paint = obj; 157db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 158db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 159db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setStrokeOpacity(float obj) 160db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 161db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stroke->opacity == obj)) 162db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stroke.access()->opacity = obj; 163db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 164db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 16554cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block void setStrokePaint(PassRefPtr<SVGPaint> obj) 166db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 16754cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block if (!(stroke->paint == obj)) 16854cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block stroke.access()->paint = obj; 169db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 170db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 171dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setStrokeDashArray(const Vector<SVGLength>& obj) 172db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 173db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stroke->dashArray == obj)) 174db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stroke.access()->dashArray = obj; 175db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 176db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 177db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setStrokeMiterLimit(float obj) 178db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 179db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stroke->miterLimit == obj)) 180db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stroke.access()->miterLimit = obj; 181db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 182db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 183dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setStrokeWidth(const SVGLength& obj) 184db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 185db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stroke->width == obj)) 186db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stroke.access()->width = obj; 187db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 188db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 189dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setStrokeDashOffset(const SVGLength& obj) 190db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 191db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stroke->dashOffset == obj)) 192db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stroke.access()->dashOffset = obj; 193db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 194db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 195dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setKerning(const SVGLength& obj) 196db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 197db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(text->kerning == obj)) 198db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block text.access()->kerning = obj; 199db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 200db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 201db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setStopOpacity(float obj) 202db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 203db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stops->opacity == obj)) 204db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stops.access()->opacity = obj; 205db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 206db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 207dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setStopColor(const Color& obj) 208db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 209db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(stops->color == obj)) 210db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block stops.access()->color = obj; 211db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 212db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 213db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setFloodOpacity(float obj) 214db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 215db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(misc->floodOpacity == obj)) 216db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block misc.access()->floodOpacity = obj; 217db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 218db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 219dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setFloodColor(const Color& obj) 220db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 221db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(misc->floodColor == obj)) 222db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block misc.access()->floodColor = obj; 223db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 224db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 225dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setLightingColor(const Color& obj) 226db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 227db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(misc->lightingColor == obj)) 228db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block misc.access()->lightingColor = obj; 229db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 230db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 231dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setBaselineShiftValue(const SVGLength& obj) 232db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 233db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(misc->baselineShiftValue == obj)) 234db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block misc.access()->baselineShiftValue = obj; 235db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 236db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 237dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setShadow(PassOwnPtr<ShadowData> obj) { shadowSVG.access()->shadow = obj; } 238db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 239db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block // Setters for non-inherited resources 240dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setClipperResource(const String& obj) 241db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 242db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(resources->clipper == obj)) 243db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block resources.access()->clipper = obj; 244db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 245d0825bca7fe65beaee391d30da42e937db621564Steve Block 246dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setFilterResource(const String& obj) 247db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 248db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(resources->filter == obj)) 249db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block resources.access()->filter = obj; 250db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 251d0825bca7fe65beaee391d30da42e937db621564Steve Block 252dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setMaskerResource(const String& obj) 253db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 254db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(resources->masker == obj)) 255db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block resources.access()->masker = obj; 256db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 257d0825bca7fe65beaee391d30da42e937db621564Steve Block 258db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block // Setters for inherited resources 259dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setMarkerStartResource(const String& obj) 260db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 261db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(inheritedResources->markerStart == obj)) 262db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block inheritedResources.access()->markerStart = obj; 263db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 264d0825bca7fe65beaee391d30da42e937db621564Steve Block 265dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setMarkerMidResource(const String& obj) 266db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 267db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(inheritedResources->markerMid == obj)) 268db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block inheritedResources.access()->markerMid = obj; 269db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 270d0825bca7fe65beaee391d30da42e937db621564Steve Block 271dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setMarkerEndResource(const String& obj) 272db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block { 273db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block if (!(inheritedResources->markerEnd == obj)) 274db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block inheritedResources.access()->markerEnd = obj; 275db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block } 276dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 277db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block // Read accessors for all the properties 278db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EAlignmentBaseline alignmentBaseline() const { return (EAlignmentBaseline) svg_noninherited_flags.f._alignmentBaseline; } 279db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EDominantBaseline dominantBaseline() const { return (EDominantBaseline) svg_noninherited_flags.f._dominantBaseline; } 280db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EBaselineShift baselineShift() const { return (EBaselineShift) svg_noninherited_flags.f._baselineShift; } 281db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EVectorEffect vectorEffect() const { return (EVectorEffect) svg_noninherited_flags.f._vectorEffect; } 282db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block LineCap capStyle() const { return (LineCap) svg_inherited_flags._capStyle; } 283db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block WindRule clipRule() const { return (WindRule) svg_inherited_flags._clipRule; } 284db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EColorInterpolation colorInterpolation() const { return (EColorInterpolation) svg_inherited_flags._colorInterpolation; } 285db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EColorInterpolation colorInterpolationFilters() const { return (EColorInterpolation) svg_inherited_flags._colorInterpolationFilters; } 286db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EColorRendering colorRendering() const { return (EColorRendering) svg_inherited_flags._colorRendering; } 287db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block WindRule fillRule() const { return (WindRule) svg_inherited_flags._fillRule; } 288db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EImageRendering imageRendering() const { return (EImageRendering) svg_inherited_flags._imageRendering; } 289db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block LineJoin joinStyle() const { return (LineJoin) svg_inherited_flags._joinStyle; } 290db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EShapeRendering shapeRendering() const { return (EShapeRendering) svg_inherited_flags._shapeRendering; } 291db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block ETextAnchor textAnchor() const { return (ETextAnchor) svg_inherited_flags._textAnchor; } 292a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch SVGWritingMode writingMode() const { return (SVGWritingMode) svg_inherited_flags._writingMode; } 293db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EGlyphOrientation glyphOrientationHorizontal() const { return (EGlyphOrientation) svg_inherited_flags._glyphOrientationHorizontal; } 294db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block EGlyphOrientation glyphOrientationVertical() const { return (EGlyphOrientation) svg_inherited_flags._glyphOrientationVertical; } 295db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block float fillOpacity() const { return fill->opacity; } 29654cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block SVGPaint* fillPaint() const { return fill->paint.get(); } 297db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block float strokeOpacity() const { return stroke->opacity; } 29854cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block SVGPaint* strokePaint() const { return stroke->paint.get(); } 299dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch Vector<SVGLength> strokeDashArray() const { return stroke->dashArray; } 300db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block float strokeMiterLimit() const { return stroke->miterLimit; } 301dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength strokeWidth() const { return stroke->width; } 302dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength strokeDashOffset() const { return stroke->dashOffset; } 303dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength kerning() const { return text->kerning; } 304db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block float stopOpacity() const { return stops->opacity; } 305db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block Color stopColor() const { return stops->color; } 306db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block float floodOpacity() const { return misc->floodOpacity; } 307db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block Color floodColor() const { return misc->floodColor; } 308db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block Color lightingColor() const { return misc->lightingColor; } 309dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch SVGLength baselineShiftValue() const { return misc->baselineShiftValue; } 310db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block ShadowData* shadow() const { return shadowSVG->shadow.get(); } 311db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block String clipperResource() const { return resources->clipper; } 312db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block String filterResource() const { return resources->filter; } 313db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block String maskerResource() const { return resources->masker; } 314db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block String markerStartResource() const { return inheritedResources->markerStart; } 315db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block String markerMidResource() const { return inheritedResources->markerMid; } 316db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block String markerEndResource() const { return inheritedResources->markerEnd; } 317dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 318d0825bca7fe65beaee391d30da42e937db621564Steve Block // convenience 319545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch bool hasClipper() const { return !clipperResource().isEmpty(); } 320545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch bool hasMasker() const { return !maskerResource().isEmpty(); } 321545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch bool hasFilter() const { return !filterResource().isEmpty(); } 32221939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasMarkers() const { return !markerStartResource().isEmpty() || !markerMidResource().isEmpty() || !markerEndResource().isEmpty(); } 32354cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block bool hasStroke() const { return strokePaint()->paintType() != SVGPaint::SVG_PAINTTYPE_NONE; } 32454cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block bool hasFill() const { return fillPaint()->paintType() != SVGPaint::SVG_PAINTTYPE_NONE; } 325a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool isVerticalWritingMode() const { return writingMode() == WM_TBRL || writingMode() == WM_TB; } 326d0825bca7fe65beaee391d30da42e937db621564Steve Block 327d0825bca7fe65beaee391d30da42e937db621564Steve Blockprotected: 328d0825bca7fe65beaee391d30da42e937db621564Steve Block // inherit 329d0825bca7fe65beaee391d30da42e937db621564Steve Block struct InheritedFlags { 330d0825bca7fe65beaee391d30da42e937db621564Steve Block bool operator==(const InheritedFlags& other) const 331d0825bca7fe65beaee391d30da42e937db621564Steve Block { 332d0825bca7fe65beaee391d30da42e937db621564Steve Block return (_colorRendering == other._colorRendering) 333d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_imageRendering == other._imageRendering) 334d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_shapeRendering == other._shapeRendering) 335d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_clipRule == other._clipRule) 336d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_fillRule == other._fillRule) 337d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_capStyle == other._capStyle) 338d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_joinStyle == other._joinStyle) 339d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_textAnchor == other._textAnchor) 340d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_colorInterpolation == other._colorInterpolation) 341d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_colorInterpolationFilters == other._colorInterpolationFilters) 342d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_writingMode == other._writingMode) 343d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_glyphOrientationHorizontal == other._glyphOrientationHorizontal) 344d0825bca7fe65beaee391d30da42e937db621564Steve Block && (_glyphOrientationVertical == other._glyphOrientationVertical); 345d0825bca7fe65beaee391d30da42e937db621564Steve Block } 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 347d0825bca7fe65beaee391d30da42e937db621564Steve Block bool operator!=(const InheritedFlags& other) const 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 349d0825bca7fe65beaee391d30da42e937db621564Steve Block return !(*this == other); 3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 351d0825bca7fe65beaee391d30da42e937db621564Steve Block 352d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _colorRendering : 2; // EColorRendering 353d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _imageRendering : 2; // EImageRendering 354d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _shapeRendering : 2; // EShapeRendering 355d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _clipRule : 1; // WindRule 356d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _fillRule : 1; // WindRule 357d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _capStyle : 2; // LineCap 358d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _joinStyle : 2; // LineJoin 359d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _textAnchor : 2; // ETextAnchor 360d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _colorInterpolation : 2; // EColorInterpolation 361d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _colorInterpolationFilters : 2; // EColorInterpolation 362a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch unsigned _writingMode : 3; // SVGWritingMode 363d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _glyphOrientationHorizontal : 3; // EGlyphOrientation 364d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _glyphOrientationVertical : 3; // EGlyphOrientation 365d0825bca7fe65beaee391d30da42e937db621564Steve Block } svg_inherited_flags; 366d0825bca7fe65beaee391d30da42e937db621564Steve Block 367d0825bca7fe65beaee391d30da42e937db621564Steve Block // don't inherit 368d0825bca7fe65beaee391d30da42e937db621564Steve Block struct NonInheritedFlags { 369d0825bca7fe65beaee391d30da42e937db621564Steve Block // 32 bit non-inherited, don't add to the struct, or the operator will break. 370d0825bca7fe65beaee391d30da42e937db621564Steve Block bool operator==(const NonInheritedFlags &other) const { return _niflags == other._niflags; } 371d0825bca7fe65beaee391d30da42e937db621564Steve Block bool operator!=(const NonInheritedFlags &other) const { return _niflags != other._niflags; } 372d0825bca7fe65beaee391d30da42e937db621564Steve Block 373d0825bca7fe65beaee391d30da42e937db621564Steve Block union { 374d0825bca7fe65beaee391d30da42e937db621564Steve Block struct { 375d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _alignmentBaseline : 4; // EAlignmentBaseline 376d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _dominantBaseline : 4; // EDominantBaseline 377d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _baselineShift : 2; // EBaselineShift 378545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch unsigned _vectorEffect: 1; // EVectorEffect 379545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch // 21 bits unused 380d0825bca7fe65beaee391d30da42e937db621564Steve Block } f; 381d0825bca7fe65beaee391d30da42e937db621564Steve Block uint32_t _niflags; 382d0825bca7fe65beaee391d30da42e937db621564Steve Block }; 383d0825bca7fe65beaee391d30da42e937db621564Steve Block } svg_noninherited_flags; 384d0825bca7fe65beaee391d30da42e937db621564Steve Block 385d0825bca7fe65beaee391d30da42e937db621564Steve Block // inherited attributes 386d0825bca7fe65beaee391d30da42e937db621564Steve Block DataRef<StyleFillData> fill; 387d0825bca7fe65beaee391d30da42e937db621564Steve Block DataRef<StyleStrokeData> stroke; 388d0825bca7fe65beaee391d30da42e937db621564Steve Block DataRef<StyleTextData> text; 389dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block DataRef<StyleInheritedResourceData> inheritedResources; 390d0825bca7fe65beaee391d30da42e937db621564Steve Block 391d0825bca7fe65beaee391d30da42e937db621564Steve Block // non-inherited attributes 392d0825bca7fe65beaee391d30da42e937db621564Steve Block DataRef<StyleStopData> stops; 393d0825bca7fe65beaee391d30da42e937db621564Steve Block DataRef<StyleMiscData> misc; 394d0825bca7fe65beaee391d30da42e937db621564Steve Block DataRef<StyleShadowSVGData> shadowSVG; 395dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block DataRef<StyleResourceData> resources; 396d0825bca7fe65beaee391d30da42e937db621564Steve Block 397d0825bca7fe65beaee391d30da42e937db621564Steve Blockprivate: 398d0825bca7fe65beaee391d30da42e937db621564Steve Block enum CreateDefaultType { CreateDefault }; 399d0825bca7fe65beaee391d30da42e937db621564Steve Block 400d0825bca7fe65beaee391d30da42e937db621564Steve Block SVGRenderStyle(); 401d0825bca7fe65beaee391d30da42e937db621564Steve Block SVGRenderStyle(const SVGRenderStyle&); 402d0825bca7fe65beaee391d30da42e937db621564Steve Block SVGRenderStyle(CreateDefaultType); // Used to create the default style. 403d0825bca7fe65beaee391d30da42e937db621564Steve Block 404d0825bca7fe65beaee391d30da42e937db621564Steve Block void setBitDefaults() 405d0825bca7fe65beaee391d30da42e937db621564Steve Block { 406d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._clipRule = initialClipRule(); 407d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._colorRendering = initialColorRendering(); 408d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._fillRule = initialFillRule(); 409d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._imageRendering = initialImageRendering(); 410d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._shapeRendering = initialShapeRendering(); 411d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._textAnchor = initialTextAnchor(); 412d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._capStyle = initialCapStyle(); 413d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._joinStyle = initialJoinStyle(); 414d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._colorInterpolation = initialColorInterpolation(); 415d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._colorInterpolationFilters = initialColorInterpolationFilters(); 416d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._writingMode = initialWritingMode(); 417d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._glyphOrientationHorizontal = initialGlyphOrientationHorizontal(); 418d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_inherited_flags._glyphOrientationVertical = initialGlyphOrientationVertical(); 419d0825bca7fe65beaee391d30da42e937db621564Steve Block 420d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_noninherited_flags._niflags = 0; 421d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_noninherited_flags.f._alignmentBaseline = initialAlignmentBaseline(); 422d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_noninherited_flags.f._dominantBaseline = initialDominantBaseline(); 423d0825bca7fe65beaee391d30da42e937db621564Steve Block svg_noninherited_flags.f._baselineShift = initialBaselineShift(); 424545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch svg_noninherited_flags.f._vectorEffect = initialVectorEffect(); 425d0825bca7fe65beaee391d30da42e937db621564Steve Block } 426d0825bca7fe65beaee391d30da42e937db621564Steve Block}; 4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(SVG) 4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // SVGRenderStyle_h 432