khtml Library API Documentation

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
KDE Logo
This file is part of the documentation for khtml Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 14 00:38:27 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003