//
//     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/>.

%ModuleHeaderCode
#include <dom_node.h>
%End

namespace DOM
{

class NamedNodeMap
{
%TypeHeaderCode
#include <dom_node.h>
%End


public:
                            NamedNodeMap ();
                            NamedNodeMap (const DOM::NamedNodeMap& other);
    unsigned long           length () const;
    DOM::Node               getNamedItem (const DOM::DOMString& name) const;
    DOM::Node               setNamedItem (const DOM::Node& arg);
    DOM::Node               removeNamedItem (const DOM::DOMString& name);
    DOM::Node               item (unsigned long index) const;
    DOM::Node               getNamedItemNS (const DOM::DOMString& namespaceURI, const DOM::DOMString& localName) const;
    DOM::Node               setNamedItemNS (const DOM::Node& arg);
    DOM::Node               removeNamedItemNS (const DOM::DOMString& namespaceURI, const DOM::DOMString& localName);
//ig     NamedNodeMapImpl*  handle () const;
    bool                    isNull () const;

protected:
//ig                        NamedNodeMap (NamedNodeMapImpl* i);
};   // NamedNodeMap


class Node
{
%TypeHeaderCode
#include <dom_node.h>
%End


public:
                            Node ();
                            Node (const DOM::Node& other);
//ig                        Node (NodeImpl* _impl);
    bool                    operator == (const DOM::Node& other) const;
    bool                    operator != (const DOM::Node& other) const;

    enum NodeType
    {
        ELEMENT_NODE,
        ATTRIBUTE_NODE,
        TEXT_NODE,
        CDATA_SECTION_NODE,
        ENTITY_REFERENCE_NODE,
        ENTITY_NODE,
        PROCESSING_INSTRUCTION_NODE,
        COMMENT_NODE,
        DOCUMENT_NODE,
        DOCUMENT_TYPE_NODE,
        DOCUMENT_FRAGMENT_NODE,
        NOTATION_NODE
    };

    DOM::DOMString          nodeName () const;
    DOM::DOMString          nodeValue () const;
    void                    setNodeValue (const DOM::DOMString&);
    unsigned short          nodeType () const;
    DOM::Node               parentNode () const;
    DOM::NodeList           childNodes () const;
    DOM::Node               firstChild () const;
    DOM::Node               lastChild () const;
    DOM::Node               previousSibling () const;
    DOM::Node               nextSibling () const;
    DOM::NamedNodeMap       attributes () const;
    DOM::Document           ownerDocument () const;
    DOM::Node               insertBefore (const DOM::Node& newChild, const DOM::Node& refChild);
    DOM::Node               replaceChild (const DOM::Node& newChild, const DOM::Node& oldChild);
    DOM::Node               removeChild (const DOM::Node& oldChild);
    DOM::Node               appendChild (const DOM::Node& newChild);
    bool                    hasChildNodes ();
    DOM::Node               cloneNode (bool deep);
    void                    normalize ();
    bool                    isSupported (const DOM::DOMString& feature, const DOM::DOMString& version) const;
    DOM::DOMString          namespaceURI () const;
    DOM::DOMString          prefix () const;
    void                    setPrefix (const DOM::DOMString& prefix);
    DOM::DOMString          localName () const;
    bool                    hasAttributes ();
    void                    addEventListener (const DOM::DOMString& type, DOM::EventListener* listener, const bool useCapture);
    void                    removeEventListener (const DOM::DOMString& type, DOM::EventListener* listener, bool useCapture);
    bool                    dispatchEvent (const DOM::Event& evt);
    DOM::DOMString          textContent () const;
    void                    setTextContent (const DOM::DOMString& text);

    enum DocumentPosition
    {
        DOCUMENT_POSITION_DISCONNECTED,
        DOCUMENT_POSITION_PRECEDING,
        DOCUMENT_POSITION_FOLLOWING,
        DOCUMENT_POSITION_CONTAINS,
        DOCUMENT_POSITION_CONTAINED_BY,
        DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
    };

    unsigned                compareDocumentPosition (const DOM::Node& other);
    quint32                 elementId () const;
    bool                    isNull () const;
//ig     NodeImpl*          handle () const;
    unsigned long           index () const;
    QString                 toHTML ();
    void                    applyChanges ();
    void                    getCursor (int offset, int& _x /Out/, int& _y /Out/, int& height /Out/);
    QRect                   getRect ();
};   // Node


class NodeList
{
%TypeHeaderCode
#include <dom_node.h>
%End


public:
                            NodeList ();
                            NodeList (const DOM::NodeList& other);
    unsigned long           length () const;
    DOM::Node               item (unsigned long index) const;
//ig     NodeListImpl*      handle () const;
    bool                    isNull () const;

protected:
//ig                        NodeList (const NodeListImpl* i);
};   // NodeList

typedef unsigned long long DOMTimeStamp;

};   // DOM



%ModuleHeaderCode
#include <dom_node.h>
%End

