summaryrefslogtreecommitdiffstats
path: root/khtml/dom/dom2_range.h
diff options
context:
space:
mode:
Diffstat (limited to 'khtml/dom/dom2_range.h')
-rw-r--r--khtml/dom/dom2_range.h475
1 files changed, 0 insertions, 475 deletions
diff --git a/khtml/dom/dom2_range.h b/khtml/dom/dom2_range.h
deleted file mode 100644
index 290f4f48c..000000000
--- a/khtml/dom/dom2_range.h
+++ /dev/null
@@ -1,475 +0,0 @@
-/*
- * This file is part of the DOM implementation for KDE.
- *
- * (C) 1999 Lars Knoll (knoll@kde.org)
- * (C) 2000 Gunnstein Lye (gunnstein@netcom.no)
- * (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
- * (C) 2001 Peter Kelly (pmk@post.com)
- *
- * 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.
- *
- * This file includes excerpts from the Document Object Model (DOM)
- * Level 2 Specification (Candidate Recommendation)
- * http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/
- * Copyright © 2000 W3C® (MIT, INRIA, Keio), All Rights Reserved.
- *
- */
-#ifndef _dom2_range_h_
-#define _dom2_range_h_
-
-#include <dom/dom_doc.h>
-#include <dom/dom_misc.h>
-
-namespace DOM {
-
-class DocumentFragment;
-class Node;
-class DOMString;
-class DocumentImpl;
-class RangeImpl;
-
-class DOMException;
-
-// Introduced in DOM Level 2:
-class KHTML_EXPORT RangeException {
-public:
- RangeException(unsigned short _code) { code = _code; }
- RangeException(const RangeException &other) { code = other.code; }
-
- RangeException & operator = (const RangeException &other)
- { code = other.code; return *this; }
-
- virtual ~RangeException() {}
- /**
- * An integer indicating the type of error generated.
- *
- */
- enum RangeExceptionCode {
- BAD_BOUNDARYPOINTS_ERR = 1,
- INVALID_NODE_TYPE_ERR = 2,
- _EXCEPTION_OFFSET = 2000,
- _EXCEPTION_MAX = 2999
- };
- unsigned short code;
-};
-
-
-class KHTML_EXPORT Range
-{
- friend class DocumentImpl;
- friend class Document;
- friend class RangeImpl;
-public:
- Range();
- Range(const Document rootContainer);
- Range(const Range &other);
- Range(const Node startContainer, const long startOffset, const Node endContainer, const long endOffset);
-
- Range & operator = (const Range &other);
-
- ~Range();
-
- /**
- * Node within which the range begins
- *
- */
- Node startContainer() const;
-
- /**
- * Offset within the starting node of the range.
- *
- */
- long startOffset() const;
-
- /**
- * Node within which the range ends
- *
- */
- Node endContainer() const;
-
- /**
- * Offset within the ending node of the range.
- *
- */
- long endOffset() const;
-
- /**
- * true if the range is collapsed
- *
- */
- bool collapsed() const;
-
- /**
- * Gets the common ancestor container of the range's two end-points.
- * Also sets it.
- *
- */
- // ### BIC make const in the next release
- Node commonAncestorContainer();
-
- /**
- * Sets the attributes describing the start of the range.
- *
- * @param refNode The \c refNode value. This parameter
- * must be different from \c null .
- *
- * @param offset The \c startOffset value.
- *
- * @return
- *
- * @exception RangeException
- * NULL_NODE_ERR: Raised if \c refNode is \c null .
- *
- * INVALID_NODE_TYPE_ERR: Raised if \c refNode or an
- * ancestor of \c refNode is an Attr, Entity,
- * Notation, or DocumentType node.
- *
- * If an offset is out-of-bounds, should it just be fixed up or
- * should an exception be raised.
- *
- */
- void setStart ( const Node &refNode, long offset );
-
- /**
- * Sets the attributes describing the end of a range.
- *
- * @param refNode The \c refNode value. This parameter
- * must be different from \c null .
- *
- * @param offset The \c endOffset value.
- *
- * @return
- *
- * @exception RangeException
- * NULL_NODE_ERR: Raised if \c refNode is \c null .
- *
- * INVALID_NODE_TYPE_ERR: Raised if \c refNode or an
- * ancestor of \c refNode is an Attr, Entity,
- * Notation, or DocumentType node.
- *
- */
- void setEnd ( const Node &refNode, long offset );
-
- /**
- * Sets the start position to be before a node
- *
- * @param refNode Range starts before \c refNode
- *
- * @return
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if an ancestor of \c refNode
- * is an Attr, Entity, Notation, or DocumentType node or
- * if \c refNode is a Document, DocumentFragment,
- * Attr, Entity, or Notation node.
- *
- */
- void setStartBefore ( const Node &refNode );
-
- /**
- * Sets the start position to be after a node
- *
- * @param refNode Range starts after \c refNode
- *
- * @return
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if an ancestor of \c refNode
- * is an Attr, Entity, Notation, or DocumentType node or
- * if \c refNode is a Document, DocumentFragment,
- * Attr, Entity, or Notation node.
- *
- */
- void setStartAfter ( const Node &refNode );
-
- /**
- * Sets the end position to be before a node.
- *
- * @param refNode Range ends before \c refNode
- *
- * @return
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if an ancestor of \c refNode
- * is an Attr, Entity, Notation, or DocumentType node or
- * if \c refNode is a Document, DocumentFragment,
- * Attr, Entity, or Notation node.
- *
- */
- void setEndBefore ( const Node &refNode );
-
- /**
- * Sets the end of a range to be after a node
- *
- * @param refNode Range ends after \c refNode .
- *
- * @return
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if an ancestor of \c refNode
- * is an Attr, Entity, Notation or DocumentType node or if
- * \c refNode is a Document, DocumentFragment, Attr,
- * Entity, or Notation node.
- *
- */
- void setEndAfter ( const Node &refNode );
-
- /**
- * Collapse a range onto one of its end-points
- *
- * @param toStart If true, collapses the Range onto its start; if
- * false, collapses it onto its end.
- *
- * @return
- *
- */
- void collapse ( bool toStart );
-
- /**
- * Select a node and its contents
- *
- * @param refNode The node to select.
- *
- * @return
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if an ancestor of \c refNode
- * is an Attr, Entity, Notation or DocumentType node or if
- * \c refNode is a Document, DocumentFragment, Attr,
- * Entity, or Notation node.
- *
- */
- void selectNode ( const Node &refNode );
-
- /**
- * Select the contents within a node
- *
- * @param refNode Node to select from
- *
- * @return
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if \c refNode or an
- * ancestor of \c refNode is an Attr, Entity, Notation
- * or DocumentType node.
- *
- */
- void selectNodeContents ( const Node &refNode );
-
- enum CompareHow {
- START_TO_START = 0,
- START_TO_END = 1,
- END_TO_END = 2,
- END_TO_START = 3
- };
-
- /**
- * Compare the end-points of two ranges in a document.
- *
- * @param how
- *
- * @param sourceRange
- *
- * @return -1, 0 or 1 depending on whether the corresponding
- * end-point of the Range is before, equal to, or after the
- * corresponding end-point of \c sourceRange .
- *
- * @exception DOMException
- * WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the
- * same document or document fragment.
- *
- */
- short compareBoundaryPoints ( CompareHow how, const Range &sourceRange );
-
- /**
- * @internal
- * not part of the DOM
- *
- * Compare the boundary-points of a range.
- *
- * Return true if the startContainer is before the endContainer,
- * or if they are equal.
- * Return false if the startContainer is after the endContainer.
- *
- */
- bool boundaryPointsValid ( );
-
- /**
- * Removes the contents of a range from the containing document or
- * document fragment without returning a reference to the removed
- * content.
- *
- * @return
- *
- * @exception DOMException
- * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the
- * content of the range is read-only or any of the nodes that
- * contain any of the content of the range are read-only.
- *
- */
- void deleteContents ( );
-
- /**
- * Moves the contents of a range from the containing document or
- * document fragment to a new DocumentFragment.
- *
- * @return A DocumentFragment containing the extracted contents.
- *
- * @exception DOMException
- * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the
- * content of the range is read-only or any of the nodes which
- * contain any of the content of the range are read-only.
- *
- * HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
- * extracted into the new DocumentFragment.
- *
- */
- DocumentFragment extractContents ( );
-
- /**
- * Duplicates the contents of a range
- *
- * @return A DocumentFragment containing contents equivalent to
- * those of this range.
- *
- * @exception DOMException
- * HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
- * extracted into the new DocumentFragment.
- *
- */
- DocumentFragment cloneContents ( );
-
- /**
- * Inserts a node into the document or document fragment at the
- * start of the range.
- *
- * @param newNode The node to insert at the start of the range
- *
- * @return
- *
- * @exception DOMException
- * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of
- * the start of the range is read-only.
- *
- * WRONG_DOCUMENT_ERR: Raised if \c newNode and the
- * container of the start of the Range were not created from the
- * same document.
- *
- * HIERARCHY_REQUEST_ERR: Raised if the container of the start of
- * the Range is of a type that does not allow children of the type
- * of \c newNode or if \c newNode is an
- * ancestor of the container .
- *
- * @exception RangeException
- * INVALID_NODE_TYPE_ERR: Raised if \c node is an
- * Attr, Entity, Notation, DocumentFragment, or Document node.
- *
- */
- void insertNode ( const Node &newNode );
-
- /**
- * Reparents the contents of the range to the given node and
- * inserts the node at the position of the start of the range.
- *
- * @param newParent The node to surround the contents with.
- *
- * @return
- *
- * @exception DOMException
- * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of
- * either end-point of the range is read-only.
- *
- * WRONG_DOCUMENT_ERR: Raised if \c newParent and the
- * container of the start of the Range were not created from the
- * same document.
- *
- * HIERARCHY_REQUEST_ERR: Raised if the container of the start of
- * the Range is of a type that does not allow children of the type
- * of \c newParent or if \c newParent is
- * an ancestor of the container or if \c node would
- * end up with a child node of a type not allowed by the type of
- * \c node .
- *
- * @exception RangeException
- * BAD_ENDPOINTS_ERR: Raised if the range partially selects a
- * non-text node.
- *
- * INVALID_NODE_TYPE_ERR: Raised if \c node is an
- * Attr, Entity, DocumentType, Notation, Document, or
- * DocumentFragment node.
- *
- */
- void surroundContents ( const Node &newParent );
-
- /**
- * Produces a new range whose end-points are equal to the
- * end-points of the range.
- *
- * @return The duplicated range.
- *
- */
- Range cloneRange ( );
-
- /**
- * Returns the contents of a range as a string.
- *
- * @return The contents of the range.
- *
- */
- DOMString toString ( );
-
- /**
- * @internal Not part of DOM
- */
- DOMString toHTML ( );
-
- /* Mozilla extension - only works for HTML documents. */
- DocumentFragment createContextualFragment (const DOMString &html);
-
- /**
- * Called to indicate that the range is no longer in use and that
- * the implementation may relinquish any resources associated with
- * this range. Subsequent calls to any methods or attribute getters
- * on this range will result in a DOMException being thrown with an
- * error code of INVALID_STATE_ERR.
- *
- */
- void detach ( );
-
- /**
- * not part of the DOM
- * true if the range is detached
- *
- */
- bool isDetached() const;
-
- /**
- * @internal
- * not part of the DOM
- */
- RangeImpl *handle() const;
- bool isNull() const;
-
-protected:
- RangeImpl *impl;
- Range(RangeImpl *i);
-private:
- void throwException(int exceptioncode) const;
-};
-
-} // namespace
-
-#endif