summaryrefslogtreecommitdiffstats
path: root/khtml/xml/dom_textimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'khtml/xml/dom_textimpl.h')
-rw-r--r--khtml/xml/dom_textimpl.h176
1 files changed, 176 insertions, 0 deletions
diff --git a/khtml/xml/dom_textimpl.h b/khtml/xml/dom_textimpl.h
new file mode 100644
index 000000000..07e4909f6
--- /dev/null
+++ b/khtml/xml/dom_textimpl.h
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the DOM implementation for KDE.
+ *
+ * Copyright (C) 1999-2003 Lars Knoll ([email protected])
+ * (C) 2001-2003 Dirk Mueller ([email protected])
+ * (C) 1999 Antti Koivisto ([email protected])
+ * (C) 2003 Apple Computer, Inc
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+#ifndef _DOM_CharacterDataImpl_h_
+#define _DOM_CharacterDataImpl_h_
+
+#include "xml/dom_nodeimpl.h"
+#include "dom/dom_string.h"
+
+namespace DOM {
+
+ class DocumentImpl;
+ class CharacterData;
+ class Text;
+
+class CharacterDataImpl : public NodeImpl
+{
+public:
+ CharacterDataImpl(DocumentImpl *doc, DOMStringImpl* _text);
+ CharacterDataImpl(DocumentImpl *doc)
+ : NodeImpl(doc), str(0) {}
+
+ virtual ~CharacterDataImpl();
+
+ // DOM methods & attributes for CharacterData
+
+ virtual void setData( const DOMString &_data, int &exceptioncode );
+ virtual unsigned long length ( ) const;
+ virtual DOMString substringData ( const unsigned long offset, const unsigned long count, int &exceptioncode );
+ virtual void appendData ( const DOMString &arg, int &exceptioncode );
+ virtual void insertData ( const unsigned long offset, const DOMString &arg, int &exceptioncode );
+ virtual void deleteData ( const unsigned long offset, const unsigned long count, int &exceptioncode );
+ virtual void replaceData ( const unsigned long offset, const unsigned long count, const DOMString &arg, int &exceptioncode );
+
+ virtual bool containsOnlyWhitespace() const;
+
+ // DOM methods overridden from parent classes
+
+ virtual DOMString nodeValue() const;
+ virtual void setNodeValue( const DOMString &_nodeValue, int &exceptioncode );
+
+ virtual DOMStringImpl* textContent() const;
+ virtual void setTextContent( const DOMString &text, int& exceptioncode );
+
+ // Other methods (not part of DOM)
+
+ DOMStringImpl *string() const { return str; }
+ DOMString data() const { return str; }
+
+ virtual void checkCharDataOperation( const unsigned long offset, int &exceptioncode );
+
+ virtual long minOffset() const;
+ virtual long maxOffset() const;
+
+protected:
+ // note: since DOMStrings are shared, str should always be copied when making
+ // a change or returning a string
+ DOMStringImpl *str;
+
+ void dispatchModifiedEvent(DOMStringImpl *prevValue);
+};
+
+// ----------------------------------------------------------------------------
+
+class CommentImpl : public CharacterDataImpl
+{
+public:
+ CommentImpl(DocumentImpl *doc, DOMStringImpl* _text)
+ : CharacterDataImpl(doc, _text) {}
+ CommentImpl(DocumentImpl *doc)
+ : CharacterDataImpl(doc) {}
+ // DOM methods overridden from parent classes
+ virtual DOMString nodeName() const;
+ virtual unsigned short nodeType() const;
+ virtual NodeImpl *cloneNode(bool deep);
+
+ // Other methods (not part of DOM)
+
+ virtual Id id() const;
+ virtual bool childTypeAllowed( unsigned short type );
+
+ virtual DOMString toString() const;
+};
+
+// ----------------------------------------------------------------------------
+
+class TextImpl : public CharacterDataImpl
+{
+public:
+ TextImpl(DocumentImpl *impl, DOMStringImpl* _text)
+ : CharacterDataImpl(impl, _text) {}
+ TextImpl(DocumentImpl *impl)
+ : CharacterDataImpl(impl) {}
+
+ // DOM methods & attributes for CharacterData
+
+ TextImpl *splitText ( const unsigned long offset, int &exceptioncode );
+
+ // DOM methods overridden from parent classes
+ virtual DOMString nodeName() const;
+ virtual unsigned short nodeType() const;
+ virtual NodeImpl *cloneNode(bool deep);
+
+ // Other methods (not part of DOM)
+
+ virtual bool isTextNode() const { return true; }
+ virtual Id id() const;
+ virtual void attach();
+ virtual bool rendererIsNeeded(khtml::RenderStyle *);
+ virtual khtml::RenderObject *createRenderer(khtml::RenderArena *, khtml::RenderStyle *);
+ virtual void recalcStyle( StyleChange = NoChange );
+ virtual bool childTypeAllowed( unsigned short type );
+
+ DOMStringImpl *renderString() const;
+
+ virtual DOMString toString() const;
+ /** Return the text for the node, with < replaced with &lt; and so on.
+ * @param startOffset The number of characters counted from the left, zero indexed, counting "<" as one character, to start from. Use -1 to start from 0.
+ * @param endOffset The number of characters counted from the left, zero indexed, counting "<" as one character, to end on. Use -1 to end at the end of the string.
+ * @return An html escaped version of the substring.
+ */
+ DOMString toString(long long startOffset, long long endOffset) const;
+protected:
+ virtual TextImpl *createNew(DOMStringImpl *_str);
+};
+
+// ----------------------------------------------------------------------------
+
+class CDATASectionImpl : public TextImpl
+{
+public:
+ CDATASectionImpl(DocumentImpl *impl, DOMStringImpl* _text)
+ : TextImpl(impl, _text) {}
+ CDATASectionImpl(DocumentImpl *impl)
+ : TextImpl(impl) {}
+
+ // DOM methods overridden from parent classes
+ virtual DOMString nodeName() const;
+ virtual unsigned short nodeType() const;
+ virtual NodeImpl *cloneNode(bool deep);
+
+ // Other methods (not part of DOM)
+
+ virtual bool childTypeAllowed( unsigned short type );
+
+ virtual DOMString toString() const;
+
+protected:
+ virtual TextImpl *createNew(DOMStringImpl *_str);
+};
+
+
+
+} //namespace
+#endif