//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace DOM
{

class NodeIterator
{
%TypeHeaderCode
#include <dom2_traversal.h>
%End


public:
                            NodeIterator ();
                            NodeIterator (const DOM::NodeIterator& other);
    DOM::Node               root ();
    unsigned long           whatToShow ();
    DOM::NodeFilter         filter ();
    bool                    expandEntityReferences ();
    DOM::Node               nextNode ();
    DOM::Node               previousNode ();
    void                    detach ();
//ig     NodeIteratorImpl*  handle () const;
    bool                    isNull () const;

protected:
//ig                        NodeIterator (NodeIteratorImpl* i);
};   // NodeIterator


class NodeFilter
{
%TypeHeaderCode
#include <dom2_traversal.h>
%End


public:
                            NodeFilter ();
                            NodeFilter (const DOM::NodeFilter& other);
//ig                        NodeFilter (NodeFilterImpl* i);

    enum AcceptCode
    {
        FILTER_ACCEPT,
        FILTER_REJECT,
        FILTER_SKIP
    };


    enum ShowCode
    {
        SHOW_ALL,
        SHOW_ELEMENT,
        SHOW_ATTRIBUTE,
        SHOW_TEXT,
        SHOW_CDATA_SECTION,
        SHOW_ENTITY_REFERENCE,
        SHOW_ENTITY,
        SHOW_PROCESSING_INSTRUCTION,
        SHOW_COMMENT,
        SHOW_DOCUMENT,
        SHOW_DOCUMENT_TYPE,
        SHOW_DOCUMENT_FRAGMENT,
        SHOW_NOTATION
    };

    virtual short           acceptNode (const DOM::Node& n);
//ig     virtual NodeFilterImpl*  handle () const;
    virtual bool            isNull () const;
    void                    setCustomNodeFilter (DOM::CustomNodeFilter* custom);
    DOM::CustomNodeFilter*  customNodeFilter ();
    static DOM::NodeFilter  createCustom (DOM::CustomNodeFilter* custom);
};   // NodeFilter


class CustomNodeFilter : DOM::DomShared
{
%TypeHeaderCode
#include <dom2_traversal.h>
%End


public:
                            CustomNodeFilter ();
    virtual short           acceptNode (const DOM::Node& n);
    virtual bool            isNull ();
    virtual DOM::DOMString  customNodeFilterType ();
};   // CustomNodeFilter


class TreeWalker
{
%TypeHeaderCode
#include <dom2_traversal.h>
%End


public:
                            TreeWalker ();
                            TreeWalker (const DOM::TreeWalker& other);
    DOM::Node               root ();
    unsigned long           whatToShow ();
    DOM::NodeFilter         filter ();
    bool                    expandEntityReferences ();
    DOM::Node               currentNode ();
    void                    setCurrentNode (const DOM::Node& _currentNode);
    DOM::Node               parentNode ();
    DOM::Node               firstChild ();
    DOM::Node               lastChild ();
    DOM::Node               previousSibling ();
    DOM::Node               nextSibling ();
    DOM::Node               previousNode ();
    DOM::Node               nextNode ();
//ig     TreeWalkerImpl*    handle () const;
    bool                    isNull () const;

protected:
//ig                        TreeWalker (TreeWalkerImpl* i);
};   // TreeWalker

};   // DOM


