dom2_traversalimpl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _DOM2_TraversalImpl_h_
00027 #define _DOM2_TraversalImpl_h_
00028
00029 #include "dom/dom2_traversal.h"
00030 #include "misc/shared.h"
00031
00032 namespace DOM {
00033
00034 class NodeImpl;
00035 class DocumentImpl;
00036
00037 class NodeIteratorImpl : public khtml::Shared<NodeIteratorImpl>
00038 {
00039 public:
00040 NodeIteratorImpl(NodeImpl *_root, unsigned long _whatToShow, NodeFilter _filter, bool _entityReferenceExpansion);
00041 ~NodeIteratorImpl();
00042
00043
00044 NodeImpl *root();
00045 unsigned long whatToShow();
00046 NodeFilter filter();
00047 bool expandEntityReferences();
00048
00049 NodeImpl *nextNode(int &exceptioncode);
00050 NodeImpl *previousNode(int &exceptioncode);
00051 void detach(int &exceptioncode);
00052
00053
00054
00055
00061 void notifyBeforeNodeRemoval(NodeImpl *removed);
00062
00063 short isAccepted(NodeImpl *n);
00064 NodeImpl *getNextNode(NodeImpl *n);
00065 NodeImpl *getPreviousNode(NodeImpl *n);
00066 protected:
00067 NodeImpl *m_root;
00068 long m_whatToShow;
00069 NodeFilter m_filter;
00070 bool m_expandEntityReferences;
00071
00072 bool m_inFront;
00073 NodeImpl *m_referenceNode;
00074 bool m_detached;
00075 DocumentImpl *m_doc;
00076 };
00077
00078 class NodeFilterImpl : public khtml::Shared<NodeFilterImpl>
00079 {
00080 public:
00081 NodeFilterImpl();
00082 ~NodeFilterImpl();
00083
00084 short acceptNode(const Node &n);
00085
00086 void setCustomNodeFilter(CustomNodeFilter *custom);
00087 CustomNodeFilter *customNodeFilter();
00088 protected:
00089 CustomNodeFilter *m_customNodeFilter;
00090
00091 };
00092
00093 class TreeWalkerImpl : public khtml::Shared<TreeWalkerImpl>
00094 {
00095 public:
00096 TreeWalkerImpl();
00097 TreeWalkerImpl(const TreeWalkerImpl &other);
00098 TreeWalkerImpl(Node n, NodeFilter *f=0);
00099 TreeWalkerImpl(Node n, long _whatToShow, NodeFilter *f=0);
00100 TreeWalkerImpl & operator = (const TreeWalkerImpl &other);
00101
00102
00103 ~TreeWalkerImpl();
00104
00105 Node getRoot();
00106
00107 unsigned long getWhatToShow();
00108
00109 NodeFilter getFilter();
00110
00111 bool getExpandEntityReferences();
00112
00113 Node getCurrentNode();
00114
00115 void setCurrentNode(const Node _currentNode);
00116
00117 Node parentNode();
00118
00119 Node firstChild();
00120
00121 Node lastChild ();
00122
00123 Node previousSibling ();
00124
00125 Node nextSibling();
00126
00127 Node previousNode();
00128
00129 Node nextNode();
00130
00131
00135 void setWhatToShow(long _whatToShow);
00136 void setFilter(NodeFilter *_filter);
00137 void setExpandEntityReferences(bool value);
00138
00139 Node getParentNode(Node n);
00140 Node getFirstChild(Node n);
00141 Node getLastChild(Node n);
00142 Node getPreviousSibling(Node n);
00143 Node getNextSibling(Node n);
00144
00145 short isAccepted(Node n);
00146
00147 protected:
00153 long m_whatToShow;
00154
00159 NodeFilter *m_filter;
00160
00174 bool m_expandEntityReferences;
00175
00186 Node m_currentNode;
00187
00188 Node m_rootNode;
00189 };
00190
00191
00192 }
00193
00194 #endif
00195
This file is part of the documentation for kdelibs Version 3.1.5.