WebCore:
[WebKit-https.git] / WebCore / kwq / DOMEvents.h
1 /*
2  * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 //=========================================================================
27 //=========================================================================
28 //=========================================================================
29
30 // Important Note:
31 // Though this file appears as an exported header from WebKit, the
32 // version you should edit is in WebCore. The WebKit version is copied
33 // to WebKit during the build process.
34
35 //=========================================================================
36 //=========================================================================
37 //=========================================================================
38
39 #import "DOMViews.h"
40
41 @class DOMEvent;
42 @class DOMEventListener;
43
44 extern NSString * const DOMEventException;
45
46 enum DOMEventExceptionCode {
47     DOM_UNSPECIFIED_EVENT_TYPE_ERR = 0
48 };
49
50 @interface DOMEventTarget : DOMObject
51 - (void)addEventListener:(NSString *)type :(DOMEventListener *)listener :(BOOL)useCapture;
52 - (void)removeEventListener:(NSString *)type :(DOMEventListener *)listener :(BOOL)useCapture;
53 - (BOOL)dispatchEvent:(DOMEvent *)event;
54 @end
55
56 enum {
57     DOM_CAPTURING_PHASE = 1,
58     DOM_AT_TARGET = 2,
59     DOM_BUBBLING_PHASE = 3
60 };
61
62 @interface DOMEvent : DOMObject
63 - (NSString *)type;
64 - (DOMEventTarget *)target;
65 - (DOMEventTarget *)currentTarget;
66 - (unsigned short)eventPhase;
67 - (BOOL)bubbles;
68 - (BOOL)cancelable;
69 - (DOMTimeStamp)timeStamp;
70 - (void)stopPropagation;
71 - (void)preventDefault;
72 - (void)initEvent:(NSString *)eventTypeArg :(BOOL)canBubbleArg :(BOOL)cancelableArg;
73 @end
74
75 @interface DOMDocument (DOMDocumentEvent)
76 - (DOMEvent *)createEvent:(NSString *)eventType;
77 @end
78
79 @interface DOMUIEvent : DOMEvent
80 - (DOMAbstractView *)view;
81 - (long)detail;
82 - (void)initUIEvent:(NSString *)typeArg :(BOOL)canBubbleArg :(BOOL)cancelableArg :(DOMAbstractView *)viewArg :(long)detailArg;
83 @end
84
85 @interface DOMMouseEvent : DOMUIEvent
86 - (long)screenX;
87 - (long)screenY;
88 - (long)clientX;
89 - (long)clientY;
90 - (BOOL)ctrlKey;
91 - (BOOL)shiftKey;
92 - (BOOL)altKey;
93 - (BOOL)metaKey;
94 - (unsigned short)button;
95 - (DOMEventTarget *)relatedTarget;
96 - (void)initMouseEvent:(NSString *)typeArg :(BOOL)canBubbleArg :(BOOL)cancelableArg :(DOMAbstractView *)viewArg :(long)detailArg :(long)screenXArg :(long)screenYArg :(long)clientX :(long)clientY :(BOOL)ctrlKeyArg :(BOOL)altKeyArg :(BOOL)shiftKeyArg :(BOOL)metaKeyArg :(unsigned short)buttonArg :(DOMEventTarget *)relatedTargetArg;
97 @end
98
99 enum {
100     DOM_MODIFICATION = 1,
101     DOM_ADDITION = 2,
102     DOM_REMOVAL = 3
103 };
104
105 @interface DOMMutationEvent : DOMEvent
106 - (DOMNode *)relatedNode;
107 - (NSString *)prevValue;
108 - (NSString *)newValue;
109 - (NSString *)attrName;
110 - (unsigned short)attrChange;
111 - (void)initMutationEvent:(NSString *)typeArg :(BOOL)canBubbleArg :(BOOL)cancelableArg :(DOMNode *)relatedNodeArg :(NSString *)prevValueArg :(NSString *)newValueArg :(NSString *)attrNameArg :(unsigned short)attrChangeArg;
112 @end