summaryrefslogtreecommitdiffstats
path: root/WebCore/dom/StyledElement.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/dom/StyledElement.h')
-rw-r--r--WebCore/dom/StyledElement.h57
1 files changed, 34 insertions, 23 deletions
diff --git a/WebCore/dom/StyledElement.h b/WebCore/dom/StyledElement.h
index 158992e..52bffd3 100644
--- a/WebCore/dom/StyledElement.h
+++ b/WebCore/dom/StyledElement.h
@@ -3,7 +3,7 @@
* (C) 1999 Antti Koivisto (koivisto@kde.org)
* (C) 2001 Peter Kelly (pmk@post.com)
* (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -38,54 +38,49 @@ class MappedAttribute;
class StyledElement : public Element {
public:
- StyledElement(const QualifiedName&, Document*);
virtual ~StyledElement();
- virtual bool isStyledElement() const { return true; }
-
NamedMappedAttrMap* mappedAttributes() { return static_cast<NamedMappedAttrMap*>(namedAttrMap.get()); }
const NamedMappedAttrMap* mappedAttributes() const { return static_cast<NamedMappedAttrMap*>(namedAttrMap.get()); }
+
bool hasMappedAttributes() const { return namedAttrMap && mappedAttributes()->hasMappedAttributes(); }
bool isMappedAttribute(const QualifiedName& name) const { MappedAttributeEntry res = eNone; mapToEntry(name, res); return res != eNone; }
- void addCSSLength(MappedAttribute* attr, int id, const String &value);
- void addCSSProperty(MappedAttribute* attr, int id, const String &value);
- void addCSSProperty(MappedAttribute* attr, int id, int value);
- void addCSSStringProperty(MappedAttribute* attr, int id, const String &value, CSSPrimitiveValue::UnitTypes = CSSPrimitiveValue::CSS_STRING);
+ void addCSSLength(MappedAttribute*, int id, const String& value);
+ void addCSSProperty(MappedAttribute*, int id, const String& value);
+ void addCSSProperty(MappedAttribute*, int id, int value);
void addCSSImageProperty(MappedAttribute*, int propertyID, const String& url);
- void addCSSColor(MappedAttribute* attr, int id, const String &c);
- void createMappedDecl(MappedAttribute* attr);
-
- static CSSMappedAttributeDeclaration* getMappedAttributeDecl(MappedAttributeEntry type, const QualifiedName& name, const AtomicString& value);
+ void addCSSColor(MappedAttribute*, int id, const String& color);
+
+ static CSSMappedAttributeDeclaration* getMappedAttributeDecl(MappedAttributeEntry, const QualifiedName& name, const AtomicString& value);
static void setMappedAttributeDecl(MappedAttributeEntry, const QualifiedName& name, const AtomicString& value, CSSMappedAttributeDeclaration*);
- static void removeMappedAttributeDecl(MappedAttributeEntry type, const QualifiedName& name, const AtomicString& value);
+ static void removeMappedAttributeDecl(MappedAttributeEntry, const QualifiedName& name, const AtomicString& value);
static CSSMappedAttributeDeclaration* getMappedAttributeDecl(MappedAttributeEntry, Attribute*);
static void setMappedAttributeDecl(MappedAttributeEntry, Attribute*, CSSMappedAttributeDeclaration*);
-
+
CSSMutableStyleDeclaration* inlineStyleDecl() const { return m_inlineStyleDecl.get(); }
virtual bool canHaveAdditionalAttributeStyleDecls() const { return false; }
virtual void additionalAttributeStyleDecls(Vector<CSSMutableStyleDeclaration*>&) {};
CSSMutableStyleDeclaration* getInlineStyleDecl();
CSSStyleDeclaration* style();
- void createInlineStyleDecl();
- void destroyInlineStyleDecl();
void invalidateStyleAttribute();
- virtual void updateStyleAttribute() const;
-
- const ClassNames& classNames() const { ASSERT(hasClass()); ASSERT(mappedAttributes()); return mappedAttributes()->classNames(); }
- virtual void attributeChanged(Attribute*, bool preserveDecls = false);
- virtual void parseMappedAttribute(MappedAttribute*);
+ const SpaceSplitString& classNames() const { ASSERT(hasClass()); ASSERT(mappedAttributes()); return mappedAttributes()->classNames(); }
+
virtual bool mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const;
- virtual void createAttributeMap() const;
+
virtual PassRefPtr<Attribute> createAttribute(const QualifiedName&, const AtomicString& value);
+protected:
+ StyledElement(const QualifiedName&, Document*, ConstructionType);
+
+ virtual void attributeChanged(Attribute*, bool preserveDecls = false);
+ virtual void parseMappedAttribute(MappedAttribute*);
virtual void copyNonAttributeProperties(const Element*);
virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
-protected:
// classAttributeChanged() exists to share code between
// parseMappedAttribute (called via setAttribute()) and
// svgAttributeChanged (called when element.className.baseValue is set)
@@ -93,9 +88,25 @@ protected:
virtual void didMoveToNewOwnerDocument();
+private:
+ virtual bool isStyledElement() const { return true; }
+
+ void createMappedDecl(MappedAttribute*);
+
+ void createInlineStyleDecl();
+ void destroyInlineStyleDecl();
+ virtual void updateStyleAttribute() const;
+
+ virtual void createAttributeMap() const;
+
RefPtr<CSSMutableStyleDeclaration> m_inlineStyleDecl;
};
+inline void StyledElement::invalidateStyleAttribute()
+{
+ m_isStyleAttributeValid = false;
+}
+
} //namespace
#endif