| 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 |