| # khtml Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# dom2_events.h

    00001 /*
    00002  * This file is part of the DOM implementation for KDE.
    00003  *
    00004  * Copyright (C) 2001 Peter Kelly (pmk@post.com)
    00005  *           (C) 2003 Apple Computer, Inc.
    00006  *
    00007  * This library is free software; you can redistribute it and/or
    00008  * modify it under the terms of the GNU Library General Public
    00009  * License as published by the Free Software Foundation; either
    00010  * version 2 of the License, or (at your option) any later version.
    00011  *
    00012  * This library is distributed in the hope that it will be useful,
    00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00015  * Library General Public License for more details.
    00016  *
    00017  * You should have received a copy of the GNU Library General Public License
    00018  * along with this library; see the file COPYING.LIB.  If not, write to
    00019  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00020  * Boston, MA 02111-1307, USA.
    00021  *
    00022  */
    00023
    00024 #ifndef _DOM_Events_h_
    00025 #define _DOM_Events_h_
    00026
    00027 #include <dom/dom_node.h>
    00028 #include <dom/dom_misc.h>
    00029
    00030 namespace KJS {
    00031     class Image;
    00032 }
    00033
    00034 namespace DOM {
    00035
    00036 class Event;
    00037 class EventException;
    00038 class UIEvent;
    00039 class MouseEvent;
    00040 class TextEvent;
    00041 class MutationEvent;
    00042 class AbstractView;
    00043
    00044 class EventListenerImpl;
    00045 class EventImpl;
    00046 class UIEventImpl;
    00047 class MouseEventImpl;
    00048 class TextEventImpl;
    00049 class MutationEventImpl;
    00050
    00051
    00052
    00068 class KHTML_EXPORT EventListener : public DomShared {
    00069 public:
    00070     EventListener();
    00071     virtual ~EventListener();
    00072
    00082     virtual void handleEvent(Event &evt);
    00083
    00092     virtual DOMString eventListenerType();
    00093
    00094 protected:
    00099     EventListenerImpl *impl;
    00100 };
    00101
    00102
    00115 class KHTML_EXPORT Event {
    00116     friend class Document;
    00117     friend class NodeImpl;
    00118     friend class DocumentImpl;
    00119     friend class KJS::Image;
    00120 public:
    00121     Event();
    00122     Event(const Event &other);
    00123     virtual ~Event();
    00124
    00125     Event & operator = (const Event &other);
    00126
    00138     enum PhaseType {
    00139     CAPTURING_PHASE = 1,
    00140     AT_TARGET = 2,
    00141     BUBBLING_PHASE = 3
    00142     };
    00143
    00148     DOMString type() const;
    00149
    00155     Node target() const;
    00156
    00163     Node currentTarget() const;
    00164
    00169     unsigned short eventPhase() const;
    00170
    00176     bool bubbles() const;
    00177
    00184     bool cancelable() const;
    00185
    00194     DOMTimeStamp timeStamp() const;
    00195
    00204     void stopPropagation();
    00205
    00218     void preventDefault();
    00219
    00245     void initEvent(const DOMString &eventTypeArg, bool canBubbleArg, bool cancelableArg);
    00246
    00251     EventImpl *handle() const;
    00252     bool isNull() const;
    00253
    00254 protected:
    00255     Event(EventImpl *i);
    00256     EventImpl *impl;
    00257 };
    00258
    00259
    00267 class KHTML_EXPORT EventException
    00268 {
    00269 public:
    00270     EventException(unsigned short _code);
    00271     EventException(const EventException &other);
    00272     EventException & operator = (const EventException &other);
    00273     virtual ~EventException() {}
    00274
    00284     enum EventExceptionCode {
    00285         UNSPECIFIED_EVENT_TYPE_ERR     = 0
    00286     };
    00287
    00288     unsigned short code;
    00289 };
    00290
    00291
    00299 class KHTML_EXPORT UIEvent : public Event {
    00300 public:
    00301     UIEvent();
    00302     UIEvent(const UIEvent &other);
    00303     UIEvent(const Event &other);
    00304     UIEvent & operator = (const UIEvent &other);
    00305     UIEvent & operator = (const Event &other);
    00306     virtual ~UIEvent();
    00307
    00313     AbstractView view() const;
    00314
    00320     long detail() const;
    00321
    00326     int keyCode() const;
    00327
    00332     int charCode() const;
    00333
    00338     int pageX() const;
    00339     int pageY() const;
    00340
    00345     int layerX() const;
    00346     int layerY() const;
    00347
    00352     int which() const;
    00353
    00374     void initUIEvent(const DOMString &typeArg,
    00375                                  bool canBubbleArg,
    00376                                  bool cancelableArg,
    00377                                  const AbstractView &viewArg,
    00378                                  long detailArg);
    00379 protected:
    00380     UIEvent(UIEventImpl *impl);
    00381 };
    00382
    00383
    00384
    00385
    00404 class KHTML_EXPORT MouseEvent : public UIEvent {
    00405 public:
    00406     MouseEvent();
    00407     MouseEvent(const MouseEvent &other);
    00408     MouseEvent(const Event &other);
    00409     MouseEvent & operator = (const MouseEvent &other);
    00410     MouseEvent & operator = (const Event &other);
    00411     virtual ~MouseEvent();
    00412
    00418     long screenX() const;
    00419
    00425     long screenY() const;
    00426
    00432     long clientX() const;
    00433
    00439     long clientY() const;
    00440
    00445     bool ctrlKey() const;
    00446
    00452     bool shiftKey() const;
    00453
    00460     bool altKey() const;
    00461
    00468     bool metaKey() const;
    00469
    00480     unsigned short button() const;
    00481
    00489     Node relatedTarget() const;
    00490
    00530     void initMouseEvent(const DOMString &typeArg,
    00531                                     bool canBubbleArg,
    00532                                     bool cancelableArg,
    00533                                     const AbstractView &viewArg,
    00534                                     long detailArg,
    00535                                     long screenXArg,
    00536                                     long screenYArg,
    00537                                     long clientXArg,
    00538                                     long clientYArg,
    00539                                     bool ctrlKeyArg,
    00540                                     bool altKeyArg,
    00541                                     bool shiftKeyArg,
    00542                                     bool metaKeyArg,
    00543                                     unsigned short buttonArg,
    00544                                     const Node &relatedTargetArg);
    00545 protected:
    00546     MouseEvent(MouseEventImpl *impl);
    00547 };
    00548
    00549 // Introduced in DOM Level 3:
    00556 class KHTML_EXPORT TextEvent : public UIEvent {
    00557 public:
    00558     TextEvent();
    00559     TextEvent(const TextEvent &other);
    00560     TextEvent(const Event &other);
    00561     TextEvent & operator = (const TextEvent &other);
    00562     TextEvent & operator = (const Event &other);
    00563     virtual ~TextEvent();
    00564
    00602     void initTextEvent(const DOMString &typeArg,
    00603                       bool canBubbleArg,
    00604                       bool cancelableArg,
    00605                       const AbstractView &viewArg,
    00606                       long detailArg,
    00607                       const DOMString &outputStringArg,
    00608                       unsigned long keyValArg,
    00609                       unsigned long virtKeyValArg,
    00610                       bool inputGeneratedArg,
    00611                       bool numPadArg);
    00612
    00645     void initModifier(unsigned long modifierArg, bool valueArg);
    00646
    00663     bool inputGenerated() const;
    00664
    00672     unsigned long keyVal() const;
    00673
    00681     bool numPad() const;
    00682
    00692     DOMString     outputString() const;
    00701     unsigned long virtKeyVal() const;
    00702
    00735     bool checkModifier(unsigned long modiferArg);
    00736
    00737 protected:
    00738     TextEvent(TextEventImpl *impl);
    00739 };
    00740
    00741
    00749 class KHTML_EXPORT MutationEvent : public Event {
    00750 public:
    00751     MutationEvent();
    00752     MutationEvent(const MutationEvent &other);
    00753     MutationEvent(const Event &other);
    00754     MutationEvent & operator = (const MutationEvent &other);
    00755     MutationEvent & operator = (const Event &other);
    00756     virtual ~MutationEvent();
    00757
    00768     enum attrChangeType {
    00769     MODIFICATION = 1,
    00770     ADDITION = 2,
    00771     REMOVAL = 3
    00772     };
    00773
    00774
    00785     Node relatedNode() const;
    00786
    00793     DOMString prevValue() const;
    00794
    00800     DOMString newValue() const;
    00801
    00807     DOMString attrName() const;
    00808
    00815     unsigned short attrChange() const;
    00816
    00842     void initMutationEvent(const DOMString &typeArg,
    00843                                        bool canBubbleArg,
    00844                                        bool cancelableArg,
    00845                                        const Node &relatedNodeArg,
    00846                                        const DOMString &prevValueArg,
    00847                                        const DOMString &newValueArg,
    00848                                        const DOMString &attrNameArg,
    00849                                        unsigned short attrChangeArg);
    00850 protected:
    00851     MutationEvent(MutationEventImpl *impl);
    00852 };
    00853
    00854
    00855
    00856 } //namespace
    00857 #endif

This file is part of the documentation for khtml Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:33:09 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003