DOM4: Add support for rest parameters to DOMTokenList
[WebKit.git] / Source / WebCore / html / ClassList.h
index 992fad4..764ebf5 100644 (file)
 #define ClassList_h
 
 #include "DOMTokenList.h"
+#include "Element.h"
+#include "HTMLNames.h"
 #include "SpaceSplitString.h"
 #include <wtf/PassOwnPtr.h>
+#include <wtf/Vector.h>
+
 
 namespace WebCore {
 
+using namespace HTMLNames;
+
 class Element;
 
 typedef int ExceptionCode;
@@ -42,30 +48,26 @@ public:
         return adoptPtr(new ClassList(element));
     }
 
-    virtual void ref();
-    virtual void deref();
+    virtual void ref() OVERRIDE;
+    virtual void deref() OVERRIDE;
 
-    virtual unsigned length() const;
-    virtual const AtomicString item(unsigned index) const;
-    virtual bool contains(const AtomicString&, ExceptionCode&) const;
-    virtual void add(const AtomicString&, ExceptionCode&);
-    virtual void remove(const AtomicString&, ExceptionCode&);
-    virtual bool toggle(const AtomicString&, ExceptionCode&);
-    virtual String toString() const;
+    virtual unsigned length() const OVERRIDE;
+    virtual const AtomicString item(unsigned index) const OVERRIDE;
 
-    virtual Element* element() { return m_element; }
+    virtual Element* element() OVERRIDE { return m_element; }
 
     void reset(const String&);
 
 private:
     ClassList(Element*);
 
-    void addInternal(const AtomicString&);
-    bool containsInternal(const AtomicString&) const;
-    void removeInternal(const AtomicString&);
+    virtual bool containsInternal(const AtomicString&) const OVERRIDE;
 
     const SpaceSplitString& classNames() const;
 
+    virtual AtomicString value() const OVERRIDE { return m_element->fastGetAttribute(classAttr); }
+    virtual void setValue(const AtomicString& value) OVERRIDE { m_element->setAttribute(classAttr, value); }
+
     Element* m_element;
     SpaceSplitString m_classNamesForQuirksMode;
 };