#ifndef DOM_CharacterDataImpl_h
#define DOM_CharacterDataImpl_h
#include "EventTargetNode.h"
namespace WebCore {
class CharacterData : public EventTargetNode {
public:
CharacterData(Document*, const String& text);
CharacterData(Document*);
virtual ~CharacterData();
virtual String data() const;
virtual void setData(const String&, ExceptionCode&);
virtual unsigned length() const;
virtual String substringData(unsigned offset, unsigned count, ExceptionCode&);
virtual void appendData(const String&, ExceptionCode&);
virtual void insertData(unsigned offset, const String&, ExceptionCode&);
virtual void deleteData(unsigned offset, unsigned count, ExceptionCode&);
virtual void replaceData(unsigned offset, unsigned count, const String &arg, ExceptionCode&);
bool containsOnlyWhitespace() const;
bool containsOnlyWhitespace(unsigned from, unsigned len) const;
virtual String nodeValue() const;
virtual void setNodeValue(const String&, ExceptionCode&);
StringImpl* string() { return str; }
virtual void checkCharDataOperation(unsigned offset, ExceptionCode&);
virtual int maxOffset() const;
virtual int caretMinOffset() const;
virtual int caretMaxOffset() const;
virtual unsigned caretMaxRenderedOffset() const;
virtual bool offsetInCharacters() const;
virtual bool rendererIsNeeded(RenderStyle*);
#ifndef NDEBUG
virtual void dump(TextStream*, DeprecatedString ind = "") const;
#endif
protected:
StringImpl* str;
void dispatchModifiedEvent(StringImpl* prevValue);
};
}
#endif // DOM_CharacterDataImpl_h