summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/style/SVGRenderStyleDefs.h
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:15 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:15 -0800
commit1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353 (patch)
tree4457a7306ea5acb43fe05bfe0973b1f7faf97ba2 /WebCore/rendering/style/SVGRenderStyleDefs.h
parent9364f22aed35e1a1e9d07c121510f80be3ab0502 (diff)
downloadexternal_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.zip
external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.tar.gz
external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.tar.bz2
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'WebCore/rendering/style/SVGRenderStyleDefs.h')
-rw-r--r--WebCore/rendering/style/SVGRenderStyleDefs.h297
1 files changed, 297 insertions, 0 deletions
diff --git a/WebCore/rendering/style/SVGRenderStyleDefs.h b/WebCore/rendering/style/SVGRenderStyleDefs.h
new file mode 100644
index 0000000..12a70d3
--- /dev/null
+++ b/WebCore/rendering/style/SVGRenderStyleDefs.h
@@ -0,0 +1,297 @@
+/*
+ Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ 2004, 2005 Rob Buis <buis@kde.org>
+
+ Based on khtml code by:
+ Copyright (C) 2000-2003 Lars Knoll (knoll@kde.org)
+ (C) 2000 Antti Koivisto (koivisto@kde.org)
+ (C) 2000-2003 Dirk Mueller (mueller@kde.org)
+ (C) 2002-2003 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.
+*/
+
+#ifndef SVGRenderStyleDefs_h
+#define SVGRenderStyleDefs_h
+
+#if ENABLE(SVG)
+#include "Color.h"
+#include "Path.h"
+#include "PlatformString.h"
+#include <wtf/RefCounted.h>
+#include <wtf/RefPtr.h>
+
+// Helper macros for 'SVGRenderStyle'
+#define SVG_RS_DEFINE_ATTRIBUTE(Data, Type, Name, Initial) \
+ void set##Type(Data val) { svg_noninherited_flags.f._##Name = val; } \
+ Data Name() const { return (Data) svg_noninherited_flags.f._##Name; } \
+ static Data initial##Type() { return Initial; }
+
+#define SVG_RS_DEFINE_ATTRIBUTE_INHERITED(Data, Type, Name, Initial) \
+ void set##Type(Data val) { svg_inherited_flags._##Name = val; } \
+ Data Name() const { return (Data) svg_inherited_flags._##Name; } \
+ static Data initial##Type() { return Initial; }
+
+// "Helper" macros for SVG's RenderStyle properties
+// FIXME: These are impossible to work with or debug.
+#define SVG_RS_DEFINE_ATTRIBUTE_DATAREF(Data, Group, Variable, Type, Name) \
+ Data Name() const { return Group->Variable; } \
+ void set##Type(Data obj) { SVG_RS_SET_VARIABLE(Group, Variable, obj) }
+
+#define SVG_RS_DEFINE_ATTRIBUTE_DATAREF_WITH_INITIAL(Data, Group, Variable, Type, Name, Initial) \
+ SVG_RS_DEFINE_ATTRIBUTE_DATAREF(Data, Group, Variable, Type, Name) \
+ static Data initial##Type() { return Initial; }
+
+#define SVG_RS_DEFINE_ATTRIBUTE_DATAREF_WITH_INITIAL_REFCOUNTED(Data, Group, Variable, Type, Name, Initial) \
+ Data* Name() const { return Group->Variable.get(); } \
+ void set##Type(PassRefPtr<Data> obj) { \
+ if(!(Group->Variable == obj)) \
+ Group.access()->Variable = obj; \
+ } \
+ static Data* initial##Type() { return Initial; }
+
+#define SVG_RS_SET_VARIABLE(Group, Variable, Value) \
+ if(!(Group->Variable == Value)) \
+ Group.access()->Variable = Value;
+
+namespace WebCore {
+
+ enum EBaselineShift {
+ BS_BASELINE, BS_SUB, BS_SUPER, BS_LENGTH
+ };
+
+ enum ETextAnchor {
+ TA_START, TA_MIDDLE, TA_END
+ };
+
+ enum EColorInterpolation {
+ CI_AUTO, CI_SRGB, CI_LINEARRGB
+ };
+
+ enum EColorRendering {
+ CR_AUTO, CR_OPTIMIZESPEED, CR_OPTIMIZEQUALITY
+ };
+
+ enum EImageRendering {
+ IR_AUTO, IR_OPTIMIZESPEED, IR_OPTIMIZEQUALITY
+ };
+
+ enum EShapeRendering {
+ SR_AUTO, SR_OPTIMIZESPEED, SR_CRISPEDGES, SR_GEOMETRICPRECISION
+ };
+
+ enum ETextRendering {
+ TR_AUTO, TR_OPTIMIZESPEED, TR_OPTIMIZELEGIBILITY, TR_GEOMETRICPRECISION
+ };
+
+ enum EWritingMode {
+ WM_LRTB, WM_LR, WM_RLTB, WM_RL, WM_TBRL, WM_TB
+ };
+
+ enum EGlyphOrientation {
+ GO_0DEG, GO_90DEG, GO_180DEG, GO_270DEG, GO_AUTO
+ };
+
+ enum EAlignmentBaseline {
+ AB_AUTO, AB_BASELINE, AB_BEFORE_EDGE, AB_TEXT_BEFORE_EDGE,
+ AB_MIDDLE, AB_CENTRAL, AB_AFTER_EDGE, AB_TEXT_AFTER_EDGE,
+ AB_IDEOGRAPHIC, AB_ALPHABETIC, AB_HANGING, AB_MATHEMATICAL
+ };
+
+ enum EDominantBaseline {
+ DB_AUTO, DB_USE_SCRIPT, DB_NO_CHANGE, DB_RESET_SIZE,
+ DB_IDEOGRAPHIC, DB_ALPHABETIC, DB_HANGING, DB_MATHEMATICAL,
+ DB_CENTRAL, DB_MIDDLE, DB_TEXT_AFTER_EDGE, DB_TEXT_BEFORE_EDGE
+ };
+
+ enum EPointerEvents {
+ PE_NONE, PE_STROKE, PE_FILL, PE_PAINTED, PE_VISIBLE,
+ PE_VISIBLE_STROKE, PE_VISIBLE_FILL, PE_VISIBLE_PAINTED, PE_ALL
+ };
+
+ class CSSValue;
+ class CSSValueList;
+ class SVGPaint;
+
+ // Inherited/Non-Inherited Style Datastructures
+ class StyleFillData : public RefCounted<StyleFillData> {
+ public:
+ static PassRefPtr<StyleFillData> create() { return adoptRef(new StyleFillData); }
+ PassRefPtr<StyleFillData> copy() const { return adoptRef(new StyleFillData(*this)); }
+
+ bool operator==(const StyleFillData &other) const;
+ bool operator!=(const StyleFillData &other) const
+ {
+ return !(*this == other);
+ }
+
+ float opacity;
+ RefPtr<SVGPaint> paint;
+
+ private:
+ StyleFillData();
+ StyleFillData(const StyleFillData&);
+ };
+
+ class StyleStrokeData : public RefCounted<StyleStrokeData> {
+ public:
+ static PassRefPtr<StyleStrokeData> create() { return adoptRef(new StyleStrokeData); }
+ PassRefPtr<StyleStrokeData> copy() const { return adoptRef(new StyleStrokeData(*this)); }
+
+ bool operator==(const StyleStrokeData&) const;
+ bool operator!=(const StyleStrokeData& other) const
+ {
+ return !(*this == other);
+ }
+
+ float opacity;
+ float miterLimit;
+
+ RefPtr<CSSValue> width;
+ RefPtr<CSSValue> dashOffset;
+
+ RefPtr<SVGPaint> paint;
+ RefPtr<CSSValueList> dashArray;
+
+ private:
+ StyleStrokeData();
+ StyleStrokeData(const StyleStrokeData&);
+ };
+
+ class StyleStopData : public RefCounted<StyleStopData> {
+ public:
+ static PassRefPtr<StyleStopData> create() { return adoptRef(new StyleStopData); }
+ PassRefPtr<StyleStopData> copy() const { return adoptRef(new StyleStopData(*this)); }
+
+ bool operator==(const StyleStopData &other) const;
+ bool operator!=(const StyleStopData &other) const
+ {
+ return !(*this == other);
+ }
+
+ float opacity;
+ Color color;
+
+ private:
+ StyleStopData();
+ StyleStopData(const StyleStopData&);
+ };
+
+ class StyleTextData : public RefCounted<StyleTextData> {
+ public:
+ static PassRefPtr<StyleTextData> create() { return adoptRef(new StyleTextData); }
+ PassRefPtr<StyleTextData> copy() const { return adoptRef(new StyleTextData(*this)); }
+
+ bool operator==(const StyleTextData& other) const;
+ bool operator!=(const StyleTextData& other) const
+ {
+ return !(*this == other);
+ }
+
+ RefPtr<CSSValue> kerning;
+
+ private:
+ StyleTextData();
+ StyleTextData(const StyleTextData& other);
+ };
+
+ class StyleClipData : public RefCounted<StyleClipData> {
+ public:
+ static PassRefPtr<StyleClipData> create() { return adoptRef(new StyleClipData); }
+ PassRefPtr<StyleClipData> copy() const { return adoptRef(new StyleClipData(*this)); }
+
+ bool operator==(const StyleClipData &other) const;
+ bool operator!=(const StyleClipData &other) const
+ {
+ return !(*this == other);
+ }
+
+ String clipPath;
+
+ private:
+ StyleClipData();
+ StyleClipData(const StyleClipData&);
+ };
+
+ class StyleMaskData : public RefCounted<StyleMaskData> {
+ public:
+ static PassRefPtr<StyleMaskData> create() { return adoptRef(new StyleMaskData); }
+ PassRefPtr<StyleMaskData> copy() const { return adoptRef(new StyleMaskData(*this)); }
+
+ bool operator==(const StyleMaskData &other) const;
+ bool operator!=(const StyleMaskData &other) const { return !(*this == other); }
+
+ String maskElement;
+
+ private:
+ StyleMaskData();
+ StyleMaskData(const StyleMaskData&);
+ };
+
+ class StyleMarkerData : public RefCounted<StyleMarkerData> {
+ public:
+ static PassRefPtr<StyleMarkerData> create() { return adoptRef(new StyleMarkerData); }
+ PassRefPtr<StyleMarkerData> copy() const { return adoptRef(new StyleMarkerData(*this)); }
+
+ bool operator==(const StyleMarkerData &other) const;
+ bool operator!=(const StyleMarkerData &other) const
+ {
+ return !(*this == other);
+ }
+
+ String startMarker;
+ String midMarker;
+ String endMarker;
+
+ private:
+ StyleMarkerData();
+ StyleMarkerData(const StyleMarkerData&);
+ };
+
+ // Note : the rule for this class is, *no inheritance* of these props
+ class StyleMiscData : public RefCounted<StyleMiscData> {
+ public:
+ static PassRefPtr<StyleMiscData> create() { return adoptRef(new StyleMiscData); }
+ PassRefPtr<StyleMiscData> copy() const { return adoptRef(new StyleMiscData(*this)); }
+
+ bool operator==(const StyleMiscData &other) const;
+ bool operator!=(const StyleMiscData &other) const
+ {
+ return !(*this == other);
+ }
+
+ String filter;
+ Color floodColor;
+ float floodOpacity;
+
+ Color lightingColor;
+
+ // non-inherited text stuff lives here not in StyleTextData.
+ RefPtr<CSSValue> baselineShiftValue;
+
+ private:
+ StyleMiscData();
+ StyleMiscData(const StyleMiscData&);
+ };
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGRenderStyleDefs_h
+
+// vim:ts=4:noet