1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 * This header file lists up all event messages.
8 * Before including this header file, you should define:
9 * NS_EVENT_MESSAGE(aMessage)
11 * Additionally, you can specify following macro for e*First and e*Last.
12 * NS_EVENT_MESSAGE_FIRST_LAST(aMessage, aFirst, aLast)
13 * This is optional, if you need only actual event messages, you don't need
14 * to define this macro.
16 * Naming rules of the event messages:
17 * 0. Starting with "e" prefix and use camelcase.
18 * 1. Basically, use same name as the DOM name which is fired at dispatching
20 * 2. If the event message name becomes too generic, e.g., "eInvalid", that may
21 * conflict with another enum's item name, append something after the "e"
22 * prefix, e.g., "eFormInvalid".
25 #ifndef NS_EVENT_MESSAGE_FIRST_LAST
26 # define UNDEF_NS_EVENT_MESSAGE_FIRST_LAST 1
27 # define NS_EVENT_MESSAGE_FIRST_LAST(aMessage, aFirst, aLast)
30 NS_EVENT_MESSAGE(eVoidEvent
)
32 // This is a dummy event message for all event listener implementation in
33 // EventListenerManager.
34 NS_EVENT_MESSAGE(eAllEvents
)
36 // Widget may be destroyed
37 NS_EVENT_MESSAGE(eWindowClose
)
39 NS_EVENT_MESSAGE(eKeyPress
)
40 NS_EVENT_MESSAGE(eKeyUp
)
41 NS_EVENT_MESSAGE(eKeyDown
)
43 // These messages are dispatched when PluginInstaceChild receives native
44 // keyboard events directly and it posts the information to the widget.
45 // These messages shouldn't be handled by content and non-reserved chrome
47 NS_EVENT_MESSAGE(eKeyDownOnPlugin
)
48 NS_EVENT_MESSAGE(eKeyUpOnPlugin
)
50 // This message is sent after a content process handles a key event or accesskey
51 // to indicate that an potential accesskey was not found. The parent process may
52 // then respond by, for example, opening menus and processing other shortcuts.
53 // It inherits its properties from a keypress event.
54 NS_EVENT_MESSAGE(eAccessKeyNotFound
)
56 NS_EVENT_MESSAGE(eResize
)
57 NS_EVENT_MESSAGE(eScroll
)
58 NS_EVENT_MESSAGE(eMozVisualResize
)
59 NS_EVENT_MESSAGE(eMozVisualScroll
)
61 // Application installation
62 NS_EVENT_MESSAGE(eInstall
)
63 NS_EVENT_MESSAGE(eAppInstalled
)
65 // A plugin was clicked or otherwise focused. ePluginActivate should be
66 // used when the window is not active. ePluginFocus should be used when
67 // the window is active. In the latter case, the dispatcher of the event
68 // is expected to ensure that the plugin's widget is focused beforehand.
69 NS_EVENT_MESSAGE(ePluginActivate
)
70 NS_EVENT_MESSAGE(ePluginFocus
)
72 NS_EVENT_MESSAGE(eOffline
)
73 NS_EVENT_MESSAGE(eOnline
)
75 NS_EVENT_MESSAGE(eLanguageChange
)
77 NS_EVENT_MESSAGE(eMouseMove
)
78 NS_EVENT_MESSAGE(eMouseUp
)
79 NS_EVENT_MESSAGE(eMouseDown
)
80 NS_EVENT_MESSAGE(eMouseEnterIntoWidget
)
81 NS_EVENT_MESSAGE(eMouseExitFromWidget
)
82 NS_EVENT_MESSAGE(eMouseDoubleClick
)
83 NS_EVENT_MESSAGE(eMouseClick
)
84 NS_EVENT_MESSAGE(eMouseAuxClick
)
85 // eMouseActivate is fired when the widget is activated by a click.
86 NS_EVENT_MESSAGE(eMouseActivate
)
87 NS_EVENT_MESSAGE(eMouseOver
)
88 NS_EVENT_MESSAGE(eMouseOut
)
89 NS_EVENT_MESSAGE(eMouseHitTest
)
90 NS_EVENT_MESSAGE(eMouseEnter
)
91 NS_EVENT_MESSAGE(eMouseLeave
)
92 NS_EVENT_MESSAGE(eMouseTouchDrag
)
93 NS_EVENT_MESSAGE(eMouseLongTap
)
94 NS_EVENT_MESSAGE_FIRST_LAST(eMouseEvent
, eMouseMove
, eMouseLongTap
)
96 // Pointer spec events
97 NS_EVENT_MESSAGE(ePointerMove
)
98 NS_EVENT_MESSAGE(ePointerUp
)
99 NS_EVENT_MESSAGE(ePointerDown
)
100 NS_EVENT_MESSAGE(ePointerOver
)
101 NS_EVENT_MESSAGE(ePointerOut
)
102 NS_EVENT_MESSAGE(ePointerEnter
)
103 NS_EVENT_MESSAGE(ePointerLeave
)
104 NS_EVENT_MESSAGE(ePointerCancel
)
105 NS_EVENT_MESSAGE(ePointerGotCapture
)
106 NS_EVENT_MESSAGE(ePointerLostCapture
)
107 NS_EVENT_MESSAGE_FIRST_LAST(ePointerEvent
, ePointerMove
, ePointerLostCapture
)
109 NS_EVENT_MESSAGE(eContextMenu
)
111 NS_EVENT_MESSAGE(eCueChange
)
113 NS_EVENT_MESSAGE(eLoad
)
114 NS_EVENT_MESSAGE(eUnload
)
115 NS_EVENT_MESSAGE(eHashChange
)
116 NS_EVENT_MESSAGE(eImageAbort
)
117 NS_EVENT_MESSAGE(eLoadError
)
118 NS_EVENT_MESSAGE(eLoadEnd
)
119 NS_EVENT_MESSAGE(ePopState
)
120 NS_EVENT_MESSAGE(eRejectionHandled
)
121 NS_EVENT_MESSAGE(eStorage
)
122 NS_EVENT_MESSAGE(eUnhandledRejection
)
123 NS_EVENT_MESSAGE(eBeforeUnload
)
124 NS_EVENT_MESSAGE(eReadyStateChange
)
126 NS_EVENT_MESSAGE(eFormSubmit
)
127 NS_EVENT_MESSAGE(eFormReset
)
128 NS_EVENT_MESSAGE(eFormChange
)
129 NS_EVENT_MESSAGE(eFormSelect
)
130 NS_EVENT_MESSAGE(eFormInvalid
)
131 NS_EVENT_MESSAGE(eFormCheckboxStateChange
)
132 NS_EVENT_MESSAGE(eFormRadioStateChange
)
133 NS_EVENT_MESSAGE(eFormData
)
135 // Need separate focus/blur notifications for non-native widgets
136 NS_EVENT_MESSAGE(eFocus
)
137 NS_EVENT_MESSAGE(eBlur
)
138 NS_EVENT_MESSAGE(eFocusIn
)
139 NS_EVENT_MESSAGE(eFocusOut
)
141 NS_EVENT_MESSAGE(eDragEnter
)
142 NS_EVENT_MESSAGE(eDragOver
)
143 NS_EVENT_MESSAGE(eDragExit
)
144 NS_EVENT_MESSAGE(eDrag
)
145 NS_EVENT_MESSAGE(eDragEnd
)
146 NS_EVENT_MESSAGE(eDragStart
)
147 NS_EVENT_MESSAGE(eDrop
)
148 NS_EVENT_MESSAGE(eDragLeave
)
149 NS_EVENT_MESSAGE_FIRST_LAST(eDragDropEvent
, eDragEnter
, eDragLeave
)
151 // XUL specific events
152 NS_EVENT_MESSAGE(eXULPopupShowing
)
153 NS_EVENT_MESSAGE(eXULPopupShown
)
154 NS_EVENT_MESSAGE(eXULPopupPositioned
)
155 NS_EVENT_MESSAGE(eXULPopupHiding
)
156 NS_EVENT_MESSAGE(eXULPopupHidden
)
157 NS_EVENT_MESSAGE(eXULBroadcast
)
158 NS_EVENT_MESSAGE(eXULCommandUpdate
)
160 // Legacy mouse scroll (wheel) events
161 NS_EVENT_MESSAGE(eLegacyMouseLineOrPageScroll
)
162 NS_EVENT_MESSAGE(eLegacyMousePixelScroll
)
164 NS_EVENT_MESSAGE(eScrollPortUnderflow
)
165 NS_EVENT_MESSAGE(eScrollPortOverflow
)
167 NS_EVENT_MESSAGE(eLegacySubtreeModified
)
168 NS_EVENT_MESSAGE(eLegacyNodeInserted
)
169 NS_EVENT_MESSAGE(eLegacyNodeRemoved
)
170 NS_EVENT_MESSAGE(eLegacyNodeRemovedFromDocument
)
171 NS_EVENT_MESSAGE(eLegacyNodeInsertedIntoDocument
)
172 NS_EVENT_MESSAGE(eLegacyAttrModified
)
173 NS_EVENT_MESSAGE(eLegacyCharacterDataModified
)
174 NS_EVENT_MESSAGE_FIRST_LAST(eLegacyMutationEvent
, eLegacySubtreeModified
,
175 eLegacyCharacterDataModified
)
177 NS_EVENT_MESSAGE(eUnidentifiedEvent
)
179 // composition events
180 NS_EVENT_MESSAGE(eCompositionStart
)
181 // eCompositionEnd is the message for DOM compositionend event.
182 // This event should NOT be dispatched from widget if eCompositionCommit
184 NS_EVENT_MESSAGE(eCompositionEnd
)
185 // eCompositionUpdate is the message for DOM compositionupdate event.
186 // This event should NOT be dispatched from widget since it will be dispatched
187 // by mozilla::TextComposition automatically if eCompositionChange event
188 // will change composition string.
189 NS_EVENT_MESSAGE(eCompositionUpdate
)
190 // eCompositionChange is the message for representing a change of
191 // composition string. This should be dispatched from widget even if
192 // composition string isn't changed but the ranges are changed. This causes
193 // a DOM "text" event which is a non-standard DOM event.
194 NS_EVENT_MESSAGE(eCompositionChange
)
195 // eCompositionCommitAsIs is the message for representing a commit of
196 // composition string. TextComposition will commit composition with the
197 // last data. TextComposition will dispatch this event to the DOM tree as
198 // eCompositionChange without clause information. After that,
199 // eCompositionEnd will be dispatched automatically.
200 // Its mData and mRanges should be empty and nullptr.
201 NS_EVENT_MESSAGE(eCompositionCommitAsIs
)
202 // eCompositionCommit is the message for representing a commit of
203 // composition string with its mData value. TextComposition will dispatch this
204 // event to the DOM tree as eCompositionChange without clause information.
205 // After that, eCompositionEnd will be dispatched automatically.
206 // Its mRanges should be nullptr.
207 NS_EVENT_MESSAGE(eCompositionCommit
)
208 // eCompositionCommitRequestHandled is NOT used with any Widget*Event.
209 // This is used only by PBrowser.OnEventNeedingAckHandled(). If active IME
210 // commits composition synchronously, BrowserParent returns the commit string
211 // to the remote process synchronously. Then, BrowserChild dispatches
212 // eCompositionCommit in the remote process. Finally, this message is sent
213 // to BrowserParent. (If IME commits composition asynchronously, this message
215 NS_EVENT_MESSAGE(eCompositionCommitRequestHandled
)
217 // Following events are defined for deprecated DOM events which are using
218 // InternalUIEvent class.
219 // DOMActivate (mapped with the DOM event and used internally)
220 NS_EVENT_MESSAGE(eLegacyDOMActivate
)
221 // DOMFocusIn (only mapped with the DOM event)
222 NS_EVENT_MESSAGE(eLegacyDOMFocusIn
)
223 // DOMFocusOut (only mapped with the DOM event)
224 NS_EVENT_MESSAGE(eLegacyDOMFocusOut
)
226 // pagetransition events
227 NS_EVENT_MESSAGE(ePageShow
)
228 NS_EVENT_MESSAGE(ePageHide
)
231 NS_EVENT_MESSAGE(eSVGLoad
)
232 NS_EVENT_MESSAGE(eSVGUnload
)
233 NS_EVENT_MESSAGE(eSVGResize
)
234 NS_EVENT_MESSAGE(eSVGScroll
)
237 NS_EVENT_MESSAGE(eSVGZoom
)
239 // XUL command events
240 NS_EVENT_MESSAGE(eXULCommand
)
242 // Cut, copy, paste events
243 NS_EVENT_MESSAGE(eCopy
)
244 NS_EVENT_MESSAGE(eCut
)
245 NS_EVENT_MESSAGE(ePaste
)
246 NS_EVENT_MESSAGE(ePasteNoFormatting
)
248 // Query for the selected text information, it return the selection offset,
249 // selection length and selected text.
250 NS_EVENT_MESSAGE(eQuerySelectedText
)
251 // Query for the text content of specified range, it returns actual lengh (if
252 // the specified range is too long) and the text of the specified range.
253 // Returns the entire text if requested length > actual length.
254 NS_EVENT_MESSAGE(eQueryTextContent
)
255 // Query for the caret rect of nth insertion point. The offset of the result is
256 // relative position from the top level widget.
257 NS_EVENT_MESSAGE(eQueryCaretRect
)
258 // Query for the bounding rect of a range of characters. This works on any
259 // valid character range given offset and length. Result is relative to top
260 // level widget coordinates
261 NS_EVENT_MESSAGE(eQueryTextRect
)
262 // Query for the bounding rect array of a range of characters.
263 // Thiis similar event of eQueryTextRect.
264 NS_EVENT_MESSAGE(eQueryTextRectArray
)
265 // Query for the bounding rect of the current focused frame. Result is relative
266 // to top level widget coordinates
267 NS_EVENT_MESSAGE(eQueryEditorRect
)
268 // Query for the current state of the content. The particular members of
269 // mReply that are set for each query content event will be valid on success.
270 NS_EVENT_MESSAGE(eQueryContentState
)
271 // Query for the selection in the form of a nsITransferable.
272 NS_EVENT_MESSAGE(eQuerySelectionAsTransferable
)
273 // Query for character at a point. This returns the character offset, its
274 // rect and also tentative caret point if the point is clicked. The point is
275 // specified by Event::mRefPoint.
276 NS_EVENT_MESSAGE(eQueryCharacterAtPoint
)
277 // Query if the DOM element under Event::mRefPoint belongs to our widget
279 NS_EVENT_MESSAGE(eQueryDOMWidgetHittest
)
282 NS_EVENT_MESSAGE(eLoadStart
)
283 NS_EVENT_MESSAGE(eProgress
)
284 NS_EVENT_MESSAGE(eSuspend
)
285 NS_EVENT_MESSAGE(eEmptied
)
286 NS_EVENT_MESSAGE(eStalled
)
287 NS_EVENT_MESSAGE(ePlay
)
288 NS_EVENT_MESSAGE(ePause
)
289 NS_EVENT_MESSAGE(eLoadedMetaData
)
290 NS_EVENT_MESSAGE(eLoadedData
)
291 NS_EVENT_MESSAGE(eWaiting
)
292 NS_EVENT_MESSAGE(ePlaying
)
293 NS_EVENT_MESSAGE(eCanPlay
)
294 NS_EVENT_MESSAGE(eCanPlayThrough
)
295 NS_EVENT_MESSAGE(eSeeking
)
296 NS_EVENT_MESSAGE(eSeeked
)
297 NS_EVENT_MESSAGE(eTimeUpdate
)
298 NS_EVENT_MESSAGE(eEnded
)
299 NS_EVENT_MESSAGE(eRateChange
)
300 NS_EVENT_MESSAGE(eDurationChange
)
301 NS_EVENT_MESSAGE(eVolumeChange
)
303 // paint notification events
304 NS_EVENT_MESSAGE(eAfterPaint
)
306 // Simple gesture events
307 NS_EVENT_MESSAGE(eSwipeGestureMayStart
)
308 NS_EVENT_MESSAGE(eSwipeGestureStart
)
309 NS_EVENT_MESSAGE(eSwipeGestureUpdate
)
310 NS_EVENT_MESSAGE(eSwipeGestureEnd
)
311 NS_EVENT_MESSAGE(eSwipeGesture
)
312 NS_EVENT_MESSAGE(eMagnifyGestureStart
)
313 NS_EVENT_MESSAGE(eMagnifyGestureUpdate
)
314 NS_EVENT_MESSAGE(eMagnifyGesture
)
315 NS_EVENT_MESSAGE(eRotateGestureStart
)
316 NS_EVENT_MESSAGE(eRotateGestureUpdate
)
317 NS_EVENT_MESSAGE(eRotateGesture
)
318 NS_EVENT_MESSAGE(eTapGesture
)
319 NS_EVENT_MESSAGE(ePressTapGesture
)
320 NS_EVENT_MESSAGE(eEdgeUIStarted
)
321 NS_EVENT_MESSAGE(eEdgeUICanceled
)
322 NS_EVENT_MESSAGE(eEdgeUICompleted
)
324 // These are used to send native events to plugins.
325 NS_EVENT_MESSAGE(ePluginInputEvent
)
327 // Events to manipulate selection (WidgetSelectionEvent)
328 // Clear any previous selection and set the given range as the selection
329 NS_EVENT_MESSAGE(eSetSelection
)
331 // Events of commands for the contents
332 NS_EVENT_MESSAGE(eContentCommandCut
)
333 NS_EVENT_MESSAGE(eContentCommandCopy
)
334 NS_EVENT_MESSAGE(eContentCommandPaste
)
335 NS_EVENT_MESSAGE(eContentCommandDelete
)
336 NS_EVENT_MESSAGE(eContentCommandUndo
)
337 NS_EVENT_MESSAGE(eContentCommandRedo
)
338 NS_EVENT_MESSAGE(eContentCommandPasteTransferable
)
339 NS_EVENT_MESSAGE(eContentCommandLookUpDictionary
)
340 // eContentCommandScroll scrolls the nearest scrollable element to the
341 // currently focused content or latest DOM selection. This would normally be
342 // the same element scrolled by keyboard scroll commands, except that this event
343 // will scroll an element scrollable in either direction. I.e., if the nearest
344 // scrollable ancestor element can only be scrolled vertically, and horizontal
345 // scrolling is requested using this event, no scrolling will occur.
346 NS_EVENT_MESSAGE(eContentCommandScroll
)
348 // Event to gesture notification
349 NS_EVENT_MESSAGE(eGestureNotify
)
351 NS_EVENT_MESSAGE(eScrolledAreaChanged
)
353 // CSS Transition & Animation events:
354 NS_EVENT_MESSAGE(eTransitionStart
)
355 NS_EVENT_MESSAGE(eTransitionRun
)
356 NS_EVENT_MESSAGE(eTransitionEnd
)
357 NS_EVENT_MESSAGE(eTransitionCancel
)
358 NS_EVENT_MESSAGE(eAnimationStart
)
359 NS_EVENT_MESSAGE(eAnimationEnd
)
360 NS_EVENT_MESSAGE(eAnimationIteration
)
361 NS_EVENT_MESSAGE(eAnimationCancel
)
363 // Webkit-prefixed versions of Transition & Animation events, for web compat:
364 NS_EVENT_MESSAGE(eWebkitTransitionEnd
)
365 NS_EVENT_MESSAGE(eWebkitAnimationStart
)
366 NS_EVENT_MESSAGE(eWebkitAnimationEnd
)
367 NS_EVENT_MESSAGE(eWebkitAnimationIteration
)
369 NS_EVENT_MESSAGE(eSMILBeginEvent
)
370 NS_EVENT_MESSAGE(eSMILEndEvent
)
371 NS_EVENT_MESSAGE(eSMILRepeatEvent
)
373 NS_EVENT_MESSAGE(eAudioProcess
)
374 NS_EVENT_MESSAGE(eAudioComplete
)
376 // script notification events
377 NS_EVENT_MESSAGE(eBeforeScriptExecute
)
378 NS_EVENT_MESSAGE(eAfterScriptExecute
)
380 NS_EVENT_MESSAGE(eBeforePrint
)
381 NS_EVENT_MESSAGE(eAfterPrint
)
383 NS_EVENT_MESSAGE(eMessage
)
384 NS_EVENT_MESSAGE(eMessageError
)
387 NS_EVENT_MESSAGE(eOpen
)
389 // Device motion and orientation
390 NS_EVENT_MESSAGE(eDeviceOrientation
)
391 NS_EVENT_MESSAGE(eAbsoluteDeviceOrientation
)
392 NS_EVENT_MESSAGE(eDeviceMotion
)
393 NS_EVENT_MESSAGE(eDeviceProximity
)
394 NS_EVENT_MESSAGE(eUserProximity
)
395 NS_EVENT_MESSAGE(eDeviceLight
)
396 #if defined(MOZ_WIDGET_ANDROID)
397 NS_EVENT_MESSAGE(eOrientationChange
)
401 NS_EVENT_MESSAGE(eVRDisplayActivate
)
402 NS_EVENT_MESSAGE(eVRDisplayDeactivate
)
403 NS_EVENT_MESSAGE(eVRDisplayConnect
)
404 NS_EVENT_MESSAGE(eVRDisplayDisconnect
)
405 NS_EVENT_MESSAGE(eVRDisplayPresentChange
)
407 NS_EVENT_MESSAGE(eShow
)
409 // Fullscreen DOM API
410 NS_EVENT_MESSAGE(eFullscreenChange
)
411 NS_EVENT_MESSAGE(eFullscreenError
)
412 NS_EVENT_MESSAGE(eMozFullscreenChange
)
413 NS_EVENT_MESSAGE(eMozFullscreenError
)
415 NS_EVENT_MESSAGE(eTouchStart
)
416 NS_EVENT_MESSAGE(eTouchMove
)
417 NS_EVENT_MESSAGE(eTouchEnd
)
418 NS_EVENT_MESSAGE(eTouchCancel
)
419 NS_EVENT_MESSAGE(eTouchPointerCancel
)
421 // Pointerlock DOM API
422 NS_EVENT_MESSAGE(ePointerLockChange
)
423 NS_EVENT_MESSAGE(ePointerLockError
)
424 NS_EVENT_MESSAGE(eMozPointerLockChange
)
425 NS_EVENT_MESSAGE(eMozPointerLockError
)
427 // eWheel is the event message of DOM wheel event.
428 NS_EVENT_MESSAGE(eWheel
)
429 // eWheelOperationStart may be dispatched when user starts to operate mouse
430 // wheel. This won't be fired on some platforms which don't have corresponding
432 NS_EVENT_MESSAGE(eWheelOperationStart
)
433 // eWheelOperationEnd may be dispatched when user ends or cancels operating
434 // mouse wheel. This won't be fired on some platforms which don't have
435 // corresponding native event.
436 NS_EVENT_MESSAGE(eWheelOperationEnd
)
438 // System time is changed
439 NS_EVENT_MESSAGE(eTimeChange
)
441 // Network packet events.
442 NS_EVENT_MESSAGE(eNetworkUpload
)
443 NS_EVENT_MESSAGE(eNetworkDownload
)
445 // MediaRecorder events.
446 NS_EVENT_MESSAGE(eMediaRecorderDataAvailable
)
447 NS_EVENT_MESSAGE(eMediaRecorderWarning
)
448 NS_EVENT_MESSAGE(eMediaRecorderStop
)
450 // Gamepad input events
451 NS_EVENT_MESSAGE(eGamepadButtonDown
)
452 NS_EVENT_MESSAGE(eGamepadButtonUp
)
453 NS_EVENT_MESSAGE(eGamepadAxisMove
)
454 NS_EVENT_MESSAGE(eGamepadConnected
)
455 NS_EVENT_MESSAGE(eGamepadDisconnected
)
456 NS_EVENT_MESSAGE_FIRST_LAST(eGamepadEvent
, eGamepadButtonDown
,
457 eGamepadDisconnected
)
459 // input and beforeinput events.
460 NS_EVENT_MESSAGE(eEditorInput
)
461 NS_EVENT_MESSAGE(eEditorBeforeInput
)
464 NS_EVENT_MESSAGE(eSelectStart
)
465 NS_EVENT_MESSAGE(eSelectionChange
)
468 NS_EVENT_MESSAGE(eVisibilityChange
)
470 // Details element events.
471 NS_EVENT_MESSAGE(eToggle
)
473 // Dialog element events.
474 NS_EVENT_MESSAGE(eClose
)
476 // Marquee element events.
477 NS_EVENT_MESSAGE(eMarqueeBounce
)
478 NS_EVENT_MESSAGE(eMarqueeStart
)
479 NS_EVENT_MESSAGE(eMarqueeFinish
)
481 #ifdef UNDEF_NS_EVENT_MESSAGE_FIRST_LAST
482 # undef UNDEF_NS_EVENT_MESSAGE_FIRST_LAST
483 # undef NS_EVENT_MESSAGE_FIRST_LAST