Reviewed by Anders.
authorrwlbuis <rwlbuis@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Sep 2006 21:19:26 +0000 (21:19 +0000)
committerrwlbuis <rwlbuis@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Sep 2006 21:19:26 +0000 (21:19 +0000)
        Add exception codes to SVGList functions, adjust all code using it.

        Move SVGPaintType enums from ksvg.h into SVGPaint (needed for js generation)
        Move SVGUnitTypes enums from ksvg.h into it's own file SVGUnitType.h (ditto)
        Move SVGRenderingIntent enums from ksvg.h into it's own file SVGRenderingIntent.h (ditto)
        Move SVGZoomAndPan enums from ksvg.h into SVGSVGElement (ditto)
        Move SVGFE* related enums into their respecitive classes.

        Fix JSSVGNumber to operator on doubles, instead of floats.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16330 268f45cc-cd09-0410-ab3c-d52691b4dbfc

87 files changed:
WebCore/ChangeLog
WebCore/kcanvas/RenderPath.cpp
WebCore/ksvg2/bindings/js/JSSVGNumber.cpp
WebCore/ksvg2/bindings/js/JSSVGNumber.h
WebCore/ksvg2/css/SVGCSSParser.cpp
WebCore/ksvg2/css/SVGRenderStyleDefs.cpp
WebCore/ksvg2/ksvg.h
WebCore/ksvg2/misc/KCanvasRenderingStyle.cpp
WebCore/ksvg2/misc/KSVGTimeScheduler.cpp
WebCore/ksvg2/svg/SVGAnimateColorElement.cpp
WebCore/ksvg2/svg/SVGAnimateTransformElement.cpp
WebCore/ksvg2/svg/SVGAnimateTransformElement.h
WebCore/ksvg2/svg/SVGAnimatedTemplate.h
WebCore/ksvg2/svg/SVGAnimationElement.cpp
WebCore/ksvg2/svg/SVGAnimationElement.h
WebCore/ksvg2/svg/SVGClipPathElement.cpp
WebCore/ksvg2/svg/SVGComponentTransferFunctionElement.cpp
WebCore/ksvg2/svg/SVGComponentTransferFunctionElement.h
WebCore/ksvg2/svg/SVGDocument.cpp
WebCore/ksvg2/svg/SVGFEBlendElement.cpp
WebCore/ksvg2/svg/SVGFEBlendElement.h
WebCore/ksvg2/svg/SVGFEColorMatrixElement.cpp
WebCore/ksvg2/svg/SVGFEColorMatrixElement.h
WebCore/ksvg2/svg/SVGFEComponentTransferElement.cpp
WebCore/ksvg2/svg/SVGFEComponentTransferElement.h
WebCore/ksvg2/svg/SVGFECompositeElement.cpp
WebCore/ksvg2/svg/SVGFECompositeElement.h
WebCore/ksvg2/svg/SVGFEDiffuseLightingElement.cpp
WebCore/ksvg2/svg/SVGFEDiffuseLightingElement.h
WebCore/ksvg2/svg/SVGFEDisplacementMapElement.cpp
WebCore/ksvg2/svg/SVGFEDisplacementMapElement.h
WebCore/ksvg2/svg/SVGFEFloodElement.cpp
WebCore/ksvg2/svg/SVGFEFloodElement.h
WebCore/ksvg2/svg/SVGFEGaussianBlurElement.cpp
WebCore/ksvg2/svg/SVGFEGaussianBlurElement.h
WebCore/ksvg2/svg/SVGFEMergeElement.cpp
WebCore/ksvg2/svg/SVGFEMergeNodeElement.cpp
WebCore/ksvg2/svg/SVGFEMergeNodeElement.h
WebCore/ksvg2/svg/SVGFEOffsetElement.cpp
WebCore/ksvg2/svg/SVGFEOffsetElement.h
WebCore/ksvg2/svg/SVGFESpecularLightingElement.cpp
WebCore/ksvg2/svg/SVGFESpecularLightingElement.h
WebCore/ksvg2/svg/SVGFETileElement.cpp
WebCore/ksvg2/svg/SVGFETileElement.h
WebCore/ksvg2/svg/SVGFETurbulenceElement.h
WebCore/ksvg2/svg/SVGFilterElement.cpp
WebCore/ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp
WebCore/ksvg2/svg/SVGGradientElement.cpp
WebCore/ksvg2/svg/SVGGradientElement.h
WebCore/ksvg2/svg/SVGHelper.cpp
WebCore/ksvg2/svg/SVGLengthList.cpp
WebCore/ksvg2/svg/SVGLinearGradientElement.cpp
WebCore/ksvg2/svg/SVGList.h
WebCore/ksvg2/svg/SVGLocatable.cpp
WebCore/ksvg2/svg/SVGLocatable.h
WebCore/ksvg2/svg/SVGMarkerElement.h
WebCore/ksvg2/svg/SVGNumberList.cpp
WebCore/ksvg2/svg/SVGPaint.cpp
WebCore/ksvg2/svg/SVGPaint.h
WebCore/ksvg2/svg/SVGPathElement.cpp
WebCore/ksvg2/svg/SVGPatternElement.cpp
WebCore/ksvg2/svg/SVGPolyElement.cpp
WebCore/ksvg2/svg/SVGPolygonElement.cpp
WebCore/ksvg2/svg/SVGPolylineElement.cpp
WebCore/ksvg2/svg/SVGRadialGradientElement.cpp
WebCore/ksvg2/svg/SVGRenderingIntent.h [new file with mode: 0644]
WebCore/ksvg2/svg/SVGSVGElement.h
WebCore/ksvg2/svg/SVGScriptElement.cpp
WebCore/ksvg2/svg/SVGScriptElement.h
WebCore/ksvg2/svg/SVGStringList.cpp
WebCore/ksvg2/svg/SVGStyledLocatableElement.cpp
WebCore/ksvg2/svg/SVGStyledLocatableElement.h
WebCore/ksvg2/svg/SVGStyledTransformableElement.cpp
WebCore/ksvg2/svg/SVGStyledTransformableElement.h
WebCore/ksvg2/svg/SVGTests.cpp
WebCore/ksvg2/svg/SVGTests.h
WebCore/ksvg2/svg/SVGTextContentElement.cpp
WebCore/ksvg2/svg/SVGTextContentElement.h
WebCore/ksvg2/svg/SVGTextElement.cpp
WebCore/ksvg2/svg/SVGTextElement.h
WebCore/ksvg2/svg/SVGTransform.h
WebCore/ksvg2/svg/SVGTransformList.cpp
WebCore/ksvg2/svg/SVGTransformable.cpp
WebCore/ksvg2/svg/SVGUnitTypes.h [new file with mode: 0644]
WebCore/ksvg2/svg/SVGUseElement.cpp
WebCore/ksvg2/svg/SVGViewElement.h
WebCore/ksvg2/svg/SVGZoomAndPan.cpp

index 45d42ac17b9d7ced997660767de2ec7f1d9ced07..a65197dea63bc33f17304a1f2d095ba550ef6014 100644 (file)
@@ -1,3 +1,235 @@
+2006-09-12  Nikolas Zimmermann  <zimmermann@kde.org>
+
+        Reviewed by Anders.
+
+        Add exception codes to SVGList functions, adjust all code using it.
+
+        Move SVGPaintType enums from ksvg.h into SVGPaint (needed for js generation)
+        Move SVGUnitTypes enums from ksvg.h into it's own file SVGUnitType.h (ditto)
+        Move SVGRenderingIntent enums from ksvg.h into it's own file SVGRenderingIntent.h (ditto)
+        Move SVGZoomAndPan enums from ksvg.h into SVGSVGElement (ditto)
+        Move SVGFE* related enums into their respecitive classes.
+
+        Fix JSSVGNumber to operator on doubles, instead of floats.
+
+        * ksvg2/bindings/js/JSSVGNumber.cpp:
+        (WebCore::getJSSVGNumber):
+        * ksvg2/bindings/js/JSSVGNumber.h:
+        (WebCore::JSSVGNumber::JSSVGNumber):
+        * ksvg2/css/SVGCSSParser.cpp:
+        (WebCore::CSSParser::parseSVGValue):
+        (WebCore::CSSParser::parseSVGPaint):
+        * ksvg2/css/SVGRenderStyleDefs.cpp:
+        (StyleFillData::operator==):
+        * ksvg2/ksvg.h:
+        * ksvg2/misc/KCanvasRenderingStyle.cpp:
+        (WebCore::KSVGPainterFactory::isFilled):
+        (WebCore::KSVGPainterFactory::fillPaintServer):
+        (WebCore::KSVGPainterFactory::isStroked):
+        (WebCore::KSVGPainterFactory::strokePaintServer):
+        * ksvg2/misc/KSVGTimeScheduler.cpp:
+        (WebCore::SVGTimer::notifyAll):
+        * ksvg2/svg/SVGAnimateColorElement.cpp:
+        (WebCore::SVGAnimateColorElement::handleTimerEvent):
+        * ksvg2/svg/SVGAnimateTransformElement.cpp:
+        (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
+        (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
+        (WebCore::SVGAnimateTransformElement::handleTimerEvent):
+        (WebCore::SVGAnimateTransformElement::parseTransformValue):
+        * ksvg2/svg/SVGAnimateTransformElement.h:
+        * ksvg2/svg/SVGAnimatedTemplate.h:
+        * ksvg2/svg/SVGAnimationElement.cpp:
+        (SVGAnimationElement::getSimpleDuration):
+        (SVGAnimationElement::parseMappedAttribute):
+        (SVGAnimationElement::setTargetAttribute):
+        * ksvg2/svg/SVGAnimationElement.h:
+        * ksvg2/svg/SVGClipPathElement.cpp:
+        (SVGClipPathElement::SVGClipPathElement):
+        (SVGClipPathElement::parseMappedAttribute):
+        (SVGClipPathElement::canvasResource):
+        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
+        (SVGComponentTransferFunctionElement::transferFunction):
+        * ksvg2/svg/SVGComponentTransferFunctionElement.h:
+        (WebCore::SVGComponentTransferFunctionElement::):
+        * ksvg2/svg/SVGDocument.cpp:
+        (WebCore::SVGDocument::dispatchZoomEvent):
+        (WebCore::SVGDocument::dispatchScrollEvent):
+        * ksvg2/svg/SVGFEBlendElement.cpp:
+        (WebCore::SVGFEBlendElement::parseMappedAttribute):
+        (WebCore::SVGFEBlendElement::filterEffect):
+        * ksvg2/svg/SVGFEBlendElement.h:
+        (WebCore::SVGFEBlendElement::):
+        * ksvg2/svg/SVGFEColorMatrixElement.cpp:
+        (SVGFEColorMatrixElement::parseMappedAttribute):
+        (SVGFEColorMatrixElement::filterEffect):
+        * ksvg2/svg/SVGFEColorMatrixElement.h:
+        (WebCore::SVGFEColorMatrixElement::):
+        * ksvg2/svg/SVGFEComponentTransferElement.cpp:
+        (WebCore::SVGFEComponentTransferElement::parseMappedAttribute):
+        (WebCore::SVGFEComponentTransferElement::filterEffect):
+        * ksvg2/svg/SVGFEComponentTransferElement.h:
+        * ksvg2/svg/SVGFECompositeElement.cpp:
+        (SVGFECompositeElement::parseMappedAttribute):
+        (SVGFECompositeElement::filterEffect):
+        * ksvg2/svg/SVGFECompositeElement.h:
+        (WebCore::SVGFECompositeElement::):
+        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
+        (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
+        (WebCore::SVGFEDiffuseLightingElement::filterEffect):
+        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
+        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
+        (SVGFEDisplacementMapElement::parseMappedAttribute):
+        (SVGFEDisplacementMapElement::filterEffect):
+        * ksvg2/svg/SVGFEDisplacementMapElement.h:
+        (WebCore::SVGFEDisplacementMapElement::):
+        * ksvg2/svg/SVGFEFloodElement.cpp:
+        (WebCore::SVGFEFloodElement::parseMappedAttribute):
+        (WebCore::SVGFEFloodElement::filterEffect):
+        * ksvg2/svg/SVGFEFloodElement.h:
+        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
+        (SVGFEGaussianBlurElement::parseMappedAttribute):
+        (SVGFEGaussianBlurElement::filterEffect):
+        * ksvg2/svg/SVGFEGaussianBlurElement.h:
+        * ksvg2/svg/SVGFEMergeElement.cpp:
+        (SVGFEMergeElement::filterEffect):
+        * ksvg2/svg/SVGFEMergeNodeElement.cpp:
+        (SVGFEMergeNodeElement::parseMappedAttribute):
+        * ksvg2/svg/SVGFEMergeNodeElement.h:
+        * ksvg2/svg/SVGFEOffsetElement.cpp:
+        (SVGFEOffsetElement::parseMappedAttribute):
+        (SVGFEOffsetElement::filterEffect):
+        * ksvg2/svg/SVGFEOffsetElement.h:
+        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
+        (SVGFESpecularLightingElement::parseMappedAttribute):
+        (SVGFESpecularLightingElement::filterEffect):
+        * ksvg2/svg/SVGFESpecularLightingElement.h:
+        * ksvg2/svg/SVGFETileElement.cpp:
+        (WebCore::SVGFETileElement::parseMappedAttribute):
+        (WebCore::SVGFETileElement::filterEffect):
+        * ksvg2/svg/SVGFETileElement.h:
+        * ksvg2/svg/SVGFETurbulenceElement.h:
+        (WebCore::SVGFETurbulenceElement::):
+        * ksvg2/svg/SVGFilterElement.cpp:
+        (SVGFilterElement::SVGFilterElement):
+        (SVGFilterElement::parseMappedAttribute):
+        (SVGFilterElement::canvasResource):
+        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
+        (SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
+        * ksvg2/svg/SVGGradientElement.cpp:
+        (SVGGradientElement::SVGGradientElement):
+        (SVGGradientElement::parseMappedAttribute):
+        * ksvg2/svg/SVGGradientElement.h:
+        (WebCore::SVGGradientElement::):
+        * ksvg2/svg/SVGHelper.cpp:
+        (WebCore::SVGHelper::ParseSeperatedList):
+        * ksvg2/svg/SVGLengthList.cpp:
+        (WebCore::SVGLengthList::parse):
+        * ksvg2/svg/SVGLinearGradientElement.cpp:
+        (SVGLinearGradientElement::buildGradient):
+        * ksvg2/svg/SVGList.h:
+        (WebCore::SVGListBase::clear):
+        (WebCore::SVGListBase::initialize):
+        (WebCore::SVGListBase::getItem):
+        (WebCore::SVGListBase::insertItemBefore):
+        (WebCore::SVGListBase::replaceItem):
+        (WebCore::SVGListBase::removeItem):
+        (WebCore::SVGListBase::appendItem):
+        * ksvg2/svg/SVGLocatable.cpp:
+        * ksvg2/svg/SVGLocatable.h:
+        * ksvg2/svg/SVGMarkerElement.h:
+        (WebCore::SVGMarkerElement::):
+        * ksvg2/svg/SVGNumberList.cpp:
+        (SVGNumberList::parse):
+        * ksvg2/svg/SVGPaint.cpp:
+        (WebCore::SVGPaint::SVGPaint):
+        (WebCore::SVGPaint::uri):
+        (WebCore::SVGPaint::setUri):
+        (WebCore::SVGPaint::setPaint):
+        * ksvg2/svg/SVGPaint.h:
+        (WebCore::SVGPaint::):
+        * ksvg2/svg/SVGPathElement.cpp:
+        (WebCore::SVGPathElement::svgMoveTo):
+        (WebCore::SVGPathElement::svgLineTo):
+        (WebCore::SVGPathElement::svgLineToHorizontal):
+        (WebCore::SVGPathElement::svgLineToVertical):
+        (WebCore::SVGPathElement::svgCurveToCubic):
+        (WebCore::SVGPathElement::svgCurveToCubicSmooth):
+        (WebCore::SVGPathElement::svgCurveToQuadratic):
+        (WebCore::SVGPathElement::svgCurveToQuadraticSmooth):
+        (WebCore::SVGPathElement::svgArcTo):
+        (WebCore::SVGPathElement::svgClosePath):
+        (WebCore::SVGPathElement::parseMappedAttribute):
+        (WebCore::SVGPathElement::toPathData):
+        * ksvg2/svg/SVGPatternElement.cpp:
+        (WebCore::SVGPatternElement::SVGPatternElement):
+        (WebCore::SVGPatternElement::parseMappedAttribute):
+        (WebCore::SVGPatternElement::fillAttributesFromReferencePattern):
+        (WebCore::SVGPatternElement::drawPatternContentIntoTile):
+        * ksvg2/svg/SVGPolyElement.cpp:
+        (SVGPolyElement::parseMappedAttribute):
+        (SVGPolyElement::svgPolyTo):
+        (SVGPolyElement::notifyAttributeChange):
+        * ksvg2/svg/SVGPolygonElement.cpp:
+        (SVGPolygonElement::toPathData):
+        * ksvg2/svg/SVGPolylineElement.cpp:
+        (SVGPolylineElement::toPathData):
+        * ksvg2/svg/SVGRadialGradientElement.cpp:
+        (WebCore::SVGRadialGradientElement::buildGradient):
+        * ksvg2/svg/SVGRenderingIntent.h: Added.
+        (WebCore::SVGRenderingIntent::):
+        (WebCore::SVGRenderingIntent::SVGRenderingIntent):
+        (WebCore::SVGRenderingIntent::~SVGRenderingIntent):
+        * ksvg2/svg/SVGSVGElement.h:
+        (WebCore::SVGSVGElement::):
+        * ksvg2/svg/SVGScriptElement.cpp:
+        (WebCore::SVGScriptElement::type):
+        (WebCore::SVGScriptElement::setType):
+        (WebCore::SVGScriptElement::parseMappedAttribute):
+        * ksvg2/svg/SVGScriptElement.h:
+        * ksvg2/svg/SVGStringList.cpp:
+        (WebCore::SVGStringList::reset):
+        * ksvg2/svg/SVGStyledLocatableElement.cpp:
+        (SVGStyledLocatableElement::getTransformToElement):
+        * ksvg2/svg/SVGStyledLocatableElement.h:
+        * ksvg2/svg/SVGStyledTransformableElement.cpp:
+        (SVGStyledTransformableElement::parseMappedAttribute):
+        (SVGStyledTransformableElement::getTransformToElement):
+        * ksvg2/svg/SVGStyledTransformableElement.h:
+        * ksvg2/svg/SVGTests.cpp:
+        (WebCore::SVGTests::hasExtension):
+        (WebCore::SVGTests::isValid):
+        * ksvg2/svg/SVGTests.h:
+        * ksvg2/svg/SVGTextContentElement.cpp:
+        (SVGTextContentElement::getSubStringLength):
+        (SVGTextContentElement::getStartPositionOfChar):
+        (SVGTextContentElement::getEndPositionOfChar):
+        (SVGTextContentElement::getExtentOfChar):
+        (SVGTextContentElement::getRotationOfChar):
+        (SVGTextContentElement::selectSubString):
+        * ksvg2/svg/SVGTextContentElement.h:
+        (WebCore::SVGTextContentElement::):
+        * ksvg2/svg/SVGTextElement.cpp:
+        (WebCore::SVGTextElement::parseMappedAttribute):
+        * ksvg2/svg/SVGTextElement.h:
+        (WebCore::SVGTextElement::getTransformToElement):
+        * ksvg2/svg/SVGTransform.h:
+        * ksvg2/svg/SVGTransformList.cpp:
+        (SVGTransformList::consolidate):
+        (SVGTransformList::concatenate):
+        * ksvg2/svg/SVGTransformable.cpp:
+        (SVGTransformable::parseTransformAttribute):
+        * ksvg2/svg/SVGUnitTypes.h: Added.
+        (WebCore::SVGUnitTypes::):
+        (WebCore::SVGUnitTypes::SVGUnitTypes):
+        (WebCore::SVGUnitTypes::~SVGUnitTypes):
+        * ksvg2/svg/SVGUseElement.cpp:
+        (SVGUseElement::closeRenderer):
+        * ksvg2/svg/SVGViewElement.h:
+        (WebCore::SVGViewElement::):
+        * ksvg2/svg/SVGZoomAndPan.cpp:
+        (WebCore::SVGZoomAndPan::SVGZoomAndPan):
+        (WebCore::SVGZoomAndPan::parseMappedAttribute):
+
 2006-09-12  John Sullivan  <sullivan@apple.com>
 
         Reviewed by Adele Peterson.
index 5c769524d63bda00e43bace51fdddd252675539d..c87c49bb133ffcda9d2be8a070090c5ad85b3f0f 100644 (file)
@@ -302,8 +302,8 @@ bool RenderPath::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, H
     
     bool isVisible = (style()->visibility() == VISIBLE);
     if (isVisible || !hitRules.requireVisible) {
-        bool hasFill = (style()->svgStyle()->fillPaint() && style()->svgStyle()->fillPaint()->paintType() != SVG_PAINTTYPE_NONE);
-        bool hasStroke = (style()->svgStyle()->strokePaint() && style()->svgStyle()->strokePaint()->paintType() != SVG_PAINTTYPE_NONE);
+        bool hasFill = (style()->svgStyle()->fillPaint() && style()->svgStyle()->fillPaint()->paintType() != SVGPaint::SVG_PAINTTYPE_NONE);
+        bool hasStroke = (style()->svgStyle()->strokePaint() && style()->svgStyle()->strokePaint()->paintType() != SVGPaint::SVG_PAINTTYPE_NONE);
         FloatPoint hitPoint(_x,_y);
         if ((hitRules.canHitStroke && (hasStroke || !hitRules.requireStroke) && strokeContains(hitPoint, hitRules.requireStroke))
             || (hitRules.canHitFill && (hasFill || !hitRules.requireFill) && fillContains(hitPoint, hitRules.requireFill))) {
index d9eb07ecf44424bd55274af9023ddbab37a73644..bed7d59a5cb7799af4411dad8ffd4b3bc7decea6 100644 (file)
@@ -53,7 +53,7 @@ JSValue* JSSVGNumber::getValue(ExecState* exec, JSObject* originalObject, const
     return 0;
 }
 
-JSValue* getJSSVGNumber(ExecState* exec, float v)
+JSValue* getJSSVGNumber(ExecState* exec, double v)
 {
     return new JSSVGNumber(exec, v);
 }
index f018ee9bf747c389a760bf2b3d457942c481e517..96b8798541b31f734c150581cfd7dfdd64a03c89 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class JSSVGNumber : public KJS::DOMObject {
 public:
-    JSSVGNumber(KJS::ExecState*, float v) : m_value(v) { }
+    JSSVGNumber(KJS::ExecState*, double v) : m_value(v) { }
     ~JSSVGNumber();
     
     virtual bool getOwnPropertySlot(KJS::ExecState*, const KJS::Identifier&, KJS::PropertySlot&);
@@ -42,10 +42,10 @@ public:
     virtual const KJS::ClassInfo* classInfo() const { return &info; }
     static const KJS::ClassInfo info;
 private:
-    float m_value;
+    double m_value;
 };
 
-KJS::JSValue* getJSSVGNumber(KJS::ExecState*, float);
+KJS::JSValue* getJSSVGNumber(KJS::ExecState*, double);
 
 }
 
index e69a57f9e6b1c7815ac7cda5dbce6940fcf5c452..6bfafb7c93835ca0dae8876eecd851a86835e0d3 100644 (file)
@@ -214,11 +214,11 @@ bool CSSParser::parseSVGValue(int propId, bool important)
     case SVGCSS_PROP_STROKE:               // <paint> | inherit
         {
             if (id == CSS_VAL_NONE)
-                parsedValue = new SVGPaint(SVG_PAINTTYPE_NONE);
+                parsedValue = new SVGPaint(SVGPaint::SVG_PAINTTYPE_NONE);
             else if (id == SVGCSS_VAL_CURRENTCOLOR)
-                parsedValue = new SVGPaint(SVG_PAINTTYPE_CURRENTCOLOR);
+                parsedValue = new SVGPaint(SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR);
             else if (value->unit == CSSPrimitiveValue::CSS_URI)
-                parsedValue = new SVGPaint(SVG_PAINTTYPE_URI, domString(value->string).impl());
+                parsedValue = new SVGPaint(SVGPaint::SVG_PAINTTYPE_URI, domString(value->string).impl());
             else
                 parsedValue = parseSVGPaint();
 
@@ -354,13 +354,13 @@ CSSValue* CSSParser::parseSVGPaint()
     if (!strict && value->unit == CSSPrimitiveValue::CSS_NUMBER &&
        value->fValue >= 0. && value->fValue < 1000000.) {
         String str = String::sprintf("%06d", (int)(value->fValue+.5));
-        return new SVGPaint(SVG_PAINTTYPE_RGBCOLOR, 0, str.impl());
+        return new SVGPaint(SVGPaint::SVG_PAINTTYPE_RGBCOLOR, String(), str);
     } else if (value->unit == CSSPrimitiveValue::CSS_RGBCOLOR) {
         String str = "#" + domString(value->string);
-        return new SVGPaint(SVG_PAINTTYPE_RGBCOLOR, 0, str.impl());
+        return new SVGPaint(SVGPaint::SVG_PAINTTYPE_RGBCOLOR, String(), str);
     } else if (value->unit == CSSPrimitiveValue::CSS_IDENT ||
            (!strict && value->unit == CSSPrimitiveValue::CSS_DIMENSION))
-        return new SVGPaint(SVG_PAINTTYPE_RGBCOLOR, 0, domString(value->string).impl());
+        return new SVGPaint(SVGPaint::SVG_PAINTTYPE_RGBCOLOR, String(), domString(value->string));
     else if (value->unit == Value::Function && value->function->args != 0 &&
             domString(value->function->name).lower() == "rgb(") {
         ValueList* args = value->function->args;
@@ -386,7 +386,7 @@ CSSValue* CSSParser::parseSVGPaint()
         g = max(0, min(255, g));
         b = max(0, min(255, b));
         
-        return new SVGPaint(SVG_PAINTTYPE_RGBCOLOR, 0, String::sprintf("rgb(%d, %d, %d)", r, g, b).impl());
+        return new SVGPaint(SVGPaint::SVG_PAINTTYPE_RGBCOLOR, String(), String::sprintf("rgb(%d, %d, %d)", r, g, b).impl());
     }
     else
         return 0;
index 9d51707ba092db66d3681b86a0949a5131505ec8..1ef6de92484b92f64cdbed857764f9de98a5bb3f 100644 (file)
@@ -58,10 +58,10 @@ bool StyleFillData::operator==(const StyleFillData &other) const
     if(paint->paintType() != other.paint->paintType())
         return false;
 
-    if(paint->paintType() == SVG_PAINTTYPE_URI)
+    if(paint->paintType() == SVGPaint::SVG_PAINTTYPE_URI)
         return paint->uri() == other.paint->uri();
 
-    if(paint->paintType() == SVG_PAINTTYPE_RGBCOLOR)
+    if(paint->paintType() == SVGPaint::SVG_PAINTTYPE_RGBCOLOR)
         return paint->color() == other.paint->color();
 
     return (paint == other.paint) && (opacity == other.opacity);
index efd6712b652b673e8a81431d5768f88ad9565359..77b79e518463247fb3fed1e0291c0dc9183ed178 100644 (file)
@@ -36,42 +36,11 @@ namespace WebCore {
         SVG_INVALID_VALUE_ERR        = 2,
         SVG_MATRIX_NOT_INVERTABLE    = 3
     };
-    
-    enum SVGUnitTypes {
-        SVG_UNIT_TYPE_UNKNOWN               = 0,
-        SVG_UNIT_TYPE_USERSPACEONUSE        = 1,
-        SVG_UNIT_TYPE_OBJECTBOUNDINGBOX     = 2
-    };
-
-    enum SVGRenderingIntentType {
-        RENDERING_INTENT_UNKNOWN                  = 0,
-        RENDERING_INTENT_AUTO                     = 1,
-        RENDERING_INTENT_PERCEPTUAL               = 2,
-        RENDERING_INTENT_RELATIVE_COLORIMETRIC    = 3,
-        RENDERING_INTENT_SATURATION               = 4,
-        RENDERING_INTENT_ABSOLUTE_COLORIMETRIC    = 5
-    };
-    
-    enum SVGTransformType {
-        SVG_TRANSFORM_UNKNOWN           = 0,
-        SVG_TRANSFORM_MATRIX            = 1,
-        SVG_TRANSFORM_TRANSLATE         = 2,
-        SVG_TRANSFORM_SCALE             = 3,
-        SVG_TRANSFORM_ROTATE            = 4,
-        SVG_TRANSFORM_SKEWX             = 5,
-        SVG_TRANSFORM_SKEWY             = 6
-    };
-
+       
     enum SVGCSSRuleType {
         COLOR_PROFILE_RULE = 7
     };
 
-    enum SVGLengthAdjustType {
-        LENGTHADJUST_UNKNOWN            = 0,
-        LENGTHADJUST_SPACING            = 1,
-        LENGTHADJUST_SPACINGANDGLYPHS   = 2
-    };
-
     enum SVGTextPathMethodType {
         TEXTPATH_METHODTYPE_UNKNOWN    = 0,
         TEXTPATH_METHODTYPE_ALIGN      = 1,
@@ -84,80 +53,6 @@ namespace WebCore {
         TEXTPATH_SPACINGTYPE_EXACT      = 2
     };
 
-    enum SVGPaintType {
-        SVG_PAINTTYPE_UNKNOWN               = 0,
-        SVG_PAINTTYPE_RGBCOLOR              = 1,
-        SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2,
-        SVG_PAINTTYPE_NONE                  = 101,
-        SVG_PAINTTYPE_CURRENTCOLOR          = 102,
-        SVG_PAINTTYPE_URI_NONE              = 103,
-        SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104,
-        SVG_PAINTTYPE_URI_RGBCOLOR          = 105,
-        SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,
-        SVG_PAINTTYPE_URI                   = 107
-    };
-
-    enum SVGMarkerUnitsType {
-        SVG_MARKERUNITS_UNKNOWN           = 0,
-        SVG_MARKERUNITS_USERSPACEONUSE    = 1,
-        SVG_MARKERUNITS_STROKEWIDTH       = 2
-    };
-
-    enum SVGMarkerOrientType {
-        SVG_MARKER_ORIENT_UNKNOWN    = 0,
-        SVG_MARKER_ORIENT_AUTO       = 1,
-        SVG_MARKER_ORIENT_ANGLE      = 2
-    };
-
-    enum SVGGradientType {
-        SVG_SPREADMETHOD_UNKNOWN = 0,
-        SVG_SPREADMETHOD_PAD     = 1,
-        SVG_SPREADMETHOD_REFLECT = 2,
-        SVG_SPREADMETHOD_REPEAT  = 3
-    };
-
-    enum SVGZoomAndPanType {
-        SVG_ZOOMANDPAN_UNKNOWN = 0,
-        SVG_ZOOMANDPAN_DISABLE = 1,
-        SVG_ZOOMANDPAN_MAGNIFY = 2
-    };
-
-    enum SVGBlendModeType {
-        SVG_FEBLEND_MODE_UNKNOWN  = 0,
-        SVG_FEBLEND_MODE_NORMAL   = 1,
-        SVG_FEBLEND_MODE_MULTIPLY = 2,
-        SVG_FEBLEND_MODE_SCREEN   = 3,
-        SVG_FEBLEND_MODE_DARKEN   = 4,
-        SVG_FEBLEND_MODE_LIGHTEN  = 5
-    };
-
-    enum SVGColorMatrixType {
-        SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
-        SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
-        SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
-        SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
-        SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
-    };
-
-    enum SVGComponentTransferType {
-        SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
-        SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
-        SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
-        SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
-        SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
-        SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
-    };
-
-    enum SVGCompositeOperators {
-        SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
-        SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
-        SVG_FECOMPOSITE_OPERATOR_IN         = 2,
-        SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
-        SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
-        SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
-        SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
-    };
-
     enum SVGEdgeModes {
         SVG_EDGEMODE_UNKNOWN   = 0,
         SVG_EDGEMODE_DUPLICATE = 1,
@@ -165,32 +60,12 @@ namespace WebCore {
         SVG_EDGEMODE_NONE      = 3
     };
 
-    enum SVGChannelSelectors {
-        SVG_CHANNEL_UNKNOWN = 0,
-        SVG_CHANNEL_R       = 1,
-        SVG_CHANNEL_G       = 2,
-        SVG_CHANNEL_B       = 3,
-        SVG_CHANNEL_A       = 4
-    };
-
     enum SVGMorphologyOperators {
         SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
         SVG_MORPHOLOGY_OPERATOR_ERODE   = 1,
         SVG_MORPHOLOGY_OPERATOR_DILATE  = 2
     };
 
-    enum SVGTurbulenceType {
-        SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
-        SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
-        SVG_TURBULENCE_TYPE_TURBULENCE   = 2
-    };
-
-    enum SVGStitchOptions {
-        SVG_STITCHTYPE_UNKNOWN  = 0,
-        SVG_STITCHTYPE_STITCH   = 1,
-        SVG_STITCHTYPE_NOSTITCH = 2
-    };
-
 } // namespace WebCore
 
 #endif // SVG_SUPPORT
index 8571483e943030b70cddd0220beccfb63bf2672c..be52d49074e433c7e846c6fbda472120edbedf05 100644 (file)
@@ -54,7 +54,7 @@ static KRenderingPaintServerSolid* sharedSolidPaintServer()
 bool KSVGPainterFactory::isFilled(const RenderStyle *style)
 {
     SVGPaint *fill = style->svgStyle()->fillPaint();
-    if (fill && fill->paintType() == SVG_PAINTTYPE_NONE)
+    if (fill && fill->paintType() == SVGPaint::SVG_PAINTTYPE_NONE)
         return false;
     return true;
 }
@@ -71,7 +71,7 @@ KRenderingPaintServer *KSVGPainterFactory::fillPaintServer(const RenderStyle* st
         // initial value (black)
         fillPaintServer = sharedSolidPaintServer();
         static_cast<KRenderingPaintServerSolid *>(fillPaintServer)->setColor(Color::black);
-    } else if (fill->paintType() == SVG_PAINTTYPE_URI) {
+    } else if (fill->paintType() == SVGPaint::SVG_PAINTTYPE_URI) {
         String id(fill->uri());
         fillPaintServer = getPaintServerById(item->document(), AtomicString(id.substring(1)));
         if (item && fillPaintServer && item->isRenderPath())
@@ -79,7 +79,7 @@ KRenderingPaintServer *KSVGPainterFactory::fillPaintServer(const RenderStyle* st
     } else {
         fillPaintServer = sharedSolidPaintServer();
         KRenderingPaintServerSolid *fillPaintServerSolid = static_cast<KRenderingPaintServerSolid *>(fillPaintServer);
-        if (fill->paintType() == SVG_PAINTTYPE_CURRENTCOLOR)
+        if (fill->paintType() == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR)
             fillPaintServerSolid->setColor(style->color());
         else
             fillPaintServerSolid->setColor(fill->color());
@@ -92,7 +92,7 @@ KRenderingPaintServer *KSVGPainterFactory::fillPaintServer(const RenderStyle* st
 bool KSVGPainterFactory::isStroked(const RenderStyle *style)
 {
     SVGPaint *stroke = style->svgStyle()->strokePaint();
-    if (!stroke || stroke->paintType() == SVG_PAINTTYPE_NONE)
+    if (!stroke || stroke->paintType() == SVGPaint::SVG_PAINTTYPE_NONE)
         return false;
     return true;
 }
@@ -105,7 +105,7 @@ KRenderingPaintServer *KSVGPainterFactory::strokePaintServer(const RenderStyle*
     SVGPaint *stroke = style->svgStyle()->strokePaint();
 
     KRenderingPaintServer *strokePaintServer;
-    if (stroke && stroke->paintType() == SVG_PAINTTYPE_URI) {
+    if (stroke && stroke->paintType() == SVGPaint::SVG_PAINTTYPE_URI) {
         String id(stroke->uri());
         strokePaintServer = getPaintServerById(item->document(), AtomicString(id.substring(1)));
         if(item && strokePaintServer && item->isRenderPath())
@@ -113,7 +113,7 @@ KRenderingPaintServer *KSVGPainterFactory::strokePaintServer(const RenderStyle*
     } else {
         strokePaintServer = sharedSolidPaintServer();
         KRenderingPaintServerSolid *strokePaintServerSolid = static_cast<KRenderingPaintServerSolid *>(strokePaintServer);
-        if (stroke->paintType() == SVG_PAINTTYPE_CURRENTCOLOR)
+        if (stroke->paintType() == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR)
             strokePaintServerSolid->setColor(style->color());
         else
             strokePaintServerSolid->setColor(stroke->color());
index cdba1e2073acc76db6b55d1dab92ab5a9b5af431..83949b94f69715e8bbe6bf2d5255664e08c22858 100644 (file)
@@ -114,7 +114,9 @@ void SVGTimer::notifyAll()
     // the animations -> 'additive' support is handled this way.
     typedef HashMap<SVGElement*, Vector<SVGAnimationElement*> > TargetAnimationMap;
     TargetAnimationMap targetMap;
-    
+
+    ExceptionCode ec = 0;
+
     SVGNotifySet::const_iterator end = m_notifySet.end();
     for (SVGNotifySet::const_iterator it = m_notifySet.begin(); it != end; ++it) {
         SVGAnimationElement* animation = *it;
@@ -124,7 +126,7 @@ void SVGTimer::notifyAll()
         if (!m_enabledNotifySet.contains(animation)) {
             if (!animation->isFrozen())
                 continue;
-            if (elapsed <= (animation->getStartTime() + animation->getSimpleDuration()))
+            if (elapsed <= (animation->getStartTime() + animation->getSimpleDuration(ec)))
                 continue;
         }
 
@@ -151,7 +153,7 @@ void SVGTimer::notifyAll()
 
             double end = animation->getEndTime();
             double start = animation->getStartTime();
-            double duration = animation->getSimpleDuration();
+            double duration = animation->getSimpleDuration(ec);
             double repetitions = animation->repeations();
 
             // Validate animation timing settings:
index 516fd014e38bdaa531fa2e8dcd73feae6eb6693e..faa193c746d62080ad73f02e377a04811072382d 100644 (file)
@@ -150,9 +150,11 @@ void SVGAnimateColorElement::handleTimerEvent(double timePercentage)
 
         if (m_currentItem != itemByPercentage) // Item changed...
         {
+            ExceptionCode ec = 0;
+
             // Extract current 'from' / 'to' values
-            String value1 = String(m_values->getItem(itemByPercentage));
-            String value2 = String(m_values->getItem(itemByPercentage + 1));
+            String value1 = String(m_values->getItem(itemByPercentage, ec));
+            String value2 = String(m_values->getItem(itemByPercentage + 1, ec));
 
             // Calculate r/g/b shifting values...
             if (!value1.isEmpty() && !value2.isEmpty()) {
index 7a27203b094bdbe3df483637d81e892abbe5f1c5..df11d7a0c9c94442d951c126cbbec67f15c76d87 100644 (file)
@@ -47,7 +47,7 @@ namespace WebCore {
 SVGAnimateTransformElement::SVGAnimateTransformElement(const QualifiedName& tagName, Document *doc)
     : SVGAnimationElement(tagName, doc)
     , m_currentItem(-1)
-    , m_type(SVG_TRANSFORM_UNKNOWN)
+    , m_type(SVGTransform::SVG_TRANSFORM_UNKNOWN)
     , m_rotateSpecialCase(false)
     , m_toRotateSpecialCase(false)
     , m_fromRotateSpecialCase(false)
@@ -63,15 +63,15 @@ void SVGAnimateTransformElement::parseMappedAttribute(MappedAttribute *attr)
     if (attr->name() == SVGNames::typeAttr) {
         const String& value = attr->value();
         if (value == "translate")
-            m_type = SVG_TRANSFORM_TRANSLATE;
+            m_type = SVGTransform::SVG_TRANSFORM_TRANSLATE;
         else if (value == "scale")
-            m_type = SVG_TRANSFORM_SCALE;
+            m_type = SVGTransform::SVG_TRANSFORM_SCALE;
         else if (value == "rotate")
-            m_type = SVG_TRANSFORM_ROTATE;
+            m_type = SVGTransform::SVG_TRANSFORM_ROTATE;
         else if (value == "skewX")
-            m_type = SVG_TRANSFORM_SKEWX;
+            m_type = SVGTransform::SVG_TRANSFORM_SKEWX;
         else if (value == "skewY")
-            m_type = SVG_TRANSFORM_SKEWY;
+            m_type = SVGTransform::SVG_TRANSFORM_SKEWY;
     } else
         SVGAnimationElement::parseMappedAttribute(attr);
 }
@@ -87,8 +87,9 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
             SVGStyledTransformableElement *transform = static_cast<SVGStyledTransformableElement *>(targetElement());
             RefPtr<SVGTransformList> transformList = transform->transformBaseValue();
             if (transformList) {
+                ExceptionCode ec = 0;
                 for (unsigned long i = 0; i < transformList->numberOfItems(); i++) {
-                    SVGTransform *value = transformList->getItem(i);
+                    SVGTransform *value = transformList->getItem(i, ec);
                     if (!value)
                         continue;
                         
@@ -182,9 +183,11 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
         
         if (m_currentItem != itemByPercentage) // Item changed...
         {
+            ExceptionCode ec = 0;
+
             // Extract current 'from' / 'to' values
-            String value1 = String(m_values->getItem(itemByPercentage));
-            String value2 = String(m_values->getItem(itemByPercentage + 1));
+            String value1 = String(m_values->getItem(itemByPercentage, ec));
+            String value2 = String(m_values->getItem(itemByPercentage + 1, ec));
 
             // Calculate new from/to transform values...
             if (!value1.isEmpty() && !value2.isEmpty()) {
@@ -230,7 +233,7 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
     
     switch(m_type)
     {
-        case SVG_TRANSFORM_TRANSLATE:
+        case SVGTransform::SVG_TRANSFORM_TRANSLATE:
         {
             double dx = ((qToMatrix.dx() - qFromMatrix.dx()) * useTimePercentage) + qFromMatrix.dx();
             double dy = ((qToMatrix.dy() - qFromMatrix.dy()) * useTimePercentage) + qFromMatrix.dy();
@@ -238,7 +241,7 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
             m_transformMatrix->translate(dx, dy);
             break;
         }
-        case SVG_TRANSFORM_SCALE:
+        case SVGTransform::SVG_TRANSFORM_SCALE:
         {
             double sx = ((qToMatrix.m11() - qFromMatrix.m11()) * useTimePercentage) + qFromMatrix.m11();
             double sy = ((qToMatrix.m22() - qFromMatrix.m22()) * useTimePercentage) + qFromMatrix.m22();
@@ -246,7 +249,7 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
             m_transformMatrix->scaleNonUniform(sx, sy);
             break;
         }
-        case SVG_TRANSFORM_ROTATE:
+        case SVGTransform::SVG_TRANSFORM_ROTATE:
         {
             double toAngle, toCx, toCy, fromAngle, fromCx, fromCy;
             calculateRotationFromMatrix(qToMatrix, toAngle, toCx, toCy);
@@ -275,7 +278,7 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
             m_transformMatrix->translate(-cx, -cy);
             break;
         }
-        case SVG_TRANSFORM_SKEWX:
+        case SVGTransform::SVG_TRANSFORM_SKEWX:
         {
             double sx = (SVGAngle::todeg(atan(qToMatrix.m21()) - atan(qFromMatrix.m21())) *
                          useTimePercentage) + SVGAngle::todeg(atan(qFromMatrix.m21()));
@@ -283,7 +286,7 @@ void SVGAnimateTransformElement::handleTimerEvent(double timePercentage)
             m_transformMatrix->skewX(sx);
             break;
         }
-        case SVG_TRANSFORM_SKEWY:
+        case SVGTransform::SVG_TRANSFORM_SKEWY:
         {
             double sy = (SVGAngle::todeg(atan(qToMatrix.m12()) - atan(qFromMatrix.m12())) *
                          useTimePercentage) + SVGAngle::todeg(atan(qFromMatrix.m12()));
@@ -340,7 +343,7 @@ RefPtr<SVGTransform> SVGAnimateTransformElement::parseTransformValue(const Depre
     
     switch(m_type)
     {
-        case SVG_TRANSFORM_TRANSLATE:
+        case SVGTransform::SVG_TRANSFORM_TRANSLATE:
         {
             double tx = 0.0, ty = 0.0;
             if (commaPos != - 1) {
@@ -352,7 +355,7 @@ RefPtr<SVGTransform> SVGAnimateTransformElement::parseTransformValue(const Depre
             parsedTransform->setTranslate(tx, ty);
             break;    
         }
-        case SVG_TRANSFORM_SCALE:
+        case SVGTransform::SVG_TRANSFORM_SCALE:
         {
             double sx = 1.0, sy = 1.0;
             if (commaPos != - 1) {
@@ -366,7 +369,7 @@ RefPtr<SVGTransform> SVGAnimateTransformElement::parseTransformValue(const Depre
             parsedTransform->setScale(sx, sy);
             break;
         }
-        case SVG_TRANSFORM_ROTATE:
+        case SVGTransform::SVG_TRANSFORM_ROTATE:
         {
             double angle = 0, cx = 0, cy = 0;
             if (commaPos != - 1) {
@@ -399,12 +402,12 @@ RefPtr<SVGTransform> SVGAnimateTransformElement::parseTransformValue(const Depre
             parsedTransform->setRotate(angle, cx, cy);
             break;    
         }
-        case SVG_TRANSFORM_SKEWX:
-        case SVG_TRANSFORM_SKEWY:
+        case SVGTransform::SVG_TRANSFORM_SKEWX:
+        case SVGTransform::SVG_TRANSFORM_SKEWY:
         {
             double angle = parse.toDouble(); // TODO: probably needs it's own 'angle' parser
             
-            if (m_type == SVG_TRANSFORM_SKEWX)
+            if (m_type == SVGTransform::SVG_TRANSFORM_SKEWX)
                 parsedTransform->setSkewX(angle);
             else
                 parsedTransform->setSkewY(angle);
index b2fb333c575d32bcc85fbc3478e5cb50b9396c3c..2640520b7b35202e690629379f1ea43f13e32383 100644 (file)
 #define KSVG_SVGAnimateTransformElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "ksvg.h"
+#include "SVGTransform.h"
 #include "SVGAnimationElement.h"
 
 namespace WebCore {
 
-    class SVGTransform;
     class AffineTransform;
 
     class SVGAnimateTransformElement : public SVGAnimationElement {
@@ -53,7 +52,7 @@ namespace WebCore {
 
     private:
         int m_currentItem;
-        SVGTransformType m_type;
+        SVGTransform::SVGTransformType m_type;
 
         RefPtr<SVGTransform> m_toTransform;
         RefPtr<SVGTransform> m_fromTransform;
index 8ab800ad3b2cb567737dfcabc1484eb9ba0711c4..0fe0c9682116fcf1981f0996ef04f27ab664b4bb 100644 (file)
 namespace WebCore {
     class SVGAngle;
     class SVGLength;
+    class SVGLengthList;
+    class SVGNumberList;
     class SVGPreserveAspectRatio;
+    class SVGTransformList;
     class String;
     class FloatRect;
 
@@ -53,10 +56,13 @@ namespace WebCore {
     typedef SVGAnimatedTemplate<int> SVGAnimatedEnumeration;
     typedef SVGAnimatedTemplate<long> SVGAnimatedInteger;
     typedef SVGAnimatedTemplate<SVGLength*> SVGAnimatedLength;
+    typedef SVGAnimatedTemplate<SVGLengthList*> SVGAnimatedLengthList;
     typedef SVGAnimatedTemplate<double> SVGAnimatedNumber;
+    typedef SVGAnimatedTemplate<SVGNumberList*> SVGAnimatedNumberList; 
     typedef SVGAnimatedTemplate<SVGPreserveAspectRatio*> SVGAnimatedPreserveAspectRatio;
     typedef SVGAnimatedTemplate<FloatRect> SVGAnimatedRect;
     typedef SVGAnimatedTemplate<String> SVGAnimatedString;
+    typedef SVGAnimatedTemplate<SVGTransformList*> SVGAnimatedTransformList; 
 }
 
 #endif // SVG_SUPPORT
index 68a9221ce1a30609a0e047537eef0f931794cf81..b37aaeb29201f426e758e82d75fd1a41f9b2f43d 100644 (file)
@@ -111,7 +111,7 @@ double SVGAnimationElement::getCurrentTime() const
     return m_currentTime;
 }
 
-double SVGAnimationElement::getSimpleDuration() const
+double SVGAnimationElement::getSimpleDuration(ExceptionCode&) const
 {
     return m_simpleDuration;
 }
@@ -140,9 +140,11 @@ void SVGAnimationElement::parseMappedAttribute(MappedAttribute *attr)
         // Feed data into list
         SVGHelper::ParseSeperatedList(temp.get(), value.deprecatedString(), ';');
 
+        ExceptionCode ec = 0;
+
         // Parse data
         for (unsigned int i = 0; i < temp->numberOfItems(); i++) {
-            DeprecatedString current = String(temp->getItem(i)).deprecatedString();
+            DeprecatedString current = String(temp->getItem(i, ec)).deprecatedString();
 
             if (current.startsWith("accessKey")) {
                 // Register keyDownEventListener for the character
@@ -461,7 +463,7 @@ void SVGAnimationElement::setTargetAttribute(SVGElement *target, StringImpl *nam
                 attributeType = ATTRIBUTETYPE_CSS;
         }
     }
-    ExceptionCode ec;
+    ExceptionCode ec = 0;
     if (attributeType == ATTRIBUTETYPE_CSS && styled && styled->style())
         styled->style()->setProperty(name, value, "", ec);
     else if (attributeType == ATTRIBUTETYPE_XML)
index 6f79686cb083d766bfaeff50dc9870bc8ee0d797..dafeb42825015688a21471b65c6232ef8aec73cb 100644 (file)
@@ -90,7 +90,7 @@ namespace WebCore {
         double getEndTime() const;
         double getStartTime() const;
         double getCurrentTime() const;
-        double getSimpleDuration() const;
+        double getSimpleDuration(ExceptionCode&) const;
     
         virtual void parseMappedAttribute(MappedAttribute *attr);
         virtual bool rendererIsNeeded(RenderStyle *) { return false; }
index 0c8f327a112c200de7fb56ba7cd39c7472129c44..2423b221961e925d3071412429d4ff1f94464580 100644 (file)
@@ -32,7 +32,7 @@
 #include "SVGMatrix.h"
 #include "SVGRenderStyle.h"
 #include "cssstyleselector.h"
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include <kcanvas/device/KRenderingDevice.h>
 
 using namespace WebCore;
@@ -42,7 +42,7 @@ SVGClipPathElement::SVGClipPathElement(const QualifiedName& tagName, Document *d
     , SVGTests()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_clipPathUnits(SVG_UNIT_TYPE_USERSPACEONUSE)
+    , m_clipPathUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
 {
     m_clipper = 0;
 }
@@ -59,9 +59,9 @@ void SVGClipPathElement::parseMappedAttribute(MappedAttribute *attr)
     const String& value = attr->value();
     if (attr->name() == SVGNames::clipPathUnitsAttr) {
         if (value == "userSpaceOnUse")
-            setClipPathUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setClipPathUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if (value == "objectBoundingBox")
-            setClipPathUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setClipPathUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     } else {
         if (SVGTests::parseMappedAttribute(attr))
             return;
@@ -82,7 +82,7 @@ KCanvasClipper *SVGClipPathElement::canvasResource()
     else
         m_clipper->resetClipData();
 
-    bool bbox = clipPathUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
+    bool bbox = clipPathUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
 
     RenderStyle *clipPathStyle = styleForRenderer(parent()->renderer()); // FIXME: Manual style resolution is a hack
     for (Node *n = firstChild(); n != 0; n = n->nextSibling()) {
index f1a6fcdff502108e9893fb6ba2ac5c585365a168..e630c3826f80ad17918c637685d399fa43b0c4ce 100644 (file)
 
 #include "Attr.h"
 
-#include "ksvg.h"
 #include "SVGNames.h"
 #include "SVGHelper.h"
 #include "SVGRenderStyle.h"
+#include "SVGFEComponentTransferElement.h"
 #include "SVGComponentTransferFunctionElement.h"
 #include "SVGNumberList.h"
 
@@ -101,9 +101,11 @@ KCComponentTransferFunction SVGComponentTransferFunctionElement::transferFunctio
     func.exponent = exponent();
     func.offset = offset();
     SVGNumberList *numbers = tableValues();
+
+    ExceptionCode ec = 0;
     unsigned int nr = numbers->numberOfItems();
     for (unsigned int i = 0; i < nr; i++)
-        func.tableValues.append(numbers->getItem(i));
+        func.tableValues.append(numbers->getItem(i, ec));
     return func;
 }
 
index 7a098f804b54f26c9fb17f3186d64b6f88077f49..94e07984fc7de9d0fb838c5aeb4955b6e88161a3 100644 (file)
@@ -34,6 +34,15 @@ namespace WebCore
     class SVGComponentTransferFunctionElement : public SVGElement
     {
     public:
+        enum SVGComponentTransferType {
+            SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
+            SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
+            SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
+            SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
+            SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
+            SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
+        };
+
         SVGComponentTransferFunctionElement(const QualifiedName&, Document*);
         virtual ~SVGComponentTransferFunctionElement();
 
index 35f3b25d8756c3dd35403f50243ba2a57717e46b..7d3a16d12820442e4c20c565ff2ed5ba03da04f2 100644 (file)
@@ -52,7 +52,7 @@ SVGSVGElement *SVGDocument::rootElement() const
 void SVGDocument::dispatchZoomEvent(float prevScale, float newScale)
 {
     // dispatch zoom event
-    ExceptionCode ec;
+    ExceptionCode ec = 0;
     RefPtr<SVGZoomEvent> event = static_pointer_cast<SVGZoomEvent>(createEvent("SVGZoomEvents", ec));
     event->initEvent(EventNames::zoomEvent, true, false);
     event->setPreviousScale(prevScale);
@@ -63,7 +63,7 @@ void SVGDocument::dispatchZoomEvent(float prevScale, float newScale)
 void SVGDocument::dispatchScrollEvent()
 {
     // dispatch zoom event
-    ExceptionCode ec;
+    ExceptionCode ec = 0;
     RefPtr<Event> event = createEvent("SVGEvents", ec);
     event->initEvent(EventNames::scrollEvent, true, false);
     rootElement()->dispatchEvent(event.get(), ec);
index 6f930a08e5ae28280ff433c12079ccf5b25d9d29..59bafdebd58d22d9c797f32e2e2297a81ce27c66 100644 (file)
@@ -46,7 +46,7 @@ SVGFEBlendElement::~SVGFEBlendElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, String, String, string, In2, in2, SVGNames::in2Attr.localName(), m_in2)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, int, Enumeration, enumeration, Mode, mode, SVGNames::modeAttr.localName(), m_mode)
 
@@ -67,7 +67,7 @@ void SVGFEBlendElement::parseMappedAttribute(MappedAttribute *attr)
             setModeBaseValue(SVG_FEBLEND_MODE_LIGHTEN);
     }
     else if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else if (attr->name() == SVGNames::in2Attr)
         setIn2BaseValue(value);
     else
@@ -81,7 +81,7 @@ KCanvasFEBlend *SVGFEBlendElement::filterEffect() const
     if (!m_filterEffect)
         return 0;
     m_filterEffect->setBlendMode((KCBlendModeType)(mode()-1));
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     m_filterEffect->setIn2(in2());
     setStandardAttributes(m_filterEffect);
     return m_filterEffect;
index 023dde212073dcd474ab6fda9e40a4f117238731..1965804aeb7f35be479e0df382416f4a17d970b1 100644 (file)
@@ -33,6 +33,15 @@ namespace WebCore
     class SVGFEBlendElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
+        enum SVGBlendModeType {
+            SVG_FEBLEND_MODE_UNKNOWN  = 0,
+            SVG_FEBLEND_MODE_NORMAL   = 1,
+            SVG_FEBLEND_MODE_MULTIPLY = 2,
+            SVG_FEBLEND_MODE_SCREEN   = 3,
+            SVG_FEBLEND_MODE_DARKEN   = 4,
+            SVG_FEBLEND_MODE_LIGHTEN  = 5
+        };
+
         SVGFEBlendElement(const QualifiedName&, Document*);
         virtual ~SVGFEBlendElement();
 
@@ -46,7 +55,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, String, In2, in2)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, int, int, Mode, mode)
         mutable KCanvasFEBlend *m_filterEffect;
index 1bea3cd50a284363948c199a5a1ea5d59614c74a..062297be68d505021190fd09e24c108d85f451b1 100644 (file)
@@ -53,7 +53,7 @@ SVGFEColorMatrixElement::~SVGFEColorMatrixElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, int, Enumeration, enumeration, Type, type, SVGNames::typeAttr.localName(), m_type)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, SVGNumberList*, NumberList, numberList, Values, values, SVGNames::valuesAttr.localName(), m_values.get())
 
@@ -71,7 +71,7 @@ void SVGFEColorMatrixElement::parseMappedAttribute(MappedAttribute *attr)
             setTypeBaseValue(SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA);
     }
     else if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else if (attr->name() == SVGNames::valuesAttr)
         valuesBaseValue()->parse(value.deprecatedString());
     else
@@ -85,13 +85,15 @@ KCanvasFEColorMatrix *SVGFEColorMatrixElement::filterEffect() const
     if (!m_filterEffect)
         return 0;
         
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     DeprecatedValueList<float> _values;
     SVGNumberList *numbers = values();
+
+    ExceptionCode ec = 0;
     unsigned int nr = numbers->numberOfItems();
     for(unsigned int i = 0;i < nr;i++)
-        _values.append(numbers->getItem(i));
+        _values.append(numbers->getItem(i, ec));
     m_filterEffect->setValues(_values);
     m_filterEffect->setType((KCColorMatrixType)(type() - 1));
     
index d4c359b25d3a67923aa244bf2336f788b603f204..7df7c0ad22bf10045bd9405a64ef70aaab2767a5 100644 (file)
@@ -34,6 +34,14 @@ namespace WebCore
     class SVGFEColorMatrixElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
+        enum SVGColorMatrixType {
+            SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
+            SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
+            SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
+            SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
+            SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
+        };
+
         SVGFEColorMatrixElement(const QualifiedName&, Document*);
         virtual ~SVGFEColorMatrixElement();
 
@@ -47,7 +55,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, int, int, Type, type)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, SVGNumberList*, RefPtr<SVGNumberList>, Values, values)
         mutable KCanvasFEColorMatrix *m_filterEffect;
index f67d067c21ef34b2ad20cc051625e1897e4e5ee7..b68e67641d5124f5e8867457cbd79169a6295fb6 100644 (file)
@@ -50,13 +50,13 @@ SVGFEComponentTransferElement::~SVGFEComponentTransferElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEComponentTransferElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEComponentTransferElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 
 void SVGFEComponentTransferElement::parseMappedAttribute(MappedAttribute *attr)
 {
     const String& value = attr->value();
     if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
@@ -68,7 +68,7 @@ KCanvasFEComponentTransfer *SVGFEComponentTransferElement::filterEffect() const
     if (!m_filterEffect)
         return 0;
     
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     
     for (Node *n = firstChild(); n != 0; n = n->nextSibling()) {
index 284ce615232fd161728455798fb183041bd0d55c..7a817c7a7e098fa9472d49307bb108a9501ad3bb 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEComponentTransferElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEComponentTransferElement, String, String, In1, in1)
         mutable KCanvasFEComponentTransfer *m_filterEffect;
     };
 
index 00be6ba256cdeda2ac19a976ec4e7f6ea1e99ddb..68eee2676a0d0b2d467a5f7d0ba854a68d1f8d86 100644 (file)
@@ -53,7 +53,7 @@ SVGFECompositeElement::~SVGFECompositeElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, String, String, string, In2, in2, SVGNames::in2Attr.localName(), m_in2)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, int, Enumeration, enumeration, _operator, _operator, SVGNames::operatorAttr.localName(), m__operator)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, double, Number, number, K1, k1, SVGNames::k1Attr.localName(), m_k1)
@@ -80,7 +80,7 @@ void SVGFECompositeElement::parseMappedAttribute(MappedAttribute *attr)
             set_operatorBaseValue(SVG_FECOMPOSITE_OPERATOR_ARITHMETIC);
     }
     else if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else if (attr->name() == SVGNames::in2Attr)
         setIn2BaseValue(value);
     else if (attr->name() == SVGNames::k1Attr)
@@ -102,7 +102,7 @@ KCanvasFEComposite *SVGFECompositeElement::filterEffect() const
     if (!m_filterEffect)
         return 0;
     m_filterEffect->setOperation((KCCompositeOperationType)(_operator() - 1));
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     m_filterEffect->setIn2(in2());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setK1(k1());
index 0bda4ae9e26c88abde843e01d8b1a0040b41cd9f..dee9f5a3a9c8275c1f1fae0c4aa4a67fcb9f1661 100644 (file)
@@ -33,6 +33,16 @@ namespace WebCore
     class SVGFECompositeElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
+        enum SVGCompositeOperators {
+            SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
+            SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
+            SVG_FECOMPOSITE_OPERATOR_IN         = 2,
+            SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
+            SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
+            SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
+            SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
+        };
+
         SVGFECompositeElement(const QualifiedName&, Document*);
         virtual ~SVGFECompositeElement();
 
@@ -46,7 +56,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, String, String, In2, in2)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, int, int, _operator, _operator)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, double, double, K1, k1)
index 095d21bbc8541e5d7a688295d6a4596a6a65f4b3..4e60ee420120a5812395ea041254eef805ce61c7 100644 (file)
@@ -52,7 +52,7 @@ SVGFEDiffuseLightingElement::~SVGFEDiffuseLightingElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, double, Number, number, DiffuseConstant, diffuseConstant, SVGNames::diffuseConstantAttr.localName(), m_diffuseConstant)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, double, Number, number, SurfaceScale, surfaceScale, SVGNames::surfaceScaleAttr.localName(), m_surfaceScale)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, double, Number, number, KernelUnitLengthX, kernelUnitLengthX, "kernelUnitLengthX", m_kernelUnitLengthX)
@@ -63,7 +63,7 @@ void SVGFEDiffuseLightingElement::parseMappedAttribute(MappedAttribute *attr)
 {
     const String& value = attr->value();
     if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else if (attr->name() == SVGNames::surfaceScaleAttr)
         setSurfaceScaleBaseValue(value.deprecatedString().toDouble());
     else if (attr->name() == SVGNames::diffuseConstantAttr)
@@ -81,11 +81,11 @@ void SVGFEDiffuseLightingElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEDiffuseLighting *SVGFEDiffuseLightingElement::filterEffect() const
+KCanvasFilterEffect *SVGFEDiffuseLightingElement::filterEffect() const
 {
     if (!m_filterEffect) 
         m_filterEffect = static_cast<KCanvasFEDiffuseLighting *>(renderingDevice()->createFilterEffect(FE_DIFFUSE_LIGHTING));
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setDiffuseConstant((diffuseConstant()));
     m_filterEffect->setSurfaceScale((surfaceScale()));
index 6c491251120f8596731e370e7ab5355c2fe8a47d..cbf15d6e6344bcf8465a6ab4d3d3517c03671110 100644 (file)
@@ -39,13 +39,13 @@ namespace WebCore {
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFEDiffuseLighting *filterEffect() const;
+        virtual KCanvasFilterEffect *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, double, double, DiffuseConstant, diffuseConstant)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, double, double, SurfaceScale, surfaceScale)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, SVGColor*, RefPtr<SVGColor>, LightingColor, lightingColor)
index 77079ccd597962dd44cf0f592621b3a9f336e16b..07bcc80083f4eeadca4682328aba2807ed8e8372 100644 (file)
@@ -48,7 +48,7 @@ SVGFEDisplacementMapElement::~SVGFEDisplacementMapElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, String, String, string, In2, in2, SVGNames::in2Attr.localName(), m_in2)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, int, Enumeration, enumeration, XChannelSelector, xChannelSelector, SVGNames::xChannelSelectorAttr.localName(), m_xChannelSelector)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, int, Enumeration, enumeration, YChannelSelector, yChannelSelector, SVGNames::yChannelSelectorAttr.localName(), m_yChannelSelector)
@@ -76,7 +76,7 @@ void SVGFEDisplacementMapElement::parseMappedAttribute(MappedAttribute* attr)
     else if (attr->name() == SVGNames::yChannelSelectorAttr)
         setYChannelSelectorBaseValue(stringToChannel(value));
     else if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else if (attr->name() == SVGNames::in2Attr)
         setIn2BaseValue(value);
     else if (attr->name() == SVGNames::scaleAttr)
@@ -93,7 +93,7 @@ KCanvasFEDisplacementMap* SVGFEDisplacementMapElement::filterEffect() const
         return 0;
     m_filterEffect->setXChannelSelector((KCChannelSelectorType)(xChannelSelector()));
     m_filterEffect->setYChannelSelector((KCChannelSelectorType)(yChannelSelector()));
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     m_filterEffect->setIn2(in2());
     m_filterEffect->setScale(scale());
     setStandardAttributes(m_filterEffect);
index 40320fcf9a3515b646bed20e9e60c56084822506..01515daff94196d21c72b8cf91f90293dbe9cc5e 100644 (file)
@@ -28,6 +28,14 @@ namespace WebCore {
     
     class SVGFEDisplacementMapElement : public SVGFilterPrimitiveStandardAttributes {
     public:
+        enum SVGChannelSelectors {
+            SVG_CHANNEL_UNKNOWN = 0,
+            SVG_CHANNEL_R       = 1,
+            SVG_CHANNEL_G       = 2,
+            SVG_CHANNEL_B       = 3,
+            SVG_CHANNEL_A       = 4
+        };
+
         SVGFEDisplacementMapElement(const QualifiedName& tagName, Document*);
         virtual ~SVGFEDisplacementMapElement();
         
@@ -43,7 +51,7 @@ namespace WebCore {
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, String, In2, in2)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, int, XChannelSelector, xChannelSelector)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, int, YChannelSelector, yChannelSelector)
index d90d9a9ba49496a4e430256dd802423b80b2339c..731034e33184a0cdb05b43f3914474db240ac313 100644 (file)
@@ -45,13 +45,13 @@ SVGFEFloodElement::~SVGFEFloodElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEFloodElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEFloodElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 
 void SVGFEFloodElement::parseMappedAttribute(MappedAttribute *attr)
 {
     const String& value = attr->value();
     if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
@@ -62,7 +62,7 @@ KCanvasFEFlood *SVGFEFloodElement::filterEffect() const
         m_filterEffect = static_cast<KCanvasFEFlood *>(renderingDevice()->createFilterEffect(FE_FLOOD));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     RenderStyle *filterStyle = const_cast<SVGFEFloodElement *>(this)->styleForRenderer(parentNode()->renderer());
     const SVGRenderStyle *svgStyle = filterStyle->svgStyle();
index f429f809dcda505248a0a9a5f094a41a51040050..6cb11545378412c676ea50fd3e77fd02a1188ded 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEFloodElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEFloodElement, String, String, In1, in1)
         mutable KCanvasFEFlood *m_filterEffect;
     };
 
index bb747879176354180ddeb15a621a66c47579b232..7711e18006152e1a6b0fa888d00d11f39f312939 100644 (file)
@@ -51,7 +51,7 @@ SVGFEGaussianBlurElement::~SVGFEGaussianBlurElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEGaussianBlurElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEGaussianBlurElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEGaussianBlurElement, double, Number, number, StdDeviationX, stdDeviationX, "stdDeviationX", m_stdDeviationX)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEGaussianBlurElement, double, Number, number, StdDeviationY, stdDeviationY, "stdDeviationY", m_stdDeviationY)
 
@@ -71,7 +71,7 @@ void SVGFEGaussianBlurElement::parseMappedAttribute(MappedAttribute *attr)
             setStdDeviationYBaseValue(numbers[1].toDouble());
     }
     else if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
@@ -82,7 +82,7 @@ KCanvasFEGaussianBlur *SVGFEGaussianBlurElement::filterEffect() const
         m_filterEffect = static_cast<KCanvasFEGaussianBlur *>(renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setStdDeviationX(stdDeviationX());
     m_filterEffect->setStdDeviationY(stdDeviationY());
index bbd987bc4c7928b8c440feefad44baa0c59ad5c9..6e1a45ff06a8b442fb22cd55e548bbdc69b49b4c 100644 (file)
@@ -48,7 +48,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, double, double, StdDeviationX, stdDeviationX)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, double, double, StdDeviationY, stdDeviationY)
         mutable KCanvasFEGaussianBlur *m_filterEffect;
index cf03d191c555baa87adb96c543eb5b53811cf155..9a360e91012806ffeda3fa700374436e2a1a769e 100644 (file)
@@ -59,7 +59,7 @@ KCanvasFEMerge *SVGFEMergeElement::filterEffect() const
     Vector<String> mergeInputs;
     for (Node* n = firstChild(); n != 0; n = n->nextSibling()) {
         if (n->hasTagName(SVGNames::feMergeNodeTag))
-            mergeInputs.append(static_cast<SVGFEMergeNodeElement *>(n)->in());
+            mergeInputs.append(static_cast<SVGFEMergeNodeElement *>(n)->in1());
     }
 
     m_filterEffect->setMergeInputs(mergeInputs);
index fd4b4fb8f0f5f66506c1260586be095ac09dbff0..1b558cb7a624ea655f3fa65f551b58d45565b063 100644 (file)
@@ -37,13 +37,13 @@ SVGFEMergeNodeElement::~SVGFEMergeNodeElement()
 {
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEMergeNodeElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEMergeNodeElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 
 void SVGFEMergeNodeElement::parseMappedAttribute(MappedAttribute *attr)
 {
     const String& value = attr->value();
     if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else
         SVGElement::parseMappedAttribute(attr);
 }
index 9df041289393b13c2762026f465bb70f5bdebc7e..c5d27388458edd1a9d5ebd8ac1422dc0e734827d 100644 (file)
@@ -43,7 +43,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEMergeNodeElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEMergeNodeElement, String, String, In1, in1)
     };
 
 } // namespace WebCore
index 2878a5ad6b952fd1b642f774afb9f23376aca993..581c417b0a9457f6891d76488b2b473b7295454c 100644 (file)
@@ -50,7 +50,7 @@ SVGFEOffsetElement::~SVGFEOffsetElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, double, Number, number, Dx, dx, SVGNames::dxAttr.localName(), m_dx)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, double, Number, number, Dy, dy, SVGNames::dyAttr.localName(), m_dy)
 
@@ -62,7 +62,7 @@ void SVGFEOffsetElement::parseMappedAttribute(MappedAttribute *attr)
     else if (attr->name() == SVGNames::dyAttr)
         setDyBaseValue(value.deprecatedString().toDouble());
     else if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
@@ -73,7 +73,7 @@ KCanvasFEOffset *SVGFEOffsetElement::filterEffect() const
         m_filterEffect = static_cast<KCanvasFEOffset *>(renderingDevice()->createFilterEffect(FE_OFFSET));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setDx(dx());
     m_filterEffect->setDy(dy());
index 9d3b8453879eae6effa527ddcdbbc4043bdea3ff..257018b7b2c319d41aeddab1c76f553c256aca6b 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, double, double, Dx, dx)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, double, double, Dy, dy)
         mutable KCanvasFEOffset *m_filterEffect;
index 51ec4113edc814965e1d857949dbdfe7b303c1eb..921af40e192ac87bcd11ffffe4d2a07573a9752c 100644 (file)
@@ -55,7 +55,7 @@ SVGFESpecularLightingElement::~SVGFESpecularLightingElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, double, Number, number, SpecularConstant, specularConstant, SVGNames::specularConstantAttr.localName(), m_specularConstant)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, double, Number, number, SpecularExponent, specularExponent, SVGNames::specularExponentAttr.localName(), m_specularExponent)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, double, Number, number, SurfaceScale, surfaceScale, SVGNames::surfaceScaleAttr.localName(), m_surfaceScale)
@@ -67,7 +67,7 @@ void SVGFESpecularLightingElement::parseMappedAttribute(MappedAttribute *attr)
 {    
     const String& value = attr->value();
     if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else if (attr->name() == SVGNames::surfaceScaleAttr)
         setSurfaceScaleBaseValue(value.deprecatedString().toDouble());
     else if (attr->name() == SVGNames::specularConstantAttr)
@@ -91,7 +91,7 @@ KCanvasFESpecularLighting *SVGFESpecularLightingElement::filterEffect() const
 {
     if (!m_filterEffect) 
         m_filterEffect = static_cast<KCanvasFESpecularLighting *>(renderingDevice()->createFilterEffect(FE_SPECULAR_LIGHTING));
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setSpecularConstant((specularConstant()));
     m_filterEffect->setSpecularExponent((specularExponent()));
index bd756a768d60bcbfd3fe2d47d872bc25aa934e76..0091c55b2a614201867a6255a0b32b60b6092784 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, double, double, SpecularConstant, specularConstant)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, double, double, SpecularExponent, specularExponent)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, double, double, SurfaceScale, surfaceScale)
index 66d169771bc3beb612b841073a3e380f51a857f8..9f7ee147912cc9b51c29e65791f1c41a54485447 100644 (file)
@@ -44,13 +44,13 @@ SVGFETileElement::~SVGFETileElement()
     delete m_filterEffect;
 }
 
-ANIMATED_PROPERTY_DEFINITIONS(SVGFETileElement, String, String, string, In, in, SVGNames::inAttr.localName(), m_in)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFETileElement, String, String, string, In1, in1, SVGNames::inAttr.localName(), m_in1)
 
 void SVGFETileElement::parseMappedAttribute(MappedAttribute *attr)
 {
     const String& value = attr->value();
     if (attr->name() == SVGNames::inAttr)
-        setInBaseValue(value);
+        setIn1BaseValue(value);
     else
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
@@ -61,7 +61,7 @@ KCanvasFETile *SVGFETileElement::filterEffect() const
         m_filterEffect = static_cast<KCanvasFETile *>(renderingDevice()->createFilterEffect(FE_TILE));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setIn(in());
+    m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     return m_filterEffect;
 }
index 9d630035a25ee7574d0b31ce86cb5efdbf64591f..a854c28c594059b573250eddf64bcef7cdca61b2 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, String, String, In, in)
+        ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, String, String, In1, in1)
         mutable KCanvasFETile *m_filterEffect;
     };
 
index bbbb61fe64be6aa7ee0b8b6d25094285216258a3..17bb62707e4481647655a5d5d470b6f562aa35c5 100644 (file)
@@ -33,6 +33,18 @@ namespace WebCore
     class SVGFETurbulenceElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
+        enum SVGTurbulenceType {
+            SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
+            SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
+            SVG_TURBULENCE_TYPE_TURBULENCE   = 2
+        };
+
+        enum SVGStitchOptions {
+            SVG_STITCHTYPE_UNKNOWN  = 0,
+            SVG_STITCHTYPE_STITCH   = 1,
+            SVG_STITCHTYPE_NOSTITCH = 2
+        };
+
         SVGFETurbulenceElement(const QualifiedName&, Document*);
         virtual ~SVGFETurbulenceElement();
 
index 8acb032987f0bdb92ee1e3c56868b6c074e1be54..87a9a828643b49aad15e9de280467bae3730c497 100644 (file)
@@ -27,7 +27,7 @@
 #include <kcanvas/KCanvasResources.h>
 #include <kcanvas/device/KRenderingDevice.h>
 #include <kcanvas/KCanvasFilters.h>
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include "SVGNames.h"
 #include "SVGHelper.h"
 #include "SVGFilterElement.h"
@@ -42,8 +42,8 @@ SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document *doc)
     , SVGURIReference()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_filterUnits(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
-    , m_primitiveUnits(SVG_UNIT_TYPE_USERSPACEONUSE)
+    , m_filterUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
+    , m_primitiveUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     , m_x(new SVGLength(this, LM_WIDTH, viewportElement()))
     , m_y(new SVGLength(this, LM_HEIGHT, viewportElement()))
     , m_width(new SVGLength(this, LM_WIDTH, viewportElement()))
@@ -87,16 +87,16 @@ void SVGFilterElement::parseMappedAttribute(MappedAttribute *attr)
     if (attr->name() == SVGNames::filterUnitsAttr)
     {
         if(value == "userSpaceOnUse")
-            setFilterUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setFilterUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if(value == "objectBoundingBox")
-            setFilterUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setFilterUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     }
     else if (attr->name() == SVGNames::primitiveUnitsAttr)
     {
         if(value == "userSpaceOnUse")
-            setPrimitiveUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setPrimitiveUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if(value == "objectBoundingBox")
-            setPrimitiveUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setPrimitiveUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     }
     else if (attr->name() == SVGNames::xAttr)
         xBaseValue()->setValueAsString(value);
@@ -124,7 +124,7 @@ KCanvasFilter *SVGFilterElement::canvasResource()
     if (!m_filter)
         m_filter = static_cast<KCanvasFilter *>(renderingDevice()->createResource(RS_FILTER));
 
-    bool filterBBoxMode = filterUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
+    bool filterBBoxMode = filterUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
     m_filter->setFilterBoundingBoxMode(filterBBoxMode);
     
     x()->setBboxRelative(filterBBoxMode);
@@ -133,7 +133,7 @@ KCanvasFilter *SVGFilterElement::canvasResource()
     height()->setBboxRelative(filterBBoxMode);
     m_filter->setFilterRect(FloatRect(x()->value(), y()->value(), width()->value(), height()->value()));
     
-    bool primitiveBBoxMode = primitiveUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
+    bool primitiveBBoxMode = primitiveUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
     m_filter->setEffectBoundingBoxMode(primitiveBBoxMode);
     // FIXME: When does this info get passed to the filters elements?
 
index 6809b9b902637d9a63a0d7a5696579436e90867b..8dd18937b77cf7d40de1c21b6bb55a5b9b945c51 100644 (file)
@@ -25,7 +25,7 @@
 #include "Attr.h"
 #include <wtf/Assertions.h>
 
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include "SVGNames.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 #include "SVGLength.h"
@@ -82,7 +82,7 @@ void SVGFilterPrimitiveStandardAttributes::setStandardAttributes(KCanvasFilterEf
         return;
     bool bbox = false;
     if (parentNode() && parentNode()->hasTagName(SVGNames::filterTag))
-        bbox = static_cast<SVGFilterElement *>(parentNode())->primitiveUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
+        bbox = static_cast<SVGFilterElement *>(parentNode())->primitiveUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
 
     x()->setBboxRelative(bbox);
     y()->setBboxRelative(bbox);
index dc5b1a7796cf31bbc1c72aea2e61d15c0e4c723f..9b513c035673bef500a39599760af0f50cef12c0 100644 (file)
@@ -35,7 +35,7 @@
 #include "SVGTransformList.h"
 #include "SVGTransformable.h"
 #include "cssstyleselector.h"
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include <kcanvas/device/KRenderingDevice.h>
 #include <kcanvas/device/KRenderingPaintServerGradient.h>
 
@@ -46,7 +46,7 @@ SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document *d
     , SVGURIReference()
     , SVGExternalResourcesRequired()
     , m_spreadMethod(0)
-    , m_gradientUnits(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
+    , m_gradientUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     , m_gradientTransform(new SVGTransformList)
 {
     m_resource = 0;
@@ -66,9 +66,9 @@ void SVGGradientElement::parseMappedAttribute(MappedAttribute *attr)
     const String& value = attr->value();
     if (attr->name() == SVGNames::gradientUnitsAttr) {
         if(value == "userSpaceOnUse")
-            setGradientUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setGradientUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if(value == "objectBoundingBox")
-            setGradientUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setGradientUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     } else if (attr->name() == SVGNames::gradientTransformAttr) {
         SVGTransformList *gradientTransforms = gradientTransformBaseValue();
         SVGTransformable::parseTransformAttribute(gradientTransforms, attr->value());
index 6a955dbe69cc931b3ec4c22da5ace72274dde16d..00c4a1323f4ada226db3c7f3bea7910d483db77f 100644 (file)
@@ -39,6 +39,13 @@ namespace WebCore {
                                    public KCanvasResourceListener
     {
     public:
+        enum SVGGradientType {
+            SVG_SPREADMETHOD_UNKNOWN = 0,
+            SVG_SPREADMETHOD_PAD     = 1,
+            SVG_SPREADMETHOD_REFLECT = 2,
+            SVG_SPREADMETHOD_REPEAT  = 3
+        };
+
         SVGGradientElement(const QualifiedName&, Document*);
         virtual ~SVGGradientElement();
 
index 0c83b2f5ab394ab4e01c98269dfc7be4e2807436..fddb065753373ed659585bfa313b3c02475effa9 100644 (file)
@@ -80,18 +80,15 @@ float SVGHelper::PercentageOfViewport(float value, const SVGElement* viewportEle
 void SVGHelper::ParseSeperatedList(SVGStringList *list, const DeprecatedString &data, const DeprecatedChar &delimiter)
 {
     // TODO : more error checking/reporting
-    list->clear();
+    ExceptionCode ec = 0;
+    list->clear(ec);
 
     DeprecatedStringList substrings = DeprecatedStringList::split(delimiter, data);
     
     DeprecatedStringList::ConstIterator it = substrings.begin();
     DeprecatedStringList::ConstIterator end = substrings.end();
-    for (; it != end; ++it) {
-        StringImpl* string = new StringImpl(*it);
-        string->ref();
-
-        list->appendItem(string);
-    }
+    for (; it != end; ++it)
+        list->appendItem(String(*it), ec);
 }
 
 }
index d1532ed6efb6840dd75a3d2f58d814194a39c1e5..0fb2124d995ea881fb71c247e66aa34809fcde08 100644 (file)
@@ -43,12 +43,14 @@ SVGLengthList::~SVGLengthList()
 
 void SVGLengthList::parse(const DeprecatedString& value, const SVGStyledElement* context, LengthMode mode)
 {
+    ExceptionCode ec = 0;
+
     DeprecatedStringList lengths = DeprecatedStringList::split(' ', value);
     for (unsigned int i = 0; i < lengths.count(); i++) {
         SVGLength* length = new SVGLength(context, mode);
         String str(lengths[i]);
         length->setValueAsString(str);
-        appendItem(length);
+        appendItem(length, ec);
     }
 }
 
index 42af40ad22b75f191f5639502ddae1ae78b1cf6f..684907c5a5c444f42b6d9756773a32d817efde2b 100644 (file)
@@ -24,7 +24,7 @@
 #ifdef SVG_SUPPORT
 #include "Attr.h"
 
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include "SVGNames.h"
 #include "SVGHelper.h"
 #include "SVGMatrix.h"
@@ -79,7 +79,7 @@ void SVGLinearGradientElement::buildGradient(KRenderingPaintServerGradient *_gra
 {
     rebuildStops(); // rebuild stops before possibly importing them from any referenced gradient.
 
-    bool bbox = (gradientUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+    bool bbox = (gradientUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     
     x1()->setBboxRelative(bbox);
     y1()->setBboxRelative(bbox);
index 32d134797a8c5f3f9fa8e775b25edf10073d640e..e29d006bed345aa3b3c7c87f86ad05dc5e5e47c8 100644 (file)
 
 #include "Shared.h"
 #include "FloatPoint.h"
+#include "ExceptionCode.h"
 #include "PlatformString.h"
 
 namespace WebCore {
 
-    // TODO: We will probably need to pass ExceptionCodes around here...
-
     template<class Item>
     class SVGListBase : public Shared<SVGListBase<Item> >
     {
@@ -45,12 +44,12 @@ namespace WebCore {
         virtual Item nullItem() const = 0;
 
         unsigned int numberOfItems() const { return m_vector.size(); }
-        void clear() { m_vector.clear(); }
+        void clear(ExceptionCode &) { m_vector.clear(); }
 
-        Item initialize(Item newItem)
+        Item initialize(Item newItem, ExceptionCode& ec)
         {
-            clear();
-            return appendItem(newItem);
+            clear(ec);
+            return appendItem(newItem, ec);
         }
 
         Item getFirst() const
@@ -69,44 +68,52 @@ namespace WebCore {
             return m_vector.last();
         }
 
-        Item getItem(unsigned int index)
+        Item getItem(unsigned int index, ExceptionCode& ec)
         {
-            if (m_vector.size() < index)
+            if (m_vector.size() < index) {
+                ec = INDEX_SIZE_ERR;
                 return nullItem();
+            }
 
             return m_vector.at(index);
         }
 
-        const Item getItem(unsigned int index) const
+        const Item getItem(unsigned int index, ExceptionCode& ec) const
         {
-            if (m_vector.size() < index)
+            if (m_vector.size() < index) {
+                ec = INDEX_SIZE_ERR;
                 return nullItem();
+            }
 
             return m_vector.at(index);
         }
 
-        Item insertItemBefore(Item newItem, unsigned int index)
+        Item insertItemBefore(Item newItem, unsigned int index, ExceptionCode&)
         {
             m_vector.insert(index, newItem);
             return newItem;
         }
 
-        Item replaceItem(Item newItem, unsigned int index)
+        Item replaceItem(Item newItem, unsigned int index, ExceptionCode& ec)
         {
-            if (m_vector.size() < index)
+            if (m_vector.size() < index) {
+                ec = INDEX_SIZE_ERR;
                 return nullItem();
+            }
 
             m_vector.at(index) = newItem;
             return newItem;
         }
 
-        Item removeItem(unsigned int index)
+        Item removeItem(unsigned int index, ExceptionCode& ec)
         {
-            if (m_vector.size() < index)
+            if (m_vector.size() < index) {
+                ec = INDEX_SIZE_ERR;
                 return nullItem();
+            }
 
             Item item = m_vector.at(index);
-            remove(index);
+            removeItem(index, ec);
             return item;
         }
 
@@ -115,7 +122,7 @@ namespace WebCore {
             m_vector.remove(item);
         }
 
-        Item appendItem(Item newItem)
+        Item appendItem(Item newItem, ExceptionCode&)
         {
             m_vector.append(newItem);
             return newItem;
index b2c263626cbe6546f25494afbbcaa6ccb5278e9b..828ce0870a4eb8582c5ce5c38a9b252bf7610114 100644 (file)
@@ -126,13 +126,7 @@ SVGMatrix *SVGLocatable::getScreenCTM(const SVGElement *element)
 
     return ctm;
 }
-/*
-SVGMatrix *SVGLocatable::getTransformToElement(SVGElement *) const
-{
-    // TODO!
-    return 0;
-}
-*/
-// vim:ts=4:noet
+
 #endif // SVG_SUPPORT
 
+// vim:ts=4:noet
index d5b9b022d573d0ba0c1229a922c69f7cfc798494..dd3d0d1019b77b13749e4508947c771e617065fb 100644 (file)
 
 #ifndef SVGLocatable_H
 #define SVGLocatable_H
+
 #ifdef SVG_SUPPORT
 
+#include "ExceptionCode.h"
+
 namespace WebCore {
 
     class FloatRect;
@@ -43,7 +46,7 @@ namespace WebCore {
         virtual FloatRect getBBox() const = 0;
         virtual SVGMatrix* getCTM() const = 0;
         virtual SVGMatrix* getScreenCTM() const = 0;
-        virtual SVGMatrix* getTransformToElement(SVGElement*) const = 0;
+        virtual SVGMatrix* getTransformToElement(SVGElement*, ExceptionCode&) const = 0;
 
     protected:
         static SVGElement* nearestViewportElement(const SVGStyledElement*);
index 89d61a314fea58adc5fdeb01ffac2968573385ec..aa4457cb530f3bb7b2126f27e95c10f33bd58af7 100644 (file)
@@ -42,6 +42,18 @@ namespace WebCore
                                  public SVGFitToViewBox
     {
     public:
+        enum SVGMarkerUnitsType {
+            SVG_MARKERUNITS_UNKNOWN           = 0,
+            SVG_MARKERUNITS_USERSPACEONUSE    = 1,
+            SVG_MARKERUNITS_STROKEWIDTH       = 2
+        };
+
+        enum SVGMarkerOrientType {
+            SVG_MARKER_ORIENT_UNKNOWN    = 0,
+            SVG_MARKER_ORIENT_AUTO       = 1,
+            SVG_MARKER_ORIENT_ANGLE      = 2
+        };
+
         SVGMarkerElement(const QualifiedName&, Document*);
         virtual ~SVGMarkerElement();
 
index b67bbf403aaa7713e39d196d975afdc53eb00fdd..c94a81593dce39259813a222c2c31d4575ecfe12 100644 (file)
@@ -42,9 +42,11 @@ SVGNumberList::~SVGNumberList()
 
 void SVGNumberList::parse(const DeprecatedString& value)
 {
+    ExceptionCode ec = 0;
+
     DeprecatedStringList numbers = DeprecatedStringList::split(' ', value);
     for (unsigned int i = 0; i < numbers.count(); i++)
-        appendItem(numbers[i].toDouble());
+        appendItem(numbers[i].toDouble(), ec);
 }
 
 // vim:ts=4:noet
index f2f8fd4524268579ba59a98c0bed7bdafa57eb6d..b7641878ffb21b64a364ce2be3b19f88ce3582d1 100644 (file)
@@ -33,7 +33,7 @@ SVGPaint::SVGPaint()
 {
 }
 
-SVGPaint::SVGPaint(StringImpl* uri)
+SVGPaint::SVGPaint(const String& uri)
     : SVGColor()
     , m_paintType(SVG_PAINTTYPE_URI)
 {
@@ -46,7 +46,7 @@ SVGPaint::SVGPaint(SVGPaintType paintType)
 {
 }
 
-SVGPaint::SVGPaint(SVGPaintType paintType, StringImpl* uri, StringImpl* rgbPaint, StringImpl*)
+SVGPaint::SVGPaint(SVGPaintType paintType, const String& uri, const String& rgbPaint, const String&)
     : SVGColor(rgbPaint)
     , m_paintType(paintType)
 {
@@ -57,17 +57,17 @@ SVGPaint::~SVGPaint()
 {
 }
 
-StringImpl* SVGPaint::uri() const
+String SVGPaint::uri() const
 {
-    return m_uri.impl();
+    return m_uri;
 }
 
-void SVGPaint::setUri(StringImpl* uri)
+void SVGPaint::setUri(const String& uri)
 {
     m_uri = uri;
 }
 
-void SVGPaint::setPaint(SVGPaintType paintType, StringImpl* uri, StringImpl* rgbPaint, StringImpl*)
+void SVGPaint::setPaint(SVGPaintType paintType, const String& uri, const String& rgbPaint, const String&, ExceptionCode&)
 {
     m_paintType = paintType;
 
index ac380bb13495b5899f7cb21664a70f94397522b0..54eaf797b1403d16a6073f5b1c0e7e4127733ee5 100644 (file)
@@ -31,18 +31,31 @@ namespace WebCore {
 
     class SVGPaint : public SVGColor {
     public:
+        enum SVGPaintType {
+            SVG_PAINTTYPE_UNKNOWN               = 0,
+            SVG_PAINTTYPE_RGBCOLOR              = 1,
+            SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR     = 2,
+            SVG_PAINTTYPE_NONE                  = 101,
+            SVG_PAINTTYPE_CURRENTCOLOR          = 102,
+            SVG_PAINTTYPE_URI_NONE              = 103,
+            SVG_PAINTTYPE_URI_CURRENTCOLOR      = 104,
+            SVG_PAINTTYPE_URI_RGBCOLOR          = 105,
+            SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,
+            SVG_PAINTTYPE_URI                   = 107
+        };
+
         SVGPaint();
-        SVGPaint(StringImpl* uri);
+        SVGPaint(const String& uri);
         SVGPaint(SVGPaintType);
-        SVGPaint(SVGPaintType, StringImpl* uri, StringImpl* rgbPaint = 0, StringImpl* iccPaint = 0);
+        SVGPaint(SVGPaintType, const String& uri, const String& rgbPaint = String(), const String& iccPaint = String());
         virtual ~SVGPaint();
 
         // 'SVGPaint' functions
         SVGPaintType paintType() const { return m_paintType; }
-        StringImpl* uri() const;
+        String uri() const;
 
-        void setUri(StringImpl*);
-        void setPaint(SVGPaintType, StringImpl* uri, StringImpl* rgbPaint, StringImpl* iccPaint);
+        void setUri(const String&);
+        void setPaint(SVGPaintType, const String& uri, const String& rgbPaint, const String& iccPaint, ExceptionCode&);
 
         virtual String cssText() const;
 
index c58addb322daad041010dddaca5726a0cb77fc04..aee3640aedcf0c9505110dbdf2c5dd3ed6efa1c4 100644 (file)
@@ -260,85 +260,105 @@ SVGPathSegCurvetoQuadraticSmoothRel *SVGPathElement::createSVGPathSegCurvetoQuad
 
 void SVGPathElement::svgMoveTo(double x1, double y1, bool, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegMovetoAbs(x1, y1, this));
+        pathSegList()->appendItem(createSVGPathSegMovetoAbs(x1, y1, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegMovetoRel(x1, y1, this));
+        pathSegList()->appendItem(createSVGPathSegMovetoRel(x1, y1, this), ec);
 }
 
 void SVGPathElement::svgLineTo(double x1, double y1, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegLinetoAbs(x1, y1, this));
+        pathSegList()->appendItem(createSVGPathSegLinetoAbs(x1, y1, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegLinetoRel(x1, y1, this));
+        pathSegList()->appendItem(createSVGPathSegLinetoRel(x1, y1, this), ec);
 }
 
 void SVGPathElement::svgLineToHorizontal(double x, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegLinetoHorizontalAbs(x, this));
+        pathSegList()->appendItem(createSVGPathSegLinetoHorizontalAbs(x, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegLinetoHorizontalRel(x, this));
+        pathSegList()->appendItem(createSVGPathSegLinetoHorizontalRel(x, this), ec);
 }
 
 void SVGPathElement::svgLineToVertical(double y, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegLinetoVerticalAbs(y, this));
+        pathSegList()->appendItem(createSVGPathSegLinetoVerticalAbs(y, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegLinetoVerticalRel(y, this));
+        pathSegList()->appendItem(createSVGPathSegLinetoVerticalRel(y, this), ec);
 }
 
 void SVGPathElement::svgCurveToCubic(double x1, double y1, double x2, double y2, double x, double y, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2, this), ec);
 }
 
 void SVGPathElement::svgCurveToCubicSmooth(double x, double y, double x2, double y2, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegCurvetoCubicSmoothAbs(x2, y2, x, y, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoCubicSmoothAbs(x2, y2, x, y, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegCurvetoCubicSmoothRel(x2, y2, x, y, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoCubicSmoothRel(x2, y2, x, y, this), ec);
 }
 
 void SVGPathElement::svgCurveToQuadratic(double x, double y, double x1, double y1, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticAbs(x1, y1, x, y, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticAbs(x1, y1, x, y, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticRel(x1, y1, x, y, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticRel(x1, y1, x, y, this), ec);
 }
 
 void SVGPathElement::svgCurveToQuadraticSmooth(double x, double y, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticSmoothAbs(x, y, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticSmoothAbs(x, y, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticSmoothRel(x, y, this));
+        pathSegList()->appendItem(createSVGPathSegCurvetoQuadraticSmoothRel(x, y, this), ec);
 }
 
 void SVGPathElement::svgArcTo(double x, double y, double r1, double r2, double angle, bool largeArcFlag, bool sweepFlag, bool abs)
 {
+    ExceptionCode ec = 0;
+
     if(abs)
-        pathSegList()->appendItem(createSVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag, this));
+        pathSegList()->appendItem(createSVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag, this), ec);
     else
-        pathSegList()->appendItem(createSVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag, this));
+        pathSegList()->appendItem(createSVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag, this), ec);
 }
 
 void SVGPathElement::svgClosePath()
 {
-    pathSegList()->appendItem(createSVGPathSegClosePath());
+    ExceptionCode ec = 0;
+    pathSegList()->appendItem(createSVGPathSegClosePath(), ec);
 }
 
 void SVGPathElement::parseMappedAttribute(MappedAttribute *attr)
 {
     if (attr->name() == SVGNames::dAttr) {
-        pathSegList()->clear();
+        ExceptionCode ec;
+        pathSegList()->clear(ec);
         parseSVG(attr->value().deprecatedString(), true);
     } else {
         if(SVGTests::parseMappedAttribute(attr)) return;
@@ -380,9 +400,10 @@ Path SVGPathElement::toPathData() const
     if(len < 1)
         return pathData;
 
+    ExceptionCode ec = 0;
     for(int i = 0; i < len; ++i)
     {
-        SVGPathSeg *p = pathSegList()->getItem(i);
+        SVGPathSeg *p = pathSegList()->getItem(i, ec);
         switch(p->pathSegType())
         {
             case SVGPathSeg::PATHSEG_MOVETO_ABS:
index f0b6d9a54bd886fa55cd613d5032d08d2793132b..6b8d0c5ba8a3238511145794b194e2d233aa40df 100644 (file)
@@ -40,7 +40,7 @@
 #include "SVGSVGElement.h"
 #include "SVGTransformList.h"
 #include "SVGTransformable.h"
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include <wtf/OwnPtr.h>
 #include <math.h>
 
@@ -58,8 +58,8 @@ SVGPatternElement::SVGPatternElement(const QualifiedName& tagName, Document *doc
     , m_y(new SVGLength(this, LM_HEIGHT, viewportElement()))
     , m_width(new SVGLength(this, LM_WIDTH, viewportElement()))
     , m_height(new SVGLength(this, LM_HEIGHT, viewportElement()))
-    , m_patternUnits(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
-    , m_patternContentUnits(SVG_UNIT_TYPE_USERSPACEONUSE)
+    , m_patternUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
+    , m_patternContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     , m_patternTransform(new SVGTransformList)
 {
     m_tile = 0;
@@ -85,14 +85,14 @@ void SVGPatternElement::parseMappedAttribute(MappedAttribute *attr)
     const AtomicString &value = attr->value();
     if (attr->name() == SVGNames::patternUnitsAttr) {
         if (value == "userSpaceOnUse")
-            setPatternUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setPatternUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if (value == "objectBoundingBox")
-            setPatternUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setPatternUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     } else if (attr->name() == SVGNames::patternContentUnitsAttr) {
         if (value == "userSpaceOnUse")
-            setPatternContentUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setPatternContentUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if (value == "objectBoundingBox")
-            setPatternContentUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setPatternContentUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     } else if (attr->name() == SVGNames::patternTransformAttr) {
         SVGTransformList *patternTransforms = patternTransformBaseValue();
         SVGTransformable::parseTransformAttribute(patternTransforms, value);
@@ -152,17 +152,17 @@ void SVGPatternElement::fillAttributesFromReferencePattern(const SVGPatternEleme
     if (!hasAttribute(SVGNames::patternUnitsAttr)) {
         const AtomicString& value = target->getAttribute(SVGNames::patternUnitsAttr);
         if (value == "userSpaceOnUse")
-            setPatternUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setPatternUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if (value == "objectBoundingBox")
-            setPatternUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setPatternUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     }
     
     if (!hasAttribute(SVGNames::patternContentUnitsAttr)) {
         const AtomicString& value = target->getAttribute(SVGNames::patternContentUnitsAttr);
         if (value == "userSpaceOnUse")
-            setPatternContentUnitsBaseValue(SVG_UNIT_TYPE_USERSPACEONUSE);
+            setPatternContentUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE);
         else if (value == "objectBoundingBox")
-            setPatternContentUnitsBaseValue(SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            setPatternContentUnitsBaseValue(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     }
 
     if (!hasAttribute(SVGNames::patternTransformAttr))
@@ -175,7 +175,7 @@ void SVGPatternElement::drawPatternContentIntoTile(const SVGPatternElement* targ
     
     SVGStyledElement* activeElement = static_cast<SVGStyledElement*>(m_paintServer->activeClient()->element());
 
-    bool bbox = (patternUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+    bool bbox = (patternUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
 
     const SVGStyledElement* savedContext = 0;
     if (bbox) {
@@ -219,7 +219,7 @@ void SVGPatternElement::drawPatternContentIntoTile(const SVGPatternElement* targ
         KCanvasMatrix savedMatrix = item->localTransform();
 
         const SVGStyledElement* savedContext = 0;
-        if (patternContentUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
+        if (patternContentUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
         {
             if (activeElement)
                 savedContext = e->pushAttributeContext(activeElement);
index bda4a2d1d615c623b9c570b9d325f5bf88e2c747..27dac592fbfa16e4bca1518776aa4ab81bc1628d 100644 (file)
@@ -54,7 +54,8 @@ SVGPointList *SVGPolyElement::animatedPoints() const
 void SVGPolyElement::parseMappedAttribute(MappedAttribute *attr)
 {
     if (attr->name() == SVGNames::pointsAttr) {
-        points()->clear();
+        ExceptionCode ec = 0;
+        points()->clear(ec);
         parsePoints(attr->value().deprecatedString());
     } else {
         if(SVGTests::parseMappedAttribute(attr)) return;
@@ -66,7 +67,8 @@ void SVGPolyElement::parseMappedAttribute(MappedAttribute *attr)
 
 void SVGPolyElement::svgPolyTo(double x1, double y1, int) const
 {
-    points()->appendItem(FloatPoint(x1, y1));
+    ExceptionCode ec = 0;
+    points()->appendItem(FloatPoint(x1, y1), ec);
 }
 
 void SVGPolyElement::notifyAttributeChange() const
@@ -77,20 +79,22 @@ void SVGPolyElement::notifyAttributeChange() const
 
     SVGStyledElement::notifyAttributeChange();
 
+    ExceptionCode ec = 0;
+
     // Spec: Additionally, the 'points' attribute on the original element
     // accessed via the XML DOM (e.g., using the getAttribute() method call)
     // will reflect any changes made to points.
     String _points;
     int len = points()->numberOfItems();
     for (int i = 0; i < len; ++i) {
-        FloatPoint p = points()->getItem(i);
+        FloatPoint p = points()->getItem(i, ec);
         _points += String::sprintf("%.6lg %.6lg ", p.x(), p.y());
     }
 
     String p("points");
     RefPtr<Attr> attr = const_cast<SVGPolyElement *>(this)->getAttributeNode(p.impl());
     if (attr) {
-        ExceptionCode ec;
+        ExceptionCode ec = 0;
         ignoreNotifications = true; // prevent recursion.
         attr->setValue(_points, ec);
         ignoreNotifications = false;
index 26881cd6983739fb53f3f6d50d84fdbaac730ac5..dc0daab16db85c37a9ba553d6e4f491c0db442e8 100644 (file)
@@ -45,9 +45,10 @@ Path SVGPolygonElement::toPathData() const
     if(len < 1)
         return polyData;
     
-    polyData.moveTo(points()->getItem(0));
+    ExceptionCode ec = 0;
+    polyData.moveTo(points()->getItem(0, ec));
     for (int i = 1; i < len; ++i)
-        polyData.addLineTo(points()->getItem(i));
+        polyData.addLineTo(points()->getItem(i, ec));
 
     polyData.closeSubpath();
     return polyData;
index a9dd7c0b4cfcc846ff89c156af1107f649134640..691365845180acc7ed55573b8f46e90ee8ae639e 100644 (file)
@@ -45,9 +45,10 @@ Path SVGPolylineElement::toPathData() const
     if(len < 1)
         return polyData;
 
-    polyData.moveTo(points()->getItem(0));
+    ExceptionCode ec = 0;
+    polyData.moveTo(points()->getItem(0, ec));
     for (int i = 1; i < len; ++i)
-        polyData.addLineTo(points()->getItem(i));
+        polyData.addLineTo(points()->getItem(i, ec));
     
     return polyData;
 }
index 2bb1cbe37ec50e08ef68a998139574e5e00bdcbd..0f18fba33daca1d4f4f06efe555418d0ab1786b7 100644 (file)
@@ -24,7 +24,7 @@
 #ifdef SVG_SUPPORT
 #include "Attr.h"
 
-#include "ksvg.h"
+#include "SVGUnitTypes.h"
 #include "SVGNames.h"
 #include "SVGHelper.h"
 #include "SVGMatrix.h"
@@ -85,7 +85,7 @@ void SVGRadialGradientElement::buildGradient(KRenderingPaintServerGradient *_gra
 {
     rebuildStops(); // rebuild stops before possibly importing them from any referenced gradient.
 
-    bool bbox = (gradientUnits() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+    bool bbox = (gradientUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
     bool fxSet = hasAttribute(SVGNames::fxAttr);
     bool fySet = hasAttribute(SVGNames::fyAttr);
     cx()->setBboxRelative(bbox);
diff --git a/WebCore/ksvg2/svg/SVGRenderingIntent.h b/WebCore/ksvg2/svg/SVGRenderingIntent.h
new file mode 100644 (file)
index 0000000..b99fea4
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+    Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGRenderingIntent_H
+#define SVGRenderingIntent_H
+
+#ifdef SVG_SUPPORT
+
+#include "Shared.h"
+
+namespace WebCore {
+
+class SVGRenderingIntent : public Shared<SVGRenderingIntent>
+{
+public:
+    enum SVGRenderingIntentType {
+        RENDERING_INTENT_UNKNOWN                  = 0,
+        RENDERING_INTENT_AUTO                     = 1,
+        RENDERING_INTENT_PERCEPTUAL               = 2,
+        RENDERING_INTENT_RELATIVE_COLORIMETRIC    = 3,
+        RENDERING_INTENT_SATURATION               = 4,
+        RENDERING_INTENT_ABSOLUTE_COLORIMETRIC    = 5
+    };
+
+    SVGRenderingIntent() { } 
+    ~SVGRenderingIntent() { }
+};
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+#endif // SVGRenderingIntent_H
+
+// vim:ts=4:noet
index b406f2e3d319388d66b12ce4a4e7589a6d73d8d2..b3d51e90f84f3ab1bfcb8490c66b7479be737bc9 100644 (file)
@@ -48,6 +48,12 @@ namespace WebCore
                               public SVGZoomAndPan
     {
     public:
+        enum SVGZoomAndPanType {
+            SVG_ZOOMANDPAN_UNKNOWN = 0,
+            SVG_ZOOMANDPAN_DISABLE = 1,
+            SVG_ZOOMANDPAN_MAGNIFY = 2
+        };
+
         SVGSVGElement(const QualifiedName&, Document*);
         virtual ~SVGSVGElement();
 
index 159238b9a66ac8dc213624cb57cdfc0c09c6d7ad..0a791264dfae9808b61140b01508ef24a2bc7bbc 100644 (file)
@@ -43,12 +43,12 @@ SVGScriptElement::~SVGScriptElement()
 {
 }
 
-StringImpl *SVGScriptElement::type() const
+String SVGScriptElement::type() const
 {
-    return m_type.impl();
+    return m_type;
 }
 
-void SVGScriptElement::setType(StringImpl *type)
+void SVGScriptElement::setType(const String& type)
 {
     m_type = type;
 }
@@ -56,7 +56,7 @@ void SVGScriptElement::setType(StringImpl *type)
 void SVGScriptElement::parseMappedAttribute(MappedAttribute *attr)
 {
     if (attr->name() == SVGNames::typeAttr)
-            setType(attr->value().impl());
+            setType(attr->value());
     else {
         if(SVGURIReference::parseMappedAttribute(attr))
             return;
index ed6d4a7e67ba4bb2998387520b4b51ae51ced473..9c6bb7eceaa8672d2bb9b4be8a283e90565c9c94 100644 (file)
@@ -39,8 +39,8 @@ namespace WebCore
         virtual ~SVGScriptElement();
 
         // 'SVGScriptElement' functions
-        StringImpl *type() const;
-        void setType(StringImpl *type);
+        String type() const;
+        void setType(const String&);
 
         // Internal
         virtual void parseMappedAttribute(MappedAttribute *attr);
index ba65f3e30702f6382a0504853779244599f7db27..a960f576d78aae52ebe947980eb1cae15b958bef 100644 (file)
@@ -40,12 +40,14 @@ SVGStringList::~SVGStringList()
 
 void SVGStringList::reset(const DeprecatedString& str)
 {
+    ExceptionCode ec = 0;
+
     DeprecatedStringList list = DeprecatedStringList::split(' ', str);
     if (list.count() == 0) {
-        appendItem(String("")); // Create empty string...
+        appendItem(String(""), ec); // Create empty string...
     } else {
         for(DeprecatedStringList::Iterator it = list.begin(); it != list.end(); ++it)
-            appendItem(String(*it));
+            appendItem(String(*it), ec);
     }
 }
 
index 2601e4362f352b6ab8a9c9a7e96850f87aac60b6..e28c417ac7d3aea6d62be3d0f4e8d1000abd1cd2 100644 (file)
@@ -65,7 +65,7 @@ SVGMatrix *SVGStyledLocatableElement::getScreenCTM() const
     return SVGLocatable::getScreenCTM(this);
 }
 
-SVGMatrix *SVGStyledLocatableElement::getTransformToElement(SVGElement *) const
+SVGMatrix *SVGStyledLocatableElement::getTransformToElement(SVGElement *, ExceptionCode&) const
 {
     // TODO!
     return 0;
index 0243fd82ba1d2c380915e25aceb71f609de6c5d7..4f070bb38782443d9f4acc790d28582ed7befa68 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore {
         virtual FloatRect getBBox() const;
         virtual SVGMatrix* getCTM() const;
         virtual SVGMatrix* getScreenCTM() const;
-        virtual SVGMatrix* getTransformToElement(SVGElement*) const;
+        virtual SVGMatrix* getTransformToElement(SVGElement*, ExceptionCode&) const;
     };
 
 } // namespace WebCore
index 40da500dcc3e003bcf7ca6b8475d6dcda89209ac..26977bc035b2c15b6fa6d370d84e47c670bae3fb 100644 (file)
@@ -91,7 +91,9 @@ void SVGStyledTransformableElement::parseMappedAttribute(MappedAttribute *attr)
 {
     if (attr->name() == SVGNames::transformAttr) {
         SVGTransformList *localTransforms = transformBaseValue();
-        localTransforms->clear();
+
+        ExceptionCode ec = 0;
+        localTransforms->clear(ec);
         
         SVGTransformable::parseTransformAttribute(localTransforms, attr->value());
         updateLocalTransform(localTransforms);
@@ -114,7 +116,7 @@ FloatRect SVGStyledTransformableElement::getBBox() const
     return SVGTransformable::getBBox(this);
 }
 
-SVGMatrix *SVGStyledTransformableElement::getTransformToElement(SVGElement *) const
+SVGMatrix *SVGStyledTransformableElement::getTransformToElement(SVGElement*, ExceptionCode&) const
 {
     return 0;
 }
index 02e46412ce81db1f2cf76ab1255b6a4e6cb11822..bfb9c3ae85b4d6402728083ea42bdc86e8ec963b 100644 (file)
@@ -54,7 +54,7 @@ namespace WebCore {
         virtual SVGElement *farthestViewportElement() const;
 
         virtual FloatRect getBBox() const;
-        virtual SVGMatrix *getTransformToElement(SVGElement *element) const;
+        virtual SVGMatrix *getTransformToElement(SVGElement*, ExceptionCode&) const;
 
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
index 1deb6f1133876ce2699e3c32bc9bd8e8969c6d03..bc486526b86415e3120fb34993df6683d07a496b 100644 (file)
@@ -57,23 +57,25 @@ SVGStringList *SVGTests::systemLanguage() const
     return lazy_create<SVGStringList>(m_systemLanguage);
 }
 
-bool SVGTests::hasExtension(StringImpl *) const
+bool SVGTests::hasExtension(const String&) const
 {
     return false;
 }
 
 bool SVGTests::isValid() const
 {
+    ExceptionCode ec = 0;
+
     SVGStringList *list = requiredFeatures();
     for (unsigned long i = 0;i < list->numberOfItems();i++) {
-        String value = String(list->getItem(i));
+        String value = String(list->getItem(i, ec));
         if(value.isEmpty() || !DOMImplementation::instance()->hasFeature(value, String()))
             return false;
     }
 
     list = systemLanguage();
     for (unsigned long i = 0; i < list->numberOfItems(); i++)
-        if (list->getItem(i) != defaultLanguage().substring(0, 2))
+        if (list->getItem(i, ec) != defaultLanguage().substring(0, 2))
             return false;
 
     list = requiredExtensions();
index 9d8328d60ebb283b96ab1a149c121250b1ce9f69..6457d1c06ed145b1f2bec0a90afd85745efeb5e8 100644 (file)
@@ -29,7 +29,7 @@
 namespace WebCore {
 
     class MappedAttribute;
-    class StringImpl;
+    class String;
     class SVGStringList;
 
     class SVGTests {
@@ -42,7 +42,7 @@ namespace WebCore {
         SVGStringList *requiredExtensions() const;
         SVGStringList *systemLanguage() const;
 
-        bool hasExtension(StringImpl *extension) const;
+        bool hasExtension(const String&) const;
 
         bool isValid() const;
         
index f72604865baf8f8ebf4b3eae01e9447b44a8ac9d..81fcad8b5da918bddcfa0f39e54124bfb6ed74ec 100644 (file)
@@ -60,27 +60,27 @@ float SVGTextContentElement::getComputedTextLength() const
     return 0.;
 }
 
-float SVGTextContentElement::getSubStringLength(unsigned long charnum, unsigned long nchars) const
+float SVGTextContentElement::getSubStringLength(unsigned long charnum, unsigned long nchars, ExceptionCode&) const
 {
     return 0.;
 }
 
-FloatPoint SVGTextContentElement::getStartPositionOfChar(unsigned long charnum) const
+FloatPoint SVGTextContentElement::getStartPositionOfChar(unsigned long charnum, ExceptionCode&) const
 {
     return FloatPoint();
 }
 
-FloatPoint SVGTextContentElement::getEndPositionOfChar(unsigned long charnum) const
+FloatPoint SVGTextContentElement::getEndPositionOfChar(unsigned long charnum, ExceptionCode&) const
 {
     return FloatPoint();
 }
 
-FloatRect SVGTextContentElement::getExtentOfChar(unsigned long charnum) const
+FloatRect SVGTextContentElement::getExtentOfChar(unsigned long charnum, ExceptionCode&) const
 {
     return FloatRect();
 }
 
-float SVGTextContentElement::getRotationOfChar(unsigned long charnum) const
+float SVGTextContentElement::getRotationOfChar(unsigned long charnum, ExceptionCode&) const
 {
     return 0.;
 }
@@ -90,7 +90,7 @@ long SVGTextContentElement::getCharNumAtPosition(const FloatPoint& point) const
     return 0;
 }
 
-void SVGTextContentElement::selectSubString(unsigned long charnum, unsigned long nchars) const
+void SVGTextContentElement::selectSubString(unsigned long charnum, unsigned long nchars, ExceptionCode&) const
 {
 }
 
index 8ba935c517da88de82044b23f0b9b92e99b235dc..810d95007047db81c78332e3fcda501aef602536 100644 (file)
@@ -38,6 +38,12 @@ namespace WebCore {
                                       public SVGExternalResourcesRequired
     {
     public:
+        enum SVGLengthAdjustType {
+            LENGTHADJUST_UNKNOWN            = 0,
+            LENGTHADJUST_SPACING            = 1,
+            LENGTHADJUST_SPACINGANDGLYPHS   = 2
+        };
+
         SVGTextContentElement(const QualifiedName&, Document*);
         virtual ~SVGTextContentElement();
         
@@ -46,13 +52,13 @@ namespace WebCore {
         // 'SVGTextContentElement' functions
         long getNumberOfChars() const;
         float getComputedTextLength() const;
-        float getSubStringLength(unsigned long charnum, unsigned long nchars) const;
-        FloatPoint getStartPositionOfChar(unsigned long charnum) const;
-        FloatPoint getEndPositionOfChar(unsigned long charnum) const;
-        FloatRect getExtentOfChar(unsigned long charnum) const;
-        float getRotationOfChar(unsigned long charnum) const;
+        float getSubStringLength(unsigned long charnum, unsigned long nchars, ExceptionCode&) const;
+        FloatPoint getStartPositionOfChar(unsigned long charnum, ExceptionCode&) const;
+        FloatPoint getEndPositionOfChar(unsigned long charnum, ExceptionCode&) const;
+        FloatRect getExtentOfChar(unsigned long charnum, ExceptionCode&) const;
+        float getRotationOfChar(unsigned long charnum, ExceptionCode&) const;
         long getCharNumAtPosition(const FloatPoint&) const;
-        void selectSubString(unsigned long charnum, unsigned long nchars) const;
+        void selectSubString(unsigned long charnum, unsigned long nchars, ExceptionCode&) const;
 
         virtual void parseMappedAttribute(MappedAttribute*);
 
index 7693b0e3072898512bce25b6b3e49cdfd8c5298f..2e4309be09aea54a7659f2517f0cff36b3ad62c2 100644 (file)
@@ -58,7 +58,9 @@ void SVGTextElement::parseMappedAttribute(MappedAttribute *attr)
 {
     if (attr->name() == SVGNames::transformAttr) {
         SVGTransformList *localTransforms = transformBaseValue();
-        localTransforms->clear();
+
+        ExceptionCode ec = 0;
+        localTransforms->clear(ec);
         
         SVGTransformable::parseTransformAttribute(localTransforms, attr->value());
         updateLocalTransform(localTransforms);
index 7346d9385e70be7b4e0b4211d0f2164bcf6676c1..5aa22068523380165e4ab3b5c283a620d1db1bd8 100644 (file)
@@ -45,7 +45,7 @@ namespace WebCore
         virtual FloatRect getBBox() const;
         virtual SVGMatrix *getCTM() const;
         virtual SVGMatrix *getScreenCTM() const;
-        virtual SVGMatrix *getTransformToElement(SVGElement *element) const { return 0; }
+        virtual SVGMatrix *getTransformToElement(SVGElement*, ExceptionCode&) const { return 0; }
 
         virtual bool rendererIsNeeded(RenderStyle *style) { return StyledElement::rendererIsNeeded(style); }
         virtual RenderObject *createRenderer(RenderArena *arena, RenderStyle *style);
index 7fadb491c8aa611d39261523f6b77bdb30656e27..aa6b5c23e9632595ff2f75bef44f4d2a34a2ca9c 100644 (file)
@@ -32,9 +32,6 @@ namespace WebCore {
     class SVGMatrix;
     class SVGTransform : public Shared<SVGTransform> {
     public:
-        SVGTransform();
-        virtual ~SVGTransform();
-        
         enum SVGTransformType {
             SVG_TRANSFORM_UNKNOWN           = 0,
             SVG_TRANSFORM_MATRIX            = 1,
@@ -44,7 +41,10 @@ namespace WebCore {
             SVG_TRANSFORM_SKEWX             = 5,
             SVG_TRANSFORM_SKEWY             = 6
         };
-        
+        SVGTransform();
+        virtual ~SVGTransform();
+               
         unsigned short type() const;
 
         SVGMatrix* matrix() const;
index 5e18e3192744ebedbfbf8fcd1bffa0c6ce4cdbd0..2f870a4c0ba79b5041982a2ca2a5fd118c33c4f4 100644 (file)
@@ -51,7 +51,8 @@ SVGTransform* SVGTransformList::consolidate()
     if (!obj)
         return 0;
 
-    return initialize(obj);
+    ExceptionCode ec = 0;
+    return initialize(obj, ec);
 }
 
 SVGTransform* SVGTransformList::concatenate() const
@@ -63,8 +64,9 @@ SVGTransform* SVGTransformList::concatenate() const
     SVGTransform* obj = SVGSVGElement::createSVGTransform();
     SVGMatrix* matrix = SVGSVGElement::createSVGMatrix();
 
+    ExceptionCode ec = 0;
     for(unsigned int i = 0; i < length; i++)
-        matrix->multiply(getItem(i)->matrix());
+        matrix->multiply(getItem(i, ec)->matrix());
 
     obj->setMatrix(matrix);
     return obj;
index a7efdc6d1c6b2e1e48f0a09c567c1345eac6bb61..45a02dd1b37c7fede2b2b2712cbfe21d1106c66a 100644 (file)
@@ -114,10 +114,11 @@ void SVGTransformable::parseTransformAttribute(SVGTransformList *list, const Ato
             t->setMatrix(ret);
         }
         
-        if (t->type() == SVG_TRANSFORM_UNKNOWN)
+        if (t->type() == SVGTransform::SVG_TRANSFORM_UNKNOWN)
             break; // failed to parse a valid transform, abort.
         
-        list->appendItem(t.release().release());
+        ExceptionCode ec = 0;
+        list->appendItem(t.release().release(), ec);
     }
 }
 
diff --git a/WebCore/ksvg2/svg/SVGUnitTypes.h b/WebCore/ksvg2/svg/SVGUnitTypes.h
new file mode 100644 (file)
index 0000000..1c5830c
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+    Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGUnitTypes_H
+#define SVGUnitTypes_H
+
+#ifdef SVG_SUPPORT
+
+#include "Shared.h"
+
+namespace WebCore {
+
+class SVGUnitTypes : public Shared<SVGUnitTypes>
+{
+public:
+    enum SVGUnitType {
+        SVG_UNIT_TYPE_UNKNOWN               = 0,
+        SVG_UNIT_TYPE_USERSPACEONUSE        = 1,
+        SVG_UNIT_TYPE_OBJECTBOUNDINGBOX     = 2
+    };
+
+    SVGUnitTypes() { } 
+    ~SVGUnitTypes() { }
+};
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+#endif // SVGUnitTypes_H
+
+// vim:ts=4:noet
index c26bb111b9e94fb69370435edfaab1b863016486..7041ed34c228146c3b25f8b0ccae47a9838c7382 100644 (file)
@@ -104,7 +104,7 @@ void SVGUseElement::closeRenderer()
     String wString = String::number(_w);
     String hString = String::number(_h);
     
-    ExceptionCode ec;
+    ExceptionCode ec = 0;
     String trans = String::sprintf("translate(%f, %f)", _x, _y);
     if (target->hasTagName(SVGNames::symbolTag)) {
         RefPtr<SVGElement> dummy = new SVGSVGElement(SVGNames::svgTag, document());
index ff47e6156ace0a1edf65bdac132d87b6fe497906..590601c307b806e5783ad73b69864578dd647d93 100644 (file)
@@ -38,6 +38,12 @@ namespace WebCore
                                public SVGZoomAndPan
     {
     public:
+        enum SVGZoomAndPanType {
+            SVG_ZOOMANDPAN_UNKNOWN = 0,
+            SVG_ZOOMANDPAN_DISABLE = 1,
+            SVG_ZOOMANDPAN_MAGNIFY = 2
+        };
+
         SVGViewElement(const QualifiedName&, Document*);
         virtual ~SVGViewElement();
 
index f26ace523c6cb7c041b2c33ef8f7a117645dc0d4..bd64d670f9d7facdbdf1dc694f7d3fa93ede0557 100644 (file)
 #include "ksvg.h"
 #include "SVGNames.h"
 #include "SVGHelper.h"
+#include "SVGSVGElement.h"
 #include "SVGZoomAndPan.h"
 
 namespace WebCore {
 
 SVGZoomAndPan::SVGZoomAndPan()
-    : m_zoomAndPan(SVG_ZOOMANDPAN_MAGNIFY)
+    : m_zoomAndPan(SVGSVGElement::SVG_ZOOMANDPAN_MAGNIFY)
 {
 }
 
@@ -56,9 +57,9 @@ bool SVGZoomAndPan::parseMappedAttribute(MappedAttribute *attr)
     const String& value = attr->value();
     if (attr->name() == SVGNames::zoomAndPanAttr) {
         if(value == "disable")
-            setZoomAndPan(SVG_ZOOMANDPAN_DISABLE);
+            setZoomAndPan(SVGSVGElement::SVG_ZOOMANDPAN_DISABLE);
         else if(value == "magnify")
-            setZoomAndPan(SVG_ZOOMANDPAN_MAGNIFY);
+            setZoomAndPan(SVGSVGElement::SVG_ZOOMANDPAN_MAGNIFY);
         return true;
     }