1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM c:/mozilla/dom/public/idl/events/nsIDOMEventTarget.idl
*/
#ifndef __gen_nsIDOMEventTarget_h__
#define __gen_nsIDOMEventTarget_h__
#ifndef __gen_domstubs_h__
#include "domstubs.h"
#endif
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* starting interface: nsIDOMEventTarget */
#define NS_IDOMEVENTTARGET_IID_STR "1c773b30-d1cf-11d2-bd95-00805f8ae3f4"
#define NS_IDOMEVENTTARGET_IID \
{0x1c773b30, 0xd1cf, 0x11d2, \
{ 0xbd, 0x95, 0x00, 0x80, 0x5f, 0x8a, 0xe3, 0xf4 }}
class NS_NO_VTABLE nsIDOMEventTarget : public nsISupports {
public:
NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOMEVENTTARGET_IID)
/**
* The nsIDOMEventTarget interface is the interface implemented by all
* event targets in the Document Object Model.
*
* For more information on this interface please see
* http://www.w3.org/TR/DOM-Level-2-Events/
*
* @status FROZEN
*/
/**
* This method allows the registration of event listeners on the event target.
* If an EventListener is added to an EventTarget while it is processing an
* event, it will not be triggered by the current actions but may be
* triggered during a later stage of event flow, such as the bubbling phase.
*
* If multiple identical EventListeners are registered on the same
* EventTarget with the same parameters the duplicate instances are
* discarded. They do not cause the EventListener to be called twice
* and since they are discarded they do not need to be removed with the
* removeEventListener method.
*
* @param type The event type for which the user is registering
* @param listener The listener parameter takes an interface
* implemented by the user which contains the methods
* to be called when the event occurs.
* @param useCapture If true, useCapture indicates that the user
* wishes to initiate capture. After initiating
* capture, all events of the specified type will be
* dispatched to the registered EventListener before
* being dispatched to any EventTargets beneath them
* in the tree. Events which are bubbling upward
* through the tree will not trigger an
* EventListener designated to use capture.
*/
/* void addEventListener (in DOMString type, in nsIDOMEventListener listener, in boolean useCapture); */
NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) = 0;
/**
* This method allows the removal of event listeners from the event
* target. If an EventListener is removed from an EventTarget while it
* is processing an event, it will not be triggered by the current actions.
* EventListeners can never be invoked after being removed.
* Calling removeEventListener with arguments which do not identify any
* currently registered EventListener on the EventTarget has no effect.
*
* @param type Specifies the event type of the EventListener being
* removed.
* @param listener The EventListener parameter indicates the
* EventListener to be removed.
* @param useCapture Specifies whether the EventListener being
* removed was registered as a capturing listener or
* not. If a listener was registered twice, one with
* capture and one without, each must be removed
* separately. Removal of a capturing listener does
* not affect a non-capturing version of the same
* listener, and vice versa.
*/
/* void removeEventListener (in DOMString type, in nsIDOMEventListener listener, in boolean useCapture); */
NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) = 0;
/**
* This method allows the dispatch of events into the implementations
* event model. Events dispatched in this manner will have the same
* capturing and bubbling behavior as events dispatched directly by the
* implementation. The target of the event is the EventTarget on which
* dispatchEvent is called.
*
* @param evt Specifies the event type, behavior, and contextual
* information to be used in processing the event.
* @return Indicates whether any of the listeners which handled the
* event called preventDefault. If preventDefault was called
* the value is false, else the value is true.
* @throws UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type was
* not specified by initializing the event before
* dispatchEvent was called. Specification of the Event's
* type as null or an empty string will also trigger this
* exception.
*/
/* boolean dispatchEvent (in nsIDOMEvent evt) raises (DOMException); */
NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval) = 0;
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMEVENTTARGET \
NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture); \
NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture); \
NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMEVENTTARGET(_to) \
NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) { return _to AddEventListener(type, listener, useCapture); } \
NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) { return _to RemoveEventListener(type, listener, useCapture); } \
NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval) { return _to DispatchEvent(evt, _retval); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMEVENTTARGET(_to) \
NS_IMETHOD AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEventListener(type, listener, useCapture); } \
NS_IMETHOD RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveEventListener(type, listener, useCapture); } \
NS_IMETHOD DispatchEvent(nsIDOMEvent *evt, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->DispatchEvent(evt, _retval); }
#if 0
/* Use the code below as a template for the implementation class for this interface. */
/* Header file */
class nsDOMEventTarget : public nsIDOMEventTarget
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIDOMEVENTTARGET
nsDOMEventTarget();
private:
~nsDOMEventTarget();
protected:
/* additional members */
};
/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMEventTarget, nsIDOMEventTarget)
nsDOMEventTarget::nsDOMEventTarget()
{
/* member initializers and constructor code */
}
nsDOMEventTarget::~nsDOMEventTarget()
{
/* destructor code */
}
/* void addEventListener (in DOMString type, in nsIDOMEventListener listener, in boolean useCapture); */
NS_IMETHODIMP nsDOMEventTarget::AddEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void removeEventListener (in DOMString type, in nsIDOMEventListener listener, in boolean useCapture); */
NS_IMETHODIMP nsDOMEventTarget::RemoveEventListener(const nsAString & type, nsIDOMEventListener *listener, PRBool useCapture)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* boolean dispatchEvent (in nsIDOMEvent evt) raises (DOMException); */
NS_IMETHODIMP nsDOMEventTarget::DispatchEvent(nsIDOMEvent *evt, PRBool *_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* End of implementation class template. */
#endif
#endif /* __gen_nsIDOMEventTarget_h__ */
|