diff options
Diffstat (limited to 'khtml/dom/dom2_range.h')
-rw-r--r-- | khtml/dom/dom2_range.h | 475 |
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 |