//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module tdehtml  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software 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 library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

namespace DOM
{

class EventListener : DOM::DomShared
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         EventListener ();
    virtual void         handleEvent (DOM::Event&);
    virtual DOM::DOMString eventListenerType ();

protected:

};  // class EventListener


class Event
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         Event ();
                         Event (const DOM::Event&);

    enum PhaseType
    {
        CAPTURING_PHASE, 
        AT_TARGET, 
        BUBBLING_PHASE
    };

    DOM::DOMString       type () const;
    DOM::Node            target () const;
    DOM::Node            currentTarget () const;
    ushort               eventPhase () const;
    bool                 bubbles () const;
    bool                 cancelable () const;
    DOM::DOMTimeStamp    timeStamp () const;
    void                 stopPropagation ();
    void                 preventDefault ();
    void                 initEvent (const DOM::DOMString&, bool, bool);
//ig     EventImpl*           handle () const;
    bool                 isNull () const;

protected:
//ig                          Event (EventImpl*);

public:

%If (  - KDE_3_2_0 )
    DOM::DOMString       eventModuleName ();
%End

};  // class Event


typedef unsigned long long DOMTimeStamp;


class EventException
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         EventException (ushort);
                         EventException (const DOM::EventException&);

    enum EventExceptionCode
    {
        UNSPECIFIED_EVENT_TYPE_ERR
    };

    ushort               code;

};  // class EventException


class UIEvent : DOM::Event
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         UIEvent ();
                         UIEvent (const DOM::UIEvent&);
                         UIEvent (const DOM::Event&);
    DOM::AbstractView    view () const;
    long                 detail () const;

%If ( KDE_3_2_0 -  )
    int                  keyCode () const;

%If ( KDE_3_4_0 -  )
    int                  charCode () const;
%End


%If ( KDE_3_2_1 -  )
    int                  pageX () const;
    int                  pageY () const;
%End

    int                  layerX () const;
    int                  layerY () const;
    int                  which () const;
%End

    void                 initUIEvent (const DOM::DOMString&, bool, bool, const DOM::AbstractView&, long);

protected:
//ig                          UIEvent (UIEventImpl*);

};  // class UIEvent


class MouseEvent : DOM::UIEvent
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         MouseEvent ();
                         MouseEvent (const DOM::MouseEvent&);
                         MouseEvent (const DOM::Event&);
    long                 screenX () const;
    long                 screenY () const;
    long                 clientX () const;
    long                 clientY () const;
    bool                 ctrlKey () const;
    bool                 shiftKey () const;
    bool                 altKey () const;
    bool                 metaKey () const;
    ushort               button () const;
    DOM::Node            relatedTarget () const;
    void                 initMouseEvent (const DOM::DOMString&, bool, bool, const DOM::AbstractView&, long, long, long, long, long, bool, bool, bool, bool, ushort, const DOM::Node&);

protected:
//ig                          MouseEvent (MouseEventImpl*);

};  // class MouseEvent


%If ( KDE_3_1_0 -  )

class TextEvent : DOM::UIEvent
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         TextEvent ();
                         TextEvent (const DOM::TextEvent&);
                         TextEvent (const DOM::Event&);
    void                 initTextEvent (const DOM::DOMString&, bool, bool, const DOM::AbstractView&, long, const DOM::DOMString&, ulong, ulong, bool, bool);
    void                 initModifier (ulong, bool);
    bool                 inputGenerated () const;
    ulong                keyVal () const;
    bool                 numPad () const;
    DOM::DOMString       outputString () const;
    ulong                virtKeyVal () const;
    bool                 checkModifier (ulong);

protected:
//ig                          TextEvent (KeyEventBaseImpl*);

};  // class TextEvent

%End


%If ( KDE_3_1_0 -  )

class MutationEvent : DOM::Event
{
%TypeHeaderCode
#include <dom2_events.h>
%End


public:
                         MutationEvent ();
                         MutationEvent (const DOM::MutationEvent&);
                         MutationEvent (const DOM::Event&);

    enum attrChangeType
    {
        MODIFICATION, 
        ADDITION, 
        REMOVAL
    };

    DOM::Node            relatedNode () const;
    DOM::DOMString       prevValue () const;
    DOM::DOMString       newValue () const;
    DOM::DOMString       attrName () const;
    ushort               attrChange () const;
    void                 initMutationEvent (const DOM::DOMString&, bool, bool, const DOM::Node&, const DOM::DOMString&, const DOM::DOMString&, const DOM::DOMString&, ushort);

protected:
//ig                          MutationEvent (MutationEventImpl*);

};  // class MutationEvent

%End

};  // namespace DOM

