Bug 1731994: part 7) Update documentation of `nsIContentPermissionPrompt`. r=edgar...
[gecko.git] / widget / EventMessageList.h
blobbb08b5771fd49df1e76e5ebd4588a5af32516f16
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/. */
6 /**
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
19 * the event.
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)
28 #endif
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
46 // event handlers.
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
183 // is available.
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
214 // is not used.)
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)
230 // SVG events
231 NS_EVENT_MESSAGE(eSVGLoad)
232 NS_EVENT_MESSAGE(eSVGScroll)
234 // XUL command events
235 NS_EVENT_MESSAGE(eXULCommand)
237 // Cut, copy, paste events
238 NS_EVENT_MESSAGE(eCopy)
239 NS_EVENT_MESSAGE(eCut)
240 NS_EVENT_MESSAGE(ePaste)
241 NS_EVENT_MESSAGE(ePasteNoFormatting)
243 // Query for the selected text information, it return the selection offset,
244 // selection length and selected text.
245 NS_EVENT_MESSAGE(eQuerySelectedText)
246 // Query for the text content of specified range, it returns actual lengh (if
247 // the specified range is too long) and the text of the specified range.
248 // Returns the entire text if requested length > actual length.
249 NS_EVENT_MESSAGE(eQueryTextContent)
250 // Query for the caret rect of nth insertion point. The offset of the result is
251 // relative position from the top level widget.
252 NS_EVENT_MESSAGE(eQueryCaretRect)
253 // Query for the bounding rect of a range of characters. This works on any
254 // valid character range given offset and length. Result is relative to top
255 // level widget coordinates
256 NS_EVENT_MESSAGE(eQueryTextRect)
257 // Query for the bounding rect array of a range of characters.
258 // Thiis similar event of eQueryTextRect.
259 NS_EVENT_MESSAGE(eQueryTextRectArray)
260 // Query for the bounding rect of the current focused frame. Result is relative
261 // to top level widget coordinates
262 NS_EVENT_MESSAGE(eQueryEditorRect)
263 // Query for the current state of the content. The particular members of
264 // mReply that are set for each query content event will be valid on success.
265 NS_EVENT_MESSAGE(eQueryContentState)
266 // Query for the selection in the form of a nsITransferable.
267 NS_EVENT_MESSAGE(eQuerySelectionAsTransferable)
268 // Query for character at a point. This returns the character offset, its
269 // rect and also tentative caret point if the point is clicked. The point is
270 // specified by Event::mRefPoint.
271 NS_EVENT_MESSAGE(eQueryCharacterAtPoint)
272 // Query if the DOM element under Event::mRefPoint belongs to our widget
273 // or not.
274 NS_EVENT_MESSAGE(eQueryDOMWidgetHittest)
276 // Video events
277 NS_EVENT_MESSAGE(eLoadStart)
278 NS_EVENT_MESSAGE(eProgress)
279 NS_EVENT_MESSAGE(eSuspend)
280 NS_EVENT_MESSAGE(eEmptied)
281 NS_EVENT_MESSAGE(eStalled)
282 NS_EVENT_MESSAGE(ePlay)
283 NS_EVENT_MESSAGE(ePause)
284 NS_EVENT_MESSAGE(eLoadedMetaData)
285 NS_EVENT_MESSAGE(eLoadedData)
286 NS_EVENT_MESSAGE(eWaiting)
287 NS_EVENT_MESSAGE(ePlaying)
288 NS_EVENT_MESSAGE(eCanPlay)
289 NS_EVENT_MESSAGE(eCanPlayThrough)
290 NS_EVENT_MESSAGE(eSeeking)
291 NS_EVENT_MESSAGE(eSeeked)
292 NS_EVENT_MESSAGE(eTimeUpdate)
293 NS_EVENT_MESSAGE(eEnded)
294 NS_EVENT_MESSAGE(eRateChange)
295 NS_EVENT_MESSAGE(eDurationChange)
296 NS_EVENT_MESSAGE(eVolumeChange)
298 // paint notification events
299 NS_EVENT_MESSAGE(eAfterPaint)
301 // Simple gesture events
302 NS_EVENT_MESSAGE(eSwipeGestureMayStart)
303 NS_EVENT_MESSAGE(eSwipeGestureStart)
304 NS_EVENT_MESSAGE(eSwipeGestureUpdate)
305 NS_EVENT_MESSAGE(eSwipeGestureEnd)
306 NS_EVENT_MESSAGE(eSwipeGesture)
307 NS_EVENT_MESSAGE(eMagnifyGestureStart)
308 NS_EVENT_MESSAGE(eMagnifyGestureUpdate)
309 NS_EVENT_MESSAGE(eMagnifyGesture)
310 NS_EVENT_MESSAGE(eRotateGestureStart)
311 NS_EVENT_MESSAGE(eRotateGestureUpdate)
312 NS_EVENT_MESSAGE(eRotateGesture)
313 NS_EVENT_MESSAGE(eTapGesture)
314 NS_EVENT_MESSAGE(ePressTapGesture)
315 NS_EVENT_MESSAGE(eEdgeUIStarted)
316 NS_EVENT_MESSAGE(eEdgeUICanceled)
317 NS_EVENT_MESSAGE(eEdgeUICompleted)
319 // Events to manipulate selection (WidgetSelectionEvent)
320 // Clear any previous selection and set the given range as the selection
321 NS_EVENT_MESSAGE(eSetSelection)
323 // Events of commands for the contents
324 NS_EVENT_MESSAGE(eContentCommandCut)
325 NS_EVENT_MESSAGE(eContentCommandCopy)
326 NS_EVENT_MESSAGE(eContentCommandPaste)
327 NS_EVENT_MESSAGE(eContentCommandDelete)
328 NS_EVENT_MESSAGE(eContentCommandUndo)
329 NS_EVENT_MESSAGE(eContentCommandRedo)
330 // eContentCommandInsertText tries to insert text with replacing selection
331 // in focused editor.
332 NS_EVENT_MESSAGE(eContentCommandInsertText)
333 NS_EVENT_MESSAGE(eContentCommandPasteTransferable)
334 NS_EVENT_MESSAGE(eContentCommandLookUpDictionary)
335 // eContentCommandScroll scrolls the nearest scrollable element to the
336 // currently focused content or latest DOM selection. This would normally be
337 // the same element scrolled by keyboard scroll commands, except that this event
338 // will scroll an element scrollable in either direction. I.e., if the nearest
339 // scrollable ancestor element can only be scrolled vertically, and horizontal
340 // scrolling is requested using this event, no scrolling will occur.
341 NS_EVENT_MESSAGE(eContentCommandScroll)
343 // Event to gesture notification
344 NS_EVENT_MESSAGE(eGestureNotify)
346 NS_EVENT_MESSAGE(eScrolledAreaChanged)
348 // CSS Transition & Animation events:
349 NS_EVENT_MESSAGE(eTransitionStart)
350 NS_EVENT_MESSAGE(eTransitionRun)
351 NS_EVENT_MESSAGE(eTransitionEnd)
352 NS_EVENT_MESSAGE(eTransitionCancel)
353 NS_EVENT_MESSAGE(eAnimationStart)
354 NS_EVENT_MESSAGE(eAnimationEnd)
355 NS_EVENT_MESSAGE(eAnimationIteration)
356 NS_EVENT_MESSAGE(eAnimationCancel)
358 // Webkit-prefixed versions of Transition & Animation events, for web compat:
359 NS_EVENT_MESSAGE(eWebkitTransitionEnd)
360 NS_EVENT_MESSAGE(eWebkitAnimationStart)
361 NS_EVENT_MESSAGE(eWebkitAnimationEnd)
362 NS_EVENT_MESSAGE(eWebkitAnimationIteration)
364 NS_EVENT_MESSAGE(eSMILBeginEvent)
365 NS_EVENT_MESSAGE(eSMILEndEvent)
366 NS_EVENT_MESSAGE(eSMILRepeatEvent)
368 NS_EVENT_MESSAGE(eAudioProcess)
369 NS_EVENT_MESSAGE(eAudioComplete)
371 // script notification events
372 NS_EVENT_MESSAGE(eBeforeScriptExecute)
373 NS_EVENT_MESSAGE(eAfterScriptExecute)
375 NS_EVENT_MESSAGE(eBeforePrint)
376 NS_EVENT_MESSAGE(eAfterPrint)
378 NS_EVENT_MESSAGE(eMessage)
379 NS_EVENT_MESSAGE(eMessageError)
381 // Menu open event
382 NS_EVENT_MESSAGE(eOpen)
384 // Device motion and orientation
385 NS_EVENT_MESSAGE(eDeviceOrientation)
386 NS_EVENT_MESSAGE(eAbsoluteDeviceOrientation)
387 NS_EVENT_MESSAGE(eDeviceMotion)
388 NS_EVENT_MESSAGE(eUserProximity)
389 NS_EVENT_MESSAGE(eDeviceLight)
390 #if defined(MOZ_WIDGET_ANDROID)
391 NS_EVENT_MESSAGE(eOrientationChange)
392 #endif
394 // WebVR events
395 NS_EVENT_MESSAGE(eVRDisplayActivate)
396 NS_EVENT_MESSAGE(eVRDisplayDeactivate)
397 NS_EVENT_MESSAGE(eVRDisplayConnect)
398 NS_EVENT_MESSAGE(eVRDisplayDisconnect)
399 NS_EVENT_MESSAGE(eVRDisplayPresentChange)
401 NS_EVENT_MESSAGE(eShow)
403 // Fullscreen DOM API
404 NS_EVENT_MESSAGE(eFullscreenChange)
405 NS_EVENT_MESSAGE(eFullscreenError)
406 NS_EVENT_MESSAGE(eMozFullscreenChange)
407 NS_EVENT_MESSAGE(eMozFullscreenError)
409 NS_EVENT_MESSAGE(eTouchStart)
410 NS_EVENT_MESSAGE(eTouchMove)
411 NS_EVENT_MESSAGE(eTouchEnd)
412 NS_EVENT_MESSAGE(eTouchCancel)
413 NS_EVENT_MESSAGE(eTouchPointerCancel)
415 // Pointerlock DOM API
416 NS_EVENT_MESSAGE(ePointerLockChange)
417 NS_EVENT_MESSAGE(ePointerLockError)
418 NS_EVENT_MESSAGE(eMozPointerLockChange)
419 NS_EVENT_MESSAGE(eMozPointerLockError)
421 // eWheel is the event message of DOM wheel event.
422 NS_EVENT_MESSAGE(eWheel)
423 // eWheelOperationStart may be dispatched when user starts to operate mouse
424 // wheel. This won't be fired on some platforms which don't have corresponding
425 // native event.
426 NS_EVENT_MESSAGE(eWheelOperationStart)
427 // eWheelOperationEnd may be dispatched when user ends or cancels operating
428 // mouse wheel. This won't be fired on some platforms which don't have
429 // corresponding native event.
430 NS_EVENT_MESSAGE(eWheelOperationEnd)
432 // System time is changed
433 NS_EVENT_MESSAGE(eTimeChange)
435 // Network packet events.
436 NS_EVENT_MESSAGE(eNetworkUpload)
437 NS_EVENT_MESSAGE(eNetworkDownload)
439 // MediaRecorder events.
440 NS_EVENT_MESSAGE(eMediaRecorderDataAvailable)
441 NS_EVENT_MESSAGE(eMediaRecorderWarning)
442 NS_EVENT_MESSAGE(eMediaRecorderStop)
444 // Gamepad input events
445 NS_EVENT_MESSAGE(eGamepadButtonDown)
446 NS_EVENT_MESSAGE(eGamepadButtonUp)
447 NS_EVENT_MESSAGE(eGamepadAxisMove)
448 NS_EVENT_MESSAGE(eGamepadConnected)
449 NS_EVENT_MESSAGE(eGamepadDisconnected)
450 NS_EVENT_MESSAGE_FIRST_LAST(eGamepadEvent, eGamepadButtonDown,
451 eGamepadDisconnected)
453 // input and beforeinput events.
454 NS_EVENT_MESSAGE(eEditorInput)
455 NS_EVENT_MESSAGE(eEditorBeforeInput)
457 // selection events
458 NS_EVENT_MESSAGE(eSelectStart)
459 NS_EVENT_MESSAGE(eSelectionChange)
460 NS_EVENT_MESSAGE(eSlotChange)
462 // visibility change
463 NS_EVENT_MESSAGE(eVisibilityChange)
465 // security policy events
466 NS_EVENT_MESSAGE(eSecurityPolicyViolation)
468 // Details element events.
469 NS_EVENT_MESSAGE(eToggle)
471 // Dialog element events.
472 NS_EVENT_MESSAGE(eClose)
474 // Marquee element events.
475 NS_EVENT_MESSAGE(eMarqueeBounce)
476 NS_EVENT_MESSAGE(eMarqueeStart)
477 NS_EVENT_MESSAGE(eMarqueeFinish)
479 #ifdef UNDEF_NS_EVENT_MESSAGE_FIRST_LAST
480 # undef UNDEF_NS_EVENT_MESSAGE_FIRST_LAST
481 # undef NS_EVENT_MESSAGE_FIRST_LAST
482 #endif