| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2     Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> |  | 
| 3                   2004, 2005 Rob Buis <buis@kde.org> |  | 
| 4     Copyright (C) Research In Motion Limited 2010. All rights reserved. |  | 
| 5 |  | 
| 6     Based on khtml code by: |  | 
| 7     Copyright (C) 2000-2003 Lars Knoll (knoll@kde.org) |  | 
| 8               (C) 2000 Antti Koivisto (koivisto@kde.org) |  | 
| 9               (C) 2000-2003 Dirk Mueller (mueller@kde.org) |  | 
| 10               (C) 2002-2003 Apple Computer, Inc. |  | 
| 11 |  | 
| 12     This library is free software; you can redistribute it and/or |  | 
| 13     modify it under the terms of the GNU Library General Public |  | 
| 14     License as published by the Free Software Foundation; either |  | 
| 15     version 2 of the License, or (at your option) any later version. |  | 
| 16 |  | 
| 17     This library is distributed in the hope that it will be useful, |  | 
| 18     but WITHOUT ANY WARRANTY; without even the implied warranty of |  | 
| 19     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU |  | 
| 20     Library General Public License for more details. |  | 
| 21 |  | 
| 22     You should have received a copy of the GNU Library General Public License |  | 
| 23     along with this library; see the file COPYING.LIB.  If not, write to |  | 
| 24     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |  | 
| 25     Boston, MA 02110-1301, USA. |  | 
| 26 */ |  | 
| 27 |  | 
| 28 #ifndef SVGLayoutStyleDefs_h |  | 
| 29 #define SVGLayoutStyleDefs_h |  | 
| 30 |  | 
| 31 #include "platform/Length.h" |  | 
| 32 #include "platform/graphics/Color.h" |  | 
| 33 #include "wtf/OwnPtr.h" |  | 
| 34 #include "wtf/PassOwnPtr.h" |  | 
| 35 #include "wtf/RefCounted.h" |  | 
| 36 #include "wtf/RefPtr.h" |  | 
| 37 #include "wtf/RefVector.h" |  | 
| 38 #include "wtf/text/WTFString.h" |  | 
| 39 |  | 
| 40 namespace blink { |  | 
| 41 |  | 
| 42 typedef RefVector<Length> SVGDashArray; |  | 
| 43 |  | 
| 44 enum SVGPaintType { |  | 
| 45     SVG_PAINTTYPE_RGBCOLOR, |  | 
| 46     SVG_PAINTTYPE_NONE, |  | 
| 47     SVG_PAINTTYPE_CURRENTCOLOR, |  | 
| 48     SVG_PAINTTYPE_URI_NONE, |  | 
| 49     SVG_PAINTTYPE_URI_CURRENTCOLOR, |  | 
| 50     SVG_PAINTTYPE_URI_RGBCOLOR, |  | 
| 51     SVG_PAINTTYPE_URI |  | 
| 52 }; |  | 
| 53 |  | 
| 54 enum EBaselineShift { |  | 
| 55     BS_LENGTH, BS_SUB, BS_SUPER |  | 
| 56 }; |  | 
| 57 |  | 
| 58 enum ETextAnchor { |  | 
| 59     TA_START, TA_MIDDLE, TA_END |  | 
| 60 }; |  | 
| 61 |  | 
| 62 enum EColorInterpolation { |  | 
| 63     CI_AUTO, CI_SRGB, CI_LINEARRGB |  | 
| 64 }; |  | 
| 65 |  | 
| 66 enum EColorRendering { |  | 
| 67     CR_AUTO, CR_OPTIMIZESPEED, CR_OPTIMIZEQUALITY |  | 
| 68 }; |  | 
| 69 enum EShapeRendering { |  | 
| 70     SR_AUTO, SR_OPTIMIZESPEED, SR_CRISPEDGES, SR_GEOMETRICPRECISION |  | 
| 71 }; |  | 
| 72 |  | 
| 73 enum SVGWritingMode { |  | 
| 74     WM_LRTB, WM_LR, WM_RLTB, WM_RL, WM_TBRL, WM_TB |  | 
| 75 }; |  | 
| 76 |  | 
| 77 enum EGlyphOrientation { |  | 
| 78     GO_0DEG, GO_90DEG, GO_180DEG, GO_270DEG, GO_AUTO |  | 
| 79 }; |  | 
| 80 |  | 
| 81 enum EAlignmentBaseline { |  | 
| 82     AB_AUTO, AB_BASELINE, AB_BEFORE_EDGE, AB_TEXT_BEFORE_EDGE, |  | 
| 83     AB_MIDDLE, AB_CENTRAL, AB_AFTER_EDGE, AB_TEXT_AFTER_EDGE, |  | 
| 84     AB_IDEOGRAPHIC, AB_ALPHABETIC, AB_HANGING, AB_MATHEMATICAL |  | 
| 85 }; |  | 
| 86 |  | 
| 87 enum EDominantBaseline { |  | 
| 88     DB_AUTO, DB_USE_SCRIPT, DB_NO_CHANGE, DB_RESET_SIZE, |  | 
| 89     DB_IDEOGRAPHIC, DB_ALPHABETIC, DB_HANGING, DB_MATHEMATICAL, |  | 
| 90     DB_CENTRAL, DB_MIDDLE, DB_TEXT_AFTER_EDGE, DB_TEXT_BEFORE_EDGE |  | 
| 91 }; |  | 
| 92 |  | 
| 93 enum EVectorEffect { |  | 
| 94     VE_NONE, |  | 
| 95     VE_NON_SCALING_STROKE |  | 
| 96 }; |  | 
| 97 |  | 
| 98 enum EBufferedRendering { |  | 
| 99     BR_AUTO, |  | 
| 100     BR_DYNAMIC, |  | 
| 101     BR_STATIC |  | 
| 102 }; |  | 
| 103 |  | 
| 104 enum EMaskType { |  | 
| 105     MT_LUMINANCE, |  | 
| 106     MT_ALPHA |  | 
| 107 }; |  | 
| 108 |  | 
| 109 enum EPaintOrderType { |  | 
| 110     PT_NONE    = 0, |  | 
| 111     PT_FILL    = 1, |  | 
| 112     PT_STROKE  = 2, |  | 
| 113     PT_MARKERS = 3 |  | 
| 114 }; |  | 
| 115 |  | 
| 116 const int kPaintOrderBitwidth = 2; |  | 
| 117 typedef unsigned EPaintOrder; |  | 
| 118 const unsigned PO_NORMAL = PT_FILL | PT_STROKE << 2 | PT_MARKERS << 4; |  | 
| 119 |  | 
| 120 // Inherited/Non-Inherited Style Datastructures |  | 
| 121 class StyleFillData : public RefCounted<StyleFillData> { |  | 
| 122 public: |  | 
| 123     static PassRefPtr<StyleFillData> create() { return adoptRef(new StyleFillDat
     a); } |  | 
| 124     PassRefPtr<StyleFillData> copy() const { return adoptRef(new StyleFillData(*
     this)); } |  | 
| 125 |  | 
| 126     bool operator==(const StyleFillData&) const; |  | 
| 127     bool operator!=(const StyleFillData& other) const |  | 
| 128     { |  | 
| 129         return !(*this == other); |  | 
| 130     } |  | 
| 131 |  | 
| 132     float opacity; |  | 
| 133     SVGPaintType paintType; |  | 
| 134     Color paintColor; |  | 
| 135     String paintUri; |  | 
| 136     SVGPaintType visitedLinkPaintType; |  | 
| 137     Color visitedLinkPaintColor; |  | 
| 138     String visitedLinkPaintUri; |  | 
| 139 |  | 
| 140 private: |  | 
| 141     StyleFillData(); |  | 
| 142     StyleFillData(const StyleFillData&); |  | 
| 143 }; |  | 
| 144 |  | 
| 145 class UnzoomedLength { |  | 
| 146 public: |  | 
| 147     explicit UnzoomedLength(const Length& length) : m_length(length) { } |  | 
| 148 |  | 
| 149     bool isZero() const { return m_length.isZero(); } |  | 
| 150 |  | 
| 151     bool operator==(const UnzoomedLength& other) const { return m_length == othe
     r.m_length; } |  | 
| 152     bool operator!=(const UnzoomedLength& other) const { return !operator==(othe
     r); } |  | 
| 153 |  | 
| 154     const Length& length() const { return m_length; } |  | 
| 155 |  | 
| 156 private: |  | 
| 157     Length m_length; |  | 
| 158 }; |  | 
| 159 |  | 
| 160 class StyleStrokeData : public RefCounted<StyleStrokeData> { |  | 
| 161 public: |  | 
| 162     static PassRefPtr<StyleStrokeData> create() |  | 
| 163     { |  | 
| 164         return adoptRef(new StyleStrokeData); |  | 
| 165     } |  | 
| 166 |  | 
| 167     PassRefPtr<StyleStrokeData> copy() const |  | 
| 168     { |  | 
| 169         return adoptRef(new StyleStrokeData(*this)); |  | 
| 170     } |  | 
| 171 |  | 
| 172     bool operator==(const StyleStrokeData&) const; |  | 
| 173     bool operator!=(const StyleStrokeData& other) const |  | 
| 174     { |  | 
| 175         return !(*this == other); |  | 
| 176     } |  | 
| 177 |  | 
| 178     float opacity; |  | 
| 179     float miterLimit; |  | 
| 180 |  | 
| 181     UnzoomedLength width; |  | 
| 182     Length dashOffset; |  | 
| 183     RefPtr<SVGDashArray> dashArray; |  | 
| 184 |  | 
| 185     SVGPaintType paintType; |  | 
| 186     Color paintColor; |  | 
| 187     String paintUri; |  | 
| 188     SVGPaintType visitedLinkPaintType; |  | 
| 189     Color visitedLinkPaintColor; |  | 
| 190     String visitedLinkPaintUri; |  | 
| 191 |  | 
| 192 private: |  | 
| 193     StyleStrokeData(); |  | 
| 194     StyleStrokeData(const StyleStrokeData&); |  | 
| 195 }; |  | 
| 196 |  | 
| 197 class StyleStopData : public RefCounted<StyleStopData> { |  | 
| 198 public: |  | 
| 199     static PassRefPtr<StyleStopData> create() { return adoptRef(new StyleStopDat
     a); } |  | 
| 200     PassRefPtr<StyleStopData> copy() const { return adoptRef(new StyleStopData(*
     this)); } |  | 
| 201 |  | 
| 202     bool operator==(const StyleStopData&) const; |  | 
| 203     bool operator!=(const StyleStopData& other) const |  | 
| 204     { |  | 
| 205         return !(*this == other); |  | 
| 206     } |  | 
| 207 |  | 
| 208     float opacity; |  | 
| 209     Color color; |  | 
| 210 |  | 
| 211 private: |  | 
| 212     StyleStopData(); |  | 
| 213     StyleStopData(const StyleStopData&); |  | 
| 214 }; |  | 
| 215 |  | 
| 216 // Note: the rule for this class is, *no inheritance* of these props |  | 
| 217 class StyleMiscData : public RefCounted<StyleMiscData> { |  | 
| 218 public: |  | 
| 219     static PassRefPtr<StyleMiscData> create() { return adoptRef(new StyleMiscDat
     a); } |  | 
| 220     PassRefPtr<StyleMiscData> copy() const { return adoptRef(new StyleMiscData(*
     this)); } |  | 
| 221 |  | 
| 222     bool operator==(const StyleMiscData&) const; |  | 
| 223     bool operator!=(const StyleMiscData& other) const |  | 
| 224     { |  | 
| 225         return !(*this == other); |  | 
| 226     } |  | 
| 227 |  | 
| 228     Color floodColor; |  | 
| 229     float floodOpacity; |  | 
| 230     Color lightingColor; |  | 
| 231 |  | 
| 232     Length baselineShiftValue; |  | 
| 233 |  | 
| 234 private: |  | 
| 235     StyleMiscData(); |  | 
| 236     StyleMiscData(const StyleMiscData&); |  | 
| 237 }; |  | 
| 238 |  | 
| 239 // Non-inherited resources |  | 
| 240 class StyleResourceData : public RefCounted<StyleResourceData> { |  | 
| 241 public: |  | 
| 242     static PassRefPtr<StyleResourceData> create() { return adoptRef(new StyleRes
     ourceData); } |  | 
| 243     PassRefPtr<StyleResourceData> copy() const { return adoptRef(new StyleResour
     ceData(*this)); } |  | 
| 244 |  | 
| 245     bool operator==(const StyleResourceData&) const; |  | 
| 246     bool operator!=(const StyleResourceData& other) const |  | 
| 247     { |  | 
| 248         return !(*this == other); |  | 
| 249     } |  | 
| 250 |  | 
| 251     AtomicString clipper; |  | 
| 252     AtomicString filter; |  | 
| 253     AtomicString masker; |  | 
| 254 |  | 
| 255 private: |  | 
| 256     StyleResourceData(); |  | 
| 257     StyleResourceData(const StyleResourceData&); |  | 
| 258 }; |  | 
| 259 |  | 
| 260 // Inherited resources |  | 
| 261 class StyleInheritedResourceData : public RefCounted<StyleInheritedResourceData>
      { |  | 
| 262 public: |  | 
| 263     static PassRefPtr<StyleInheritedResourceData> create() { return adoptRef(new
      StyleInheritedResourceData); } |  | 
| 264     PassRefPtr<StyleInheritedResourceData> copy() const { return adoptRef(new St
     yleInheritedResourceData(*this)); } |  | 
| 265 |  | 
| 266     bool operator==(const StyleInheritedResourceData&) const; |  | 
| 267     bool operator!=(const StyleInheritedResourceData& other) const |  | 
| 268     { |  | 
| 269         return !(*this == other); |  | 
| 270     } |  | 
| 271 |  | 
| 272     AtomicString markerStart; |  | 
| 273     AtomicString markerMid; |  | 
| 274     AtomicString markerEnd; |  | 
| 275 |  | 
| 276 private: |  | 
| 277     StyleInheritedResourceData(); |  | 
| 278     StyleInheritedResourceData(const StyleInheritedResourceData&); |  | 
| 279 }; |  | 
| 280 |  | 
| 281 // Positioning and sizing properties. |  | 
| 282 class StyleLayoutData : public RefCounted<StyleLayoutData> { |  | 
| 283     public: |  | 
| 284         static PassRefPtr<StyleLayoutData> create() { return adoptRef(new StyleL
     ayoutData); } |  | 
| 285         PassRefPtr<StyleLayoutData> copy() const; |  | 
| 286         bool operator==(const StyleLayoutData&) const; |  | 
| 287         bool operator!=(const StyleLayoutData& other) const |  | 
| 288         { |  | 
| 289             return !(*this == other); |  | 
| 290         } |  | 
| 291         Length cx; |  | 
| 292         Length cy; |  | 
| 293         Length x; |  | 
| 294         Length y; |  | 
| 295         Length r; |  | 
| 296         Length rx; |  | 
| 297         Length ry; |  | 
| 298     private: |  | 
| 299         StyleLayoutData(); |  | 
| 300         StyleLayoutData(const StyleLayoutData&); |  | 
| 301     }; |  | 
| 302 |  | 
| 303 } // namespace blink |  | 
| 304 |  | 
| 305 #endif // SVGLayoutStyleDefs_h |  | 
| OLD | NEW | 
|---|