1 /**
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2009 Apple Computer, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
14 *
15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 */
20 #include "config.h"
21 #include "core/css/CSSShadowValue.h"
22
23 #include "core/css/CSSPrimitiveValue.h"
24 #include "wtf/text/StringBuilder.h"
25 #include "wtf/text/WTFString.h"
26
27 namespace WebCore {
28
29 // Used for text-shadow and box-shadow
CSSShadowValue(PassRefPtr<CSSPrimitiveValue> x,PassRefPtr<CSSPrimitiveValue> y,PassRefPtr<CSSPrimitiveValue> blur,PassRefPtr<CSSPrimitiveValue> spread,PassRefPtr<CSSPrimitiveValue> style,PassRefPtr<CSSPrimitiveValue> color)30 CSSShadowValue::CSSShadowValue(PassRefPtr<CSSPrimitiveValue> x,
31 PassRefPtr<CSSPrimitiveValue> y,
32 PassRefPtr<CSSPrimitiveValue> blur,
33 PassRefPtr<CSSPrimitiveValue> spread,
34 PassRefPtr<CSSPrimitiveValue> style,
35 PassRefPtr<CSSPrimitiveValue> color)
36 : CSSValue(ShadowClass)
37 , x(x)
38 , y(y)
39 , blur(blur)
40 , spread(spread)
41 , style(style)
42 , color(color)
43 {
44 }
45
customCSSText() const46 String CSSShadowValue::customCSSText() const
47 {
48 StringBuilder text;
49
50 if (color)
51 text.append(color->cssText());
52 if (x) {
53 if (!text.isEmpty())
54 text.append(' ');
55 text.append(x->cssText());
56 }
57 if (y) {
58 if (!text.isEmpty())
59 text.append(' ');
60 text.append(y->cssText());
61 }
62 if (blur) {
63 if (!text.isEmpty())
64 text.append(' ');
65 text.append(blur->cssText());
66 }
67 if (spread) {
68 if (!text.isEmpty())
69 text.append(' ');
70 text.append(spread->cssText());
71 }
72 if (style) {
73 if (!text.isEmpty())
74 text.append(' ');
75 text.append(style->cssText());
76 }
77
78 return text.toString();
79 }
80
equals(const CSSShadowValue & other) const81 bool CSSShadowValue::equals(const CSSShadowValue& other) const
82 {
83 return compareCSSValuePtr(color, other.color)
84 && compareCSSValuePtr(x, other.x)
85 && compareCSSValuePtr(y, other.y)
86 && compareCSSValuePtr(blur, other.blur)
87 && compareCSSValuePtr(spread, other.spread)
88 && compareCSSValuePtr(style, other.style);
89 }
90
91 }
92