summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/SVGRenderStyleDefs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/SVGRenderStyleDefs.cpp')
-rw-r--r--WebCore/rendering/SVGRenderStyleDefs.cpp218
1 files changed, 218 insertions, 0 deletions
diff --git a/WebCore/rendering/SVGRenderStyleDefs.cpp b/WebCore/rendering/SVGRenderStyleDefs.cpp
new file mode 100644
index 0000000..f5faad3
--- /dev/null
+++ b/WebCore/rendering/SVGRenderStyleDefs.cpp
@@ -0,0 +1,218 @@
+/*
+ Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ 2004, 2005, 2007 Rob Buis <buis@kde.org>
+
+ Based on khtml code by:
+ Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
+ Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org)
+ Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org)
+ Copyright (C) 2002 Apple Computer, Inc.
+
+ 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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "config.h"
+#if ENABLE(SVG)
+#include "SVGRenderStyleDefs.h"
+
+#include "RenderStyle.h"
+#include "SVGRenderStyle.h"
+
+using namespace WebCore;
+
+StyleFillData::StyleFillData()
+{
+ paint = SVGRenderStyle::initialFillPaint();
+ opacity = SVGRenderStyle::initialFillOpacity();
+}
+
+StyleFillData::StyleFillData(const StyleFillData& other)
+ : RefCounted<StyleFillData>()
+{
+ paint = other.paint;
+ opacity = other.opacity;
+}
+
+bool StyleFillData::operator==(const StyleFillData &other) const
+{
+ if (opacity != other.opacity)
+ return false;
+
+ if (!paint || !other.paint)
+ return paint == other.paint;
+
+ if (paint->paintType() != other.paint->paintType())
+ return false;
+
+ if (paint->paintType() == SVGPaint::SVG_PAINTTYPE_URI)
+ return paint->uri() == other.paint->uri();
+
+ if (paint->paintType() == SVGPaint::SVG_PAINTTYPE_RGBCOLOR)
+ return paint->color() == other.paint->color();
+
+ return paint == other.paint;
+}
+
+StyleStrokeData::StyleStrokeData()
+{
+ width = SVGRenderStyle::initialStrokeWidth();
+ paint = SVGRenderStyle::initialStrokePaint();
+ opacity = SVGRenderStyle::initialStrokeOpacity();
+ miterLimit = SVGRenderStyle::initialStrokeMiterLimit();
+ dashOffset = SVGRenderStyle::initialStrokeDashOffset();
+ dashArray = SVGRenderStyle::initialStrokeDashArray();
+}
+
+StyleStrokeData::StyleStrokeData(const StyleStrokeData& other)
+ : RefCounted<StyleStrokeData>()
+{
+ width = other.width;
+ paint = other.paint;
+ opacity = other.opacity;
+ miterLimit = other.miterLimit;
+ dashOffset = other.dashOffset;
+ dashArray = other.dashArray;
+}
+
+bool StyleStrokeData::operator==(const StyleStrokeData &other) const
+{
+ return (paint == other.paint) &&
+ (width == other.width) &&
+ (opacity == other.opacity) &&
+ (miterLimit == other.miterLimit) &&
+ (dashOffset == other.dashOffset) &&
+ (dashArray == other.dashArray);
+}
+
+StyleStopData::StyleStopData()
+{
+ color = SVGRenderStyle::initialStopColor();
+ opacity = SVGRenderStyle::initialStopOpacity();
+}
+
+StyleStopData::StyleStopData(const StyleStopData& other)
+ : RefCounted<StyleStopData>()
+{
+ color = other.color;
+ opacity = other.opacity;
+}
+
+bool StyleStopData::operator==(const StyleStopData &other) const
+{
+ return (color == other.color) &&
+ (opacity == other.opacity);
+}
+
+StyleTextData::StyleTextData()
+{
+ kerning = SVGRenderStyle::initialKerning();
+}
+
+StyleTextData::StyleTextData(const StyleTextData& other)
+ : RefCounted<StyleTextData>()
+{
+ kerning = other.kerning;
+}
+
+bool StyleTextData::operator==(const StyleTextData& other) const
+{
+ return kerning == other.kerning;
+}
+
+StyleClipData::StyleClipData()
+{
+ clipPath = SVGRenderStyle::initialClipPath();
+}
+
+StyleClipData::StyleClipData(const StyleClipData& other)
+ : RefCounted<StyleClipData>()
+{
+ clipPath = other.clipPath;
+}
+
+bool StyleClipData::operator==(const StyleClipData &other) const
+{
+ return (clipPath == other.clipPath);
+}
+
+StyleMaskData::StyleMaskData()
+{
+ maskElement = SVGRenderStyle::initialMaskElement();
+}
+
+StyleMaskData::StyleMaskData(const StyleMaskData& other)
+ : RefCounted<StyleMaskData>()
+{
+ maskElement = other.maskElement;
+}
+
+bool StyleMaskData::operator==(const StyleMaskData &other) const
+{
+ return (maskElement == other.maskElement);
+}
+
+StyleMarkerData::StyleMarkerData()
+{
+ startMarker = SVGRenderStyle::initialStartMarker();
+ midMarker = SVGRenderStyle::initialMidMarker();
+ endMarker = SVGRenderStyle::initialEndMarker();
+}
+
+StyleMarkerData::StyleMarkerData(const StyleMarkerData& other)
+ : RefCounted<StyleMarkerData>()
+{
+ startMarker = other.startMarker;
+ midMarker = other.midMarker;
+ endMarker = other.endMarker;
+}
+
+bool StyleMarkerData::operator==(const StyleMarkerData &other) const
+{
+ return (startMarker == other.startMarker && midMarker == other.midMarker && endMarker == other.endMarker);
+}
+
+StyleMiscData::StyleMiscData()
+{
+ floodColor = SVGRenderStyle::initialFloodColor();
+ floodOpacity = SVGRenderStyle::initialFloodOpacity();
+ lightingColor = SVGRenderStyle::initialLightingColor();
+ baselineShiftValue = SVGRenderStyle::initialBaselineShiftValue();
+}
+
+StyleMiscData::StyleMiscData(const StyleMiscData& other)
+ : RefCounted<StyleMiscData>()
+{
+ filter = other.filter;
+ floodColor = other.floodColor;
+ floodOpacity = other.floodOpacity;
+ lightingColor = other.lightingColor;
+ baselineShiftValue = other.baselineShiftValue;
+}
+
+bool StyleMiscData::operator==(const StyleMiscData &other) const
+{
+ return filter == other.filter
+ && floodOpacity == other.floodOpacity
+ && floodColor == other.floodColor
+ && lightingColor == other.lightingColor
+ && baselineShiftValue == other.baselineShiftValue;
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet