OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. | 3 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "wtf/PassRefPtr.h" | 29 #include "wtf/PassRefPtr.h" |
30 #include "wtf/RefCounted.h" | 30 #include "wtf/RefCounted.h" |
31 #include "wtf/text/StringBuilder.h" | 31 #include "wtf/text/StringBuilder.h" |
32 | 32 |
33 namespace blink { | 33 namespace blink { |
34 | 34 |
35 class CORE_EXPORT CSSValuePair : public CSSValue { | 35 class CORE_EXPORT CSSValuePair : public CSSValue { |
36 public: | 36 public: |
37 enum IdenticalValuesPolicy { DropIdenticalValues, KeepIdenticalValues }; | 37 enum IdenticalValuesPolicy { DropIdenticalValues, KeepIdenticalValues }; |
38 | 38 |
39 static RawPtr<CSSValuePair> create(RawPtr<CSSValue> first, RawPtr<CSSValue>
second, | 39 static CSSValuePair* create(CSSValue* first, CSSValue* second, |
40 IdenticalValuesPolicy identicalValuesPolicy) | 40 IdenticalValuesPolicy identicalValuesPolicy) |
41 { | 41 { |
42 return new CSSValuePair(first, second, identicalValuesPolicy); | 42 return new CSSValuePair(first, second, identicalValuesPolicy); |
43 } | 43 } |
44 | 44 |
45 static RawPtr<CSSValuePair> create(const LengthSize& lengthSize, const Compu
tedStyle& style) | 45 static CSSValuePair* create(const LengthSize& lengthSize, const ComputedStyl
e& style) |
46 { | 46 { |
47 return new CSSValuePair(CSSPrimitiveValue::create(lengthSize.width(), st
yle.effectiveZoom()), CSSPrimitiveValue::create(lengthSize.height(), style.effec
tiveZoom()), KeepIdenticalValues); | 47 return new CSSValuePair(CSSPrimitiveValue::create(lengthSize.width(), st
yle.effectiveZoom()), CSSPrimitiveValue::create(lengthSize.height(), style.effec
tiveZoom()), KeepIdenticalValues); |
48 } | 48 } |
49 | 49 |
50 // TODO(sashab): Remove these non-const versions. | 50 // TODO(sashab): Remove these non-const versions. |
51 CSSValue& first() { return *m_first; } | 51 CSSValue& first() { return *m_first; } |
52 CSSValue& second() { return *m_second; } | 52 CSSValue& second() { return *m_second; } |
53 const CSSValue& first() const { return *m_first; } | 53 const CSSValue& first() const { return *m_first; } |
54 const CSSValue& second() const { return *m_second; } | 54 const CSSValue& second() const { return *m_second; } |
55 | 55 |
56 String customCSSText() const | 56 String customCSSText() const |
57 { | 57 { |
58 String first = m_first->cssText(); | 58 String first = m_first->cssText(); |
59 String second = m_second->cssText(); | 59 String second = m_second->cssText(); |
60 if (m_identicalValuesPolicy == DropIdenticalValues && first == second) | 60 if (m_identicalValuesPolicy == DropIdenticalValues && first == second) |
61 return first; | 61 return first; |
62 return first + ' ' + second; | 62 return first + ' ' + second; |
63 } | 63 } |
64 | 64 |
65 bool equals(const CSSValuePair& other) const | 65 bool equals(const CSSValuePair& other) const |
66 { | 66 { |
67 ASSERT(m_identicalValuesPolicy == other.m_identicalValuesPolicy); | 67 ASSERT(m_identicalValuesPolicy == other.m_identicalValuesPolicy); |
68 return compareCSSValuePtr(m_first, other.m_first) | 68 return compareCSSValuePtr(m_first, other.m_first) |
69 && compareCSSValuePtr(m_second, other.m_second); | 69 && compareCSSValuePtr(m_second, other.m_second); |
70 } | 70 } |
71 | 71 |
72 DECLARE_TRACE_AFTER_DISPATCH(); | 72 DECLARE_TRACE_AFTER_DISPATCH(); |
73 | 73 |
74 private: | 74 private: |
75 CSSValuePair(RawPtr<CSSValue> first, RawPtr<CSSValue> second, IdenticalValue
sPolicy identicalValuesPolicy) | 75 CSSValuePair(CSSValue* first, CSSValue* second, IdenticalValuesPolicy identi
calValuesPolicy) |
76 : CSSValue(ValuePairClass) | 76 : CSSValue(ValuePairClass) |
77 , m_first(first) | 77 , m_first(first) |
78 , m_second(second) | 78 , m_second(second) |
79 , m_identicalValuesPolicy(identicalValuesPolicy) | 79 , m_identicalValuesPolicy(identicalValuesPolicy) |
80 { | 80 { |
81 ASSERT(m_first); | 81 ASSERT(m_first); |
82 ASSERT(m_second); | 82 ASSERT(m_second); |
83 } | 83 } |
84 | 84 |
85 Member<CSSValue> m_first; | 85 Member<CSSValue> m_first; |
86 Member<CSSValue> m_second; | 86 Member<CSSValue> m_second; |
87 IdenticalValuesPolicy m_identicalValuesPolicy; | 87 IdenticalValuesPolicy m_identicalValuesPolicy; |
88 }; | 88 }; |
89 | 89 |
90 DEFINE_CSS_VALUE_TYPE_CASTS(CSSValuePair, isValuePair()); | 90 DEFINE_CSS_VALUE_TYPE_CASTS(CSSValuePair, isValuePair()); |
91 | 91 |
92 } // namespace blink | 92 } // namespace blink |
93 | 93 |
94 #endif // CSSValuePair_h | 94 #endif // CSSValuePair_h |
OLD | NEW |