| 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, 2008, 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved. |
| 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, |
| 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 * Library General Public License for more details. | 13 * Library General Public License for more details. |
| 14 * | 14 * |
| 15 * You should have received a copy of the GNU Library General Public License | 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 | 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, | 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 18 * Boston, MA 02110-1301, USA. | 18 * Boston, MA 02110-1301, USA. |
| 19 */ | 19 */ |
| 20 | 20 |
| 21 #ifndef StylePropertySet_h | 21 #ifndef StylePropertySet_h |
| 22 #define StylePropertySet_h | 22 #define StylePropertySet_h |
| 23 | 23 |
| 24 #include "core/CSSPropertyNames.h" | 24 #include "core/CSSPropertyNames.h" |
| 25 #include "core/CoreExport.h" | 25 #include "core/CoreExport.h" |
| 26 #include "core/css/CSSCustomPropertyDeclaration.h" |
| 26 #include "core/css/CSSPrimitiveValue.h" | 27 #include "core/css/CSSPrimitiveValue.h" |
| 27 #include "core/css/CSSProperty.h" | 28 #include "core/css/CSSProperty.h" |
| 28 #include "core/css/PropertySetCSSStyleDeclaration.h" | 29 #include "core/css/PropertySetCSSStyleDeclaration.h" |
| 29 #include "core/css/parser/CSSParserMode.h" | 30 #include "core/css/parser/CSSParserMode.h" |
| 30 #include "wtf/ListHashSet.h" | 31 #include "wtf/ListHashSet.h" |
| 31 #include "wtf/Noncopyable.h" | 32 #include "wtf/Noncopyable.h" |
| 32 #include "wtf/Vector.h" | 33 #include "wtf/Vector.h" |
| 33 #include "wtf/text/WTFString.h" | 34 #include "wtf/text/WTFString.h" |
| 34 | 35 |
| 35 namespace blink { | 36 namespace blink { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 const CSSValue* propertyValue() const; | 85 const CSSValue* propertyValue() const; |
| 85 | 86 |
| 86 RawPtrWillBeMember<const StylePropertySet> m_propertySet; | 87 RawPtrWillBeMember<const StylePropertySet> m_propertySet; |
| 87 unsigned m_index; | 88 unsigned m_index; |
| 88 }; | 89 }; |
| 89 | 90 |
| 90 unsigned propertyCount() const; | 91 unsigned propertyCount() const; |
| 91 bool isEmpty() const; | 92 bool isEmpty() const; |
| 92 PropertyReference propertyAt(unsigned index) const { return PropertyReferenc
e(*this, index); } | 93 PropertyReference propertyAt(unsigned index) const { return PropertyReferenc
e(*this, index); } |
| 93 int findPropertyIndex(CSSPropertyID) const; | 94 int findPropertyIndex(CSSPropertyID) const; |
| 95 int findCustomPropertyIndex(const AtomicString& propertyName) const; |
| 94 bool hasProperty(CSSPropertyID property) const { return findPropertyIndex(pr
operty) != -1; } | 96 bool hasProperty(CSSPropertyID property) const { return findPropertyIndex(pr
operty) != -1; } |
| 95 | 97 |
| 96 PassRefPtrWillBeRawPtr<CSSValue> getPropertyCSSValue(CSSPropertyID) const; | 98 PassRefPtrWillBeRawPtr<CSSValue> getPropertyCSSValue(CSSPropertyID) const; |
| 99 PassRefPtrWillBeRawPtr<CSSCustomPropertyDeclaration> getCustomPropertyCSSVal
ue(const AtomicString&) const; |
| 97 String getPropertyValue(CSSPropertyID) const; | 100 String getPropertyValue(CSSPropertyID) const; |
| 101 String getCustomPropertyValue(const AtomicString&) const; |
| 98 | 102 |
| 99 bool propertyIsImportant(CSSPropertyID) const; | 103 bool propertyIsImportant(CSSPropertyID) const; |
| 104 bool customPropertyIsImportant(const AtomicString&) const; |
| 100 CSSPropertyID getPropertyShorthand(CSSPropertyID) const; | 105 CSSPropertyID getPropertyShorthand(CSSPropertyID) const; |
| 101 bool isPropertyImplicit(CSSPropertyID) const; | 106 bool isPropertyImplicit(CSSPropertyID) const; |
| 102 | 107 |
| 103 CSSParserMode cssParserMode() const { return static_cast<CSSParserMode>(m_cs
sParserMode); } | 108 CSSParserMode cssParserMode() const { return static_cast<CSSParserMode>(m_cs
sParserMode); } |
| 104 | 109 |
| 105 PassRefPtrWillBeRawPtr<MutableStylePropertySet> mutableCopy() const; | 110 PassRefPtrWillBeRawPtr<MutableStylePropertySet> mutableCopy() const; |
| 106 PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> immutableCopyIfNeeded() co
nst; | 111 PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> immutableCopyIfNeeded() co
nst; |
| 107 | 112 |
| 108 PassRefPtrWillBeRawPtr<MutableStylePropertySet> copyPropertiesInSet(const Ve
ctor<CSSPropertyID>&) const; | 113 PassRefPtrWillBeRawPtr<MutableStylePropertySet> copyPropertiesInSet(const Ve
ctor<CSSPropertyID>&) const; |
| 109 | 114 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 class CORE_EXPORT ImmutableStylePropertySet : public StylePropertySet { | 155 class CORE_EXPORT ImmutableStylePropertySet : public StylePropertySet { |
| 151 public: | 156 public: |
| 152 ~ImmutableStylePropertySet(); | 157 ~ImmutableStylePropertySet(); |
| 153 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> create(const CSSPro
perty* properties, unsigned count, CSSParserMode); | 158 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> create(const CSSPro
perty* properties, unsigned count, CSSParserMode); |
| 154 | 159 |
| 155 unsigned propertyCount() const { return m_arraySize; } | 160 unsigned propertyCount() const { return m_arraySize; } |
| 156 | 161 |
| 157 const RawPtrWillBeMember<CSSValue>* valueArray() const; | 162 const RawPtrWillBeMember<CSSValue>* valueArray() const; |
| 158 const StylePropertyMetadata* metadataArray() const; | 163 const StylePropertyMetadata* metadataArray() const; |
| 159 int findPropertyIndex(CSSPropertyID) const; | 164 int findPropertyIndex(CSSPropertyID) const; |
| 165 int findCustomPropertyIndex(const AtomicString& propertyName) const; |
| 160 | 166 |
| 161 DECLARE_TRACE_AFTER_DISPATCH(); | 167 DECLARE_TRACE_AFTER_DISPATCH(); |
| 162 | 168 |
| 163 void* operator new(std::size_t, void* location) | 169 void* operator new(std::size_t, void* location) |
| 164 { | 170 { |
| 165 return location; | 171 return location; |
| 166 } | 172 } |
| 167 | 173 |
| 168 void* m_storage; | 174 void* m_storage; |
| 169 | 175 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 191 | 197 |
| 192 unsigned propertyCount() const { return m_propertyVector.size(); } | 198 unsigned propertyCount() const { return m_propertyVector.size(); } |
| 193 | 199 |
| 194 // Returns whether this style set was changed. | 200 // Returns whether this style set was changed. |
| 195 bool addParsedProperties(const WillBeHeapVector<CSSProperty, 256>&); | 201 bool addParsedProperties(const WillBeHeapVector<CSSProperty, 256>&); |
| 196 bool addRespectingCascade(const CSSProperty&); | 202 bool addRespectingCascade(const CSSProperty&); |
| 197 | 203 |
| 198 // These expand shorthand properties into multiple properties. | 204 // These expand shorthand properties into multiple properties. |
| 199 bool setProperty(CSSPropertyID unresolvedProperty, const String& value, bool
important = false, StyleSheetContents* contextStyleSheet = 0); | 205 bool setProperty(CSSPropertyID unresolvedProperty, const String& value, bool
important = false, StyleSheetContents* contextStyleSheet = 0); |
| 200 void setProperty(CSSPropertyID, PassRefPtrWillBeRawPtr<CSSValue>, bool impor
tant = false); | 206 void setProperty(CSSPropertyID, PassRefPtrWillBeRawPtr<CSSValue>, bool impor
tant = false); |
| 207 bool setCustomProperty(const AtomicString& propertyName, const String& value
, bool important = false, StyleSheetContents* contextStyleSheet = 0); |
| 201 | 208 |
| 202 // These do not. FIXME: This is too messy, we can do better. | 209 // These do not. FIXME: This is too messy, we can do better. |
| 203 bool setProperty(CSSPropertyID, CSSValueID identifier, bool important = fals
e); | 210 bool setProperty(CSSPropertyID, CSSValueID identifier, bool important = fals
e); |
| 204 bool setProperty(const CSSProperty&, CSSProperty* slot = 0); | 211 bool setProperty(const CSSProperty&, CSSProperty* slot = 0); |
| 205 | 212 |
| 206 bool removeProperty(CSSPropertyID, String* returnText = 0); | 213 bool removeProperty(CSSPropertyID, String* returnText = 0); |
| 214 bool removeCustomProperty(const AtomicString&, String* returnText = 0); |
| 207 bool removePropertiesInSet(const CSSPropertyID* set, unsigned length); | 215 bool removePropertiesInSet(const CSSPropertyID* set, unsigned length); |
| 208 void removeEquivalentProperties(const StylePropertySet*); | 216 void removeEquivalentProperties(const StylePropertySet*); |
| 209 void removeEquivalentProperties(const CSSStyleDeclaration*); | 217 void removeEquivalentProperties(const CSSStyleDeclaration*); |
| 210 | 218 |
| 211 void mergeAndOverrideOnConflict(const StylePropertySet*); | 219 void mergeAndOverrideOnConflict(const StylePropertySet*); |
| 212 | 220 |
| 213 void clear(); | 221 void clear(); |
| 214 void parseDeclarationList(const String& styleDeclaration, StyleSheetContents
* contextStyleSheet); | 222 void parseDeclarationList(const String& styleDeclaration, StyleSheetContents
* contextStyleSheet); |
| 215 | 223 |
| 216 CSSStyleDeclaration* ensureCSSStyleDeclaration(); | 224 CSSStyleDeclaration* ensureCSSStyleDeclaration(); |
| 217 int findPropertyIndex(CSSPropertyID) const; | 225 int findPropertyIndex(CSSPropertyID) const; |
| 226 int findCustomPropertyIndex(const AtomicString& propertyName) const; |
| 218 | 227 |
| 219 DECLARE_TRACE_AFTER_DISPATCH(); | 228 DECLARE_TRACE_AFTER_DISPATCH(); |
| 220 | 229 |
| 221 private: | 230 private: |
| 222 explicit MutableStylePropertySet(CSSParserMode); | 231 explicit MutableStylePropertySet(CSSParserMode); |
| 223 explicit MutableStylePropertySet(const StylePropertySet&); | 232 explicit MutableStylePropertySet(const StylePropertySet&); |
| 224 MutableStylePropertySet(const CSSProperty* properties, unsigned count); | 233 MutableStylePropertySet(const CSSProperty* properties, unsigned count); |
| 225 | 234 |
| 235 bool removePropertyAtIndex(int, String* returnText); |
| 236 |
| 226 bool removeShorthandProperty(CSSPropertyID); | 237 bool removeShorthandProperty(CSSPropertyID); |
| 227 CSSProperty* findCSSPropertyWithID(CSSPropertyID); | 238 CSSProperty* findCSSPropertyWithID(CSSPropertyID); |
| 228 OwnPtrWillBeMember<PropertySetCSSStyleDeclaration> m_cssomWrapper; | 239 OwnPtrWillBeMember<PropertySetCSSStyleDeclaration> m_cssomWrapper; |
| 229 | 240 |
| 230 friend class StylePropertySet; | 241 friend class StylePropertySet; |
| 231 | 242 |
| 232 WillBeHeapVector<CSSProperty, 4> m_propertyVector; | 243 WillBeHeapVector<CSSProperty, 4> m_propertyVector; |
| 233 }; | 244 }; |
| 234 | 245 |
| 235 DEFINE_TYPE_CASTS(MutableStylePropertySet, StylePropertySet, set, set->isMutable
(), set.isMutable()); | 246 DEFINE_TYPE_CASTS(MutableStylePropertySet, StylePropertySet, set, set->isMutable
(), set.isMutable()); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 } | 299 } |
| 289 #endif // !ENABLE(OILPAN) | 300 #endif // !ENABLE(OILPAN) |
| 290 | 301 |
| 291 inline int StylePropertySet::findPropertyIndex(CSSPropertyID propertyID) const | 302 inline int StylePropertySet::findPropertyIndex(CSSPropertyID propertyID) const |
| 292 { | 303 { |
| 293 if (m_isMutable) | 304 if (m_isMutable) |
| 294 return toMutableStylePropertySet(this)->findPropertyIndex(propertyID); | 305 return toMutableStylePropertySet(this)->findPropertyIndex(propertyID); |
| 295 return toImmutableStylePropertySet(this)->findPropertyIndex(propertyID); | 306 return toImmutableStylePropertySet(this)->findPropertyIndex(propertyID); |
| 296 } | 307 } |
| 297 | 308 |
| 309 inline int StylePropertySet::findCustomPropertyIndex(const AtomicString& propert
yName) const |
| 310 { |
| 311 if (m_isMutable) |
| 312 return toMutableStylePropertySet(this)->findCustomPropertyIndex(property
Name); |
| 313 return toImmutableStylePropertySet(this)->findCustomPropertyIndex(propertyNa
me); |
| 314 } |
| 315 |
| 298 } // namespace blink | 316 } // namespace blink |
| 299 | 317 |
| 300 #endif // StylePropertySet_h | 318 #endif // StylePropertySet_h |
| OLD | NEW |