dom2_traversalimpl.h [plain text]
#ifndef _DOM2_TraversalImpl_h_
#define _DOM2_TraversalImpl_h_
#include "dom/dom_node.h"
#include "dom/dom_misc.h"
#include "misc/shared.h"
#include "dom/dom2_traversal.h"
namespace DOM {
class NodeImpl;
class DocumentImpl;
class NodeIteratorImpl : public khtml::Shared<NodeIteratorImpl>
{
public:
NodeIteratorImpl(NodeImpl *_root, unsigned long _whatToShow, NodeFilter _filter, bool _entityReferenceExpansion);
~NodeIteratorImpl();
NodeImpl *root();
unsigned long whatToShow();
NodeFilter filter();
bool expandEntityReferences();
NodeImpl *nextNode(int &exceptioncode);
NodeImpl *previousNode(int &exceptioncode);
void detach(int &exceptioncode);
void notifyBeforeNodeRemoval(NodeImpl *removed);
short isAccepted(NodeImpl *n);
NodeImpl *getNextNode(NodeImpl *n);
NodeImpl *getPreviousNode(NodeImpl *n);
protected:
NodeImpl *m_root;
long m_whatToShow;
NodeFilter m_filter;
bool m_expandEntityReferences;
bool m_inFront;
NodeImpl *m_referenceNode;
bool m_detached;
DocumentImpl *m_doc;
};
class NodeFilterImpl : public khtml::Shared<NodeFilterImpl>
{
public:
NodeFilterImpl();
~NodeFilterImpl();
short acceptNode(const Node &n);
void setCustomNodeFilter(CustomNodeFilter *custom);
CustomNodeFilter *customNodeFilter();
protected:
CustomNodeFilter *m_customNodeFilter;
};
class TreeWalkerImpl : public khtml::Shared<TreeWalkerImpl>
{
public:
TreeWalkerImpl();
TreeWalkerImpl(const TreeWalkerImpl &other);
TreeWalkerImpl(Node n, NodeFilter *f=0);
TreeWalkerImpl(Node n, long _whatToShow, NodeFilter *f=0);
TreeWalkerImpl & operator = (const TreeWalkerImpl &other);
~TreeWalkerImpl();
Node getRoot();
unsigned long getWhatToShow();
NodeFilter getFilter();
bool getExpandEntityReferences();
Node getCurrentNode();
void setCurrentNode(const Node _currentNode);
Node parentNode();
Node firstChild();
Node lastChild ();
Node previousSibling ();
Node nextSibling();
Node previousNode();
Node nextNode();
void setWhatToShow(long _whatToShow);
void setFilter(NodeFilter *_filter);
void setExpandEntityReferences(bool value);
Node getParentNode(Node n);
Node getFirstChild(Node n);
Node getLastChild(Node n);
Node getPreviousSibling(Node n);
Node getNextSibling(Node n);
short isAccepted(Node n);
protected:
long m_whatToShow;
NodeFilter *m_filter;
bool m_expandEntityReferences;
Node m_currentNode;
Node m_rootNode;
};
};
#endif