mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 912956 part.3 Create mozilla/BasicEvents.h r=roc
This commit is contained in:
parent
0b6d808310
commit
835a1fca99
@ -237,22 +237,22 @@ nsresult
|
|||||||
NS_NewDOMUIEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMUIEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsGUIEvent* aEvent);
|
nsGUIEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMMouseEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMMouseEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsInputEvent* aEvent);
|
nsInputEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMFocusEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMFocusEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsFocusEvent* aEvent);
|
nsFocusEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMMouseScrollEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMMouseScrollEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsInputEvent* aEvent);
|
nsInputEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMWheelEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMWheelEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
@ -262,28 +262,28 @@ nsresult
|
|||||||
NS_NewDOMDragEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMDragEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsDragEvent* aEvent);
|
nsDragEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMClipboardEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMClipboardEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsClipboardEvent *aEvent);
|
nsClipboardEvent *aEvent);
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMKeyboardEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMKeyboardEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsKeyEvent* aEvent);
|
nsKeyEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMCompositionEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMCompositionEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsCompositionEvent* aEvent);
|
nsCompositionEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMMutationEvent(nsIDOMEvent** aResult,
|
NS_NewDOMMutationEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsMutationEvent* aEvent);
|
nsMutationEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMDeviceMotionEvent(nsIDOMEvent** aResult,
|
NS_NewDOMDeviceMotionEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
@ -293,7 +293,7 @@ nsresult
|
|||||||
NS_NewDOMTextEvent(nsIDOMEvent** aResult,
|
NS_NewDOMTextEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsTextEvent* aEvent);
|
nsTextEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMBeforeUnloadEvent(nsIDOMEvent** aResult,
|
NS_NewDOMBeforeUnloadEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
@ -303,22 +303,22 @@ nsresult
|
|||||||
NS_NewDOMSVGEvent(nsIDOMEvent** aResult,
|
NS_NewDOMSVGEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsEvent* aEvent);
|
nsEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMSVGZoomEvent(nsIDOMEvent** aResult,
|
NS_NewDOMSVGZoomEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsGUIEvent* aEvent);
|
nsGUIEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMTimeEvent(nsIDOMEvent** aResult,
|
NS_NewDOMTimeEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsEvent* aEvent);
|
nsEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMXULCommandEvent(nsIDOMEvent** aResult,
|
NS_NewDOMXULCommandEvent(nsIDOMEvent** aResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsInputEvent* aEvent);
|
nsInputEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMCommandEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMCommandEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
@ -328,12 +328,12 @@ nsresult
|
|||||||
NS_NewDOMMessageEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMMessageEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsEvent* aEvent);
|
nsEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMProgressEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMProgressEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsEvent* aEvent);
|
nsEvent* aEvent);
|
||||||
// This empties aInvalidateRequests.
|
// This empties aInvalidateRequests.
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMNotifyPaintEvent(nsIDOMEvent** aResult,
|
NS_NewDOMNotifyPaintEvent(nsIDOMEvent** aResult,
|
||||||
@ -355,27 +355,27 @@ nsresult
|
|||||||
NS_NewDOMSimpleGestureEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMSimpleGestureEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsSimpleGestureEvent* aEvent);
|
nsSimpleGestureEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMScrollAreaEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMScrollAreaEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsScrollAreaEvent* aEvent);
|
nsScrollAreaEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMTransitionEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMTransitionEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsTransitionEvent* aEvent);
|
nsTransitionEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMAnimationEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMAnimationEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsAnimationEvent* aEvent);
|
nsAnimationEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMTouchEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMTouchEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
nsPresContext* aPresContext,
|
nsPresContext* aPresContext,
|
||||||
class nsTouchEvent* aEvent);
|
nsTouchEvent* aEvent);
|
||||||
nsresult
|
nsresult
|
||||||
NS_NewDOMMozSettingsEvent(nsIDOMEvent** aInstancePtrResult,
|
NS_NewDOMMozSettingsEvent(nsIDOMEvent** aInstancePtrResult,
|
||||||
mozilla::dom::EventTarget* aOwner,
|
mozilla::dom::EventTarget* aOwner,
|
||||||
|
@ -68,10 +68,10 @@ def print_header_file(fd, conf):
|
|||||||
"#define _gen_mozilla_idl_generated_events_h_\n\n")
|
"#define _gen_mozilla_idl_generated_events_h_\n\n")
|
||||||
fd.write("/* THIS FILE IS AUTOGENERATED - DO NOT EDIT */\n")
|
fd.write("/* THIS FILE IS AUTOGENERATED - DO NOT EDIT */\n")
|
||||||
fd.write("#include \"nscore.h\"\n")
|
fd.write("#include \"nscore.h\"\n")
|
||||||
fd.write("class nsEvent;\n")
|
|
||||||
fd.write("class nsIDOMEvent;\n")
|
fd.write("class nsIDOMEvent;\n")
|
||||||
fd.write("class nsPresContext;\n")
|
fd.write("class nsPresContext;\n")
|
||||||
fd.write("namespace mozilla {\n");
|
fd.write("namespace mozilla {\n");
|
||||||
|
fd.write("class WidgetEvent;\n")
|
||||||
fd.write("namespace dom {\n");
|
fd.write("namespace dom {\n");
|
||||||
fd.write("class EventTarget;\n")
|
fd.write("class EventTarget;\n")
|
||||||
fd.write("}\n");
|
fd.write("}\n");
|
||||||
@ -80,7 +80,7 @@ def print_header_file(fd, conf):
|
|||||||
fd.write("nsresult\n")
|
fd.write("nsresult\n")
|
||||||
fd.write("NS_NewDOM%s(nsIDOMEvent** aInstance, " % e)
|
fd.write("NS_NewDOM%s(nsIDOMEvent** aInstance, " % e)
|
||||||
fd.write("mozilla::dom::EventTarget* aOwner, ")
|
fd.write("mozilla::dom::EventTarget* aOwner, ")
|
||||||
fd.write("nsPresContext* aPresContext, nsEvent* aEvent);\n")
|
fd.write("nsPresContext* aPresContext, mozilla::WidgetEvent* aEvent);\n")
|
||||||
|
|
||||||
fd.write("\n#endif\n")
|
fd.write("\n#endif\n")
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ def print_class_declaration(eventname, iface, fd, conf):
|
|||||||
fd.write("{\n")
|
fd.write("{\n")
|
||||||
fd.write("public:\n")
|
fd.write("public:\n")
|
||||||
fd.write(" %s(mozilla::dom::EventTarget* aOwner, " % classname)
|
fd.write(" %s(mozilla::dom::EventTarget* aOwner, " % classname)
|
||||||
fd.write("nsPresContext* aPresContext = nullptr, nsEvent* aEvent = nullptr);\n");
|
fd.write("nsPresContext* aPresContext = nullptr, mozilla::WidgetEvent* aEvent = nullptr);\n");
|
||||||
fd.write(" virtual ~%s();\n\n" % classname)
|
fd.write(" virtual ~%s();\n\n" % classname)
|
||||||
fd.write(" NS_DECL_ISUPPORTS_INHERITED\n")
|
fd.write(" NS_DECL_ISUPPORTS_INHERITED\n")
|
||||||
fd.write(" NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(%s, %s)\n" % (classname, basename))
|
fd.write(" NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(%s, %s)\n" % (classname, basename))
|
||||||
@ -375,7 +375,7 @@ def write_cpp(eventname, iface, fd, conf):
|
|||||||
fd.write("namespace dom {\n\n")
|
fd.write("namespace dom {\n\n")
|
||||||
|
|
||||||
fd.write("%s::%s(mozilla::dom::EventTarget* aOwner, " % (classname, classname))
|
fd.write("%s::%s(mozilla::dom::EventTarget* aOwner, " % (classname, classname))
|
||||||
fd.write("nsPresContext* aPresContext, nsEvent* aEvent)\n");
|
fd.write("nsPresContext* aPresContext, mozilla::WidgetEvent* aEvent)\n");
|
||||||
fd.write(": %s(aOwner, aPresContext, aEvent)" % basename)
|
fd.write(": %s(aOwner, aPresContext, aEvent)" % basename)
|
||||||
for a in attributes:
|
for a in attributes:
|
||||||
fd.write(",\n m%s(%s)" % (firstCap(a.name), init_value(a)))
|
fd.write(",\n m%s(%s)" % (firstCap(a.name), init_value(a)))
|
||||||
@ -487,7 +487,7 @@ def write_cpp(eventname, iface, fd, conf):
|
|||||||
|
|
||||||
fd.write("nsresult\n")
|
fd.write("nsresult\n")
|
||||||
fd.write("NS_NewDOM%s(nsIDOMEvent** aInstance, " % eventname)
|
fd.write("NS_NewDOM%s(nsIDOMEvent** aInstance, " % eventname)
|
||||||
fd.write("mozilla::dom::EventTarget* aOwner, nsPresContext* aPresContext = nullptr, nsEvent* aEvent = nullptr)\n")
|
fd.write("mozilla::dom::EventTarget* aOwner, nsPresContext* aPresContext = nullptr, mozilla::WidgetEvent* aEvent = nullptr)\n")
|
||||||
fd.write("{\n")
|
fd.write("{\n")
|
||||||
fd.write(" mozilla::dom::%s* it = new mozilla::dom::%s(aOwner, aPresContext, aEvent);\n" % (classname, classname))
|
fd.write(" mozilla::dom::%s* it = new mozilla::dom::%s(aOwner, aPresContext, aEvent);\n" % (classname, classname))
|
||||||
fd.write(" return CallQueryInterface(it, aInstance);\n")
|
fd.write(" return CallQueryInterface(it, aInstance);\n")
|
||||||
|
904
widget/BasicEvents.h
Normal file
904
widget/BasicEvents.h
Normal file
@ -0,0 +1,904 @@
|
|||||||
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef mozilla_BasicEvents_h__
|
||||||
|
#define mozilla_BasicEvents_h__
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "mozilla/dom/EventTarget.h"
|
||||||
|
#include "nsCOMPtr.h"
|
||||||
|
#include "nsIAtom.h"
|
||||||
|
#include "nsIWidget.h"
|
||||||
|
#include "nsString.h"
|
||||||
|
#include "nsTraceRefcnt.h"
|
||||||
|
#include "Units.h"
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Event Struct Types
|
||||||
|
*
|
||||||
|
* TODO: Move it into mozilla namespace.
|
||||||
|
******************************************************************************/
|
||||||
|
enum nsEventStructType
|
||||||
|
{
|
||||||
|
// BasicEvents.h
|
||||||
|
NS_EVENT, // WidgetEvent
|
||||||
|
NS_GUI_EVENT, // WidgetGUIEvent
|
||||||
|
NS_INPUT_EVENT, // WidgetInputEvent
|
||||||
|
NS_UI_EVENT, // InternalUIEvent
|
||||||
|
|
||||||
|
// Mouse related events
|
||||||
|
NS_MOUSE_EVENT, // nsMouseEvent
|
||||||
|
NS_MOUSE_SCROLL_EVENT, // nsMouseScrollEvent
|
||||||
|
NS_DRAG_EVENT, // nsDragEvent
|
||||||
|
NS_WHEEL_EVENT, // WheelEvent
|
||||||
|
|
||||||
|
// Touchpad related events
|
||||||
|
NS_GESTURENOTIFY_EVENT, // nsGestureNotifyEvent
|
||||||
|
NS_SIMPLE_GESTURE_EVENT, // nsSimpleGestureEvent
|
||||||
|
NS_TOUCH_EVENT, // nsTouchEvent
|
||||||
|
|
||||||
|
// Key or IME events
|
||||||
|
NS_KEY_EVENT, // nsKeyEvent
|
||||||
|
NS_COMPOSITION_EVENT, // nsCompositionEvent
|
||||||
|
NS_TEXT_EVENT, // nsTextEvent
|
||||||
|
|
||||||
|
// IME related events
|
||||||
|
NS_QUERY_CONTENT_EVENT, // nsQueryContentEvent
|
||||||
|
NS_SELECTION_EVENT, // nsSelectionEvent
|
||||||
|
|
||||||
|
// Scroll related events
|
||||||
|
NS_SCROLLPORT_EVENT, // nsScrollPortEvent
|
||||||
|
NS_SCROLLAREA_EVENT, // nsScrollAreaEvent
|
||||||
|
|
||||||
|
// DOM events
|
||||||
|
NS_SCRIPT_ERROR_EVENT, // nsScriptErrorEvent
|
||||||
|
NS_MUTATION_EVENT, // nsMutationEvent
|
||||||
|
NS_FORM_EVENT, // nsFormEvent
|
||||||
|
NS_FOCUS_EVENT, // nsFocusEvent
|
||||||
|
NS_CLIPBOARD_EVENT, // nsClipboardEvent
|
||||||
|
|
||||||
|
// SVG events
|
||||||
|
NS_SVGZOOM_EVENT, // GUIEvent
|
||||||
|
NS_SMIL_TIME_EVENT, // UIEvent
|
||||||
|
|
||||||
|
// CSS events
|
||||||
|
NS_TRANSITION_EVENT, // nsTransitionEvent
|
||||||
|
NS_ANIMATION_EVENT, // nsAnimationEvent
|
||||||
|
|
||||||
|
// Command events
|
||||||
|
NS_COMMAND_EVENT, // nsCommandEvent
|
||||||
|
NS_CONTENT_COMMAND_EVENT, // nsContentCommandEvent
|
||||||
|
|
||||||
|
// Plugin event
|
||||||
|
NS_PLUGIN_EVENT // nsPluginEvent
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Messages
|
||||||
|
*
|
||||||
|
* TODO: Make them enum.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#define NS_EVENT_NULL 0
|
||||||
|
|
||||||
|
|
||||||
|
#define NS_WINDOW_START 100
|
||||||
|
|
||||||
|
// Widget may be destroyed
|
||||||
|
#define NS_XUL_CLOSE (NS_WINDOW_START + 1)
|
||||||
|
// Key is pressed within a window
|
||||||
|
#define NS_KEY_PRESS (NS_WINDOW_START + 31)
|
||||||
|
// Key is released within a window
|
||||||
|
#define NS_KEY_UP (NS_WINDOW_START + 32)
|
||||||
|
// Key is pressed within a window
|
||||||
|
#define NS_KEY_DOWN (NS_WINDOW_START + 33)
|
||||||
|
|
||||||
|
#define NS_RESIZE_EVENT (NS_WINDOW_START + 60)
|
||||||
|
#define NS_SCROLL_EVENT (NS_WINDOW_START + 61)
|
||||||
|
|
||||||
|
// A plugin was clicked or otherwise focused. NS_PLUGIN_ACTIVATE should be
|
||||||
|
// used when the window is not active. NS_PLUGIN_FOCUS should be used when
|
||||||
|
// the window is active. In the latter case, the dispatcher of the event
|
||||||
|
// is expected to ensure that the plugin's widget is focused beforehand.
|
||||||
|
#define NS_PLUGIN_ACTIVATE (NS_WINDOW_START + 62)
|
||||||
|
#define NS_PLUGIN_FOCUS (NS_WINDOW_START + 63)
|
||||||
|
|
||||||
|
#define NS_OFFLINE (NS_WINDOW_START + 64)
|
||||||
|
#define NS_ONLINE (NS_WINDOW_START + 65)
|
||||||
|
|
||||||
|
// Indicates a resize will occur
|
||||||
|
#define NS_BEFORERESIZE_EVENT (NS_WINDOW_START + 66)
|
||||||
|
|
||||||
|
// Indicates that the user is either idle or active
|
||||||
|
#define NS_MOZ_USER_IDLE (NS_WINDOW_START + 67)
|
||||||
|
#define NS_MOZ_USER_ACTIVE (NS_WINDOW_START + 68)
|
||||||
|
|
||||||
|
// The resolution at which a plugin should draw has changed, for
|
||||||
|
// example as the result of changing from a HiDPI mode to a non-
|
||||||
|
// HiDPI mode.
|
||||||
|
#define NS_PLUGIN_RESOLUTION_CHANGED (NS_WINDOW_START + 69)
|
||||||
|
|
||||||
|
#define NS_MOUSE_MESSAGE_START 300
|
||||||
|
#define NS_MOUSE_MOVE (NS_MOUSE_MESSAGE_START)
|
||||||
|
#define NS_MOUSE_BUTTON_UP (NS_MOUSE_MESSAGE_START + 1)
|
||||||
|
#define NS_MOUSE_BUTTON_DOWN (NS_MOUSE_MESSAGE_START + 2)
|
||||||
|
#define NS_MOUSE_ENTER (NS_MOUSE_MESSAGE_START + 22)
|
||||||
|
#define NS_MOUSE_EXIT (NS_MOUSE_MESSAGE_START + 23)
|
||||||
|
#define NS_MOUSE_DOUBLECLICK (NS_MOUSE_MESSAGE_START + 24)
|
||||||
|
#define NS_MOUSE_CLICK (NS_MOUSE_MESSAGE_START + 27)
|
||||||
|
#define NS_MOUSE_ACTIVATE (NS_MOUSE_MESSAGE_START + 30)
|
||||||
|
#define NS_MOUSE_ENTER_SYNTH (NS_MOUSE_MESSAGE_START + 31)
|
||||||
|
#define NS_MOUSE_EXIT_SYNTH (NS_MOUSE_MESSAGE_START + 32)
|
||||||
|
#define NS_MOUSE_MOZHITTEST (NS_MOUSE_MESSAGE_START + 33)
|
||||||
|
#define NS_MOUSEENTER (NS_MOUSE_MESSAGE_START + 34)
|
||||||
|
#define NS_MOUSELEAVE (NS_MOUSE_MESSAGE_START + 35)
|
||||||
|
|
||||||
|
#define NS_CONTEXTMENU_MESSAGE_START 500
|
||||||
|
#define NS_CONTEXTMENU (NS_CONTEXTMENU_MESSAGE_START)
|
||||||
|
|
||||||
|
#define NS_STREAM_EVENT_START 1100
|
||||||
|
#define NS_LOAD (NS_STREAM_EVENT_START)
|
||||||
|
#define NS_PAGE_UNLOAD (NS_STREAM_EVENT_START + 1)
|
||||||
|
#define NS_HASHCHANGE (NS_STREAM_EVENT_START + 2)
|
||||||
|
#define NS_IMAGE_ABORT (NS_STREAM_EVENT_START + 3)
|
||||||
|
#define NS_LOAD_ERROR (NS_STREAM_EVENT_START + 4)
|
||||||
|
#define NS_POPSTATE (NS_STREAM_EVENT_START + 5)
|
||||||
|
#define NS_BEFORE_PAGE_UNLOAD (NS_STREAM_EVENT_START + 6)
|
||||||
|
#define NS_PAGE_RESTORE (NS_STREAM_EVENT_START + 7)
|
||||||
|
#define NS_READYSTATECHANGE (NS_STREAM_EVENT_START + 8)
|
||||||
|
|
||||||
|
#define NS_FORM_EVENT_START 1200
|
||||||
|
#define NS_FORM_SUBMIT (NS_FORM_EVENT_START)
|
||||||
|
#define NS_FORM_RESET (NS_FORM_EVENT_START + 1)
|
||||||
|
#define NS_FORM_CHANGE (NS_FORM_EVENT_START + 2)
|
||||||
|
#define NS_FORM_SELECTED (NS_FORM_EVENT_START + 3)
|
||||||
|
#define NS_FORM_INPUT (NS_FORM_EVENT_START + 4)
|
||||||
|
#define NS_FORM_INVALID (NS_FORM_EVENT_START + 5)
|
||||||
|
|
||||||
|
//Need separate focus/blur notifications for non-native widgets
|
||||||
|
#define NS_FOCUS_EVENT_START 1300
|
||||||
|
#define NS_FOCUS_CONTENT (NS_FOCUS_EVENT_START)
|
||||||
|
#define NS_BLUR_CONTENT (NS_FOCUS_EVENT_START + 1)
|
||||||
|
|
||||||
|
#define NS_DRAGDROP_EVENT_START 1400
|
||||||
|
#define NS_DRAGDROP_ENTER (NS_DRAGDROP_EVENT_START)
|
||||||
|
#define NS_DRAGDROP_OVER (NS_DRAGDROP_EVENT_START + 1)
|
||||||
|
#define NS_DRAGDROP_EXIT (NS_DRAGDROP_EVENT_START + 2)
|
||||||
|
#define NS_DRAGDROP_DRAGDROP (NS_DRAGDROP_EVENT_START + 3)
|
||||||
|
#define NS_DRAGDROP_GESTURE (NS_DRAGDROP_EVENT_START + 4)
|
||||||
|
#define NS_DRAGDROP_DRAG (NS_DRAGDROP_EVENT_START + 5)
|
||||||
|
#define NS_DRAGDROP_END (NS_DRAGDROP_EVENT_START + 6)
|
||||||
|
#define NS_DRAGDROP_START (NS_DRAGDROP_EVENT_START + 7)
|
||||||
|
#define NS_DRAGDROP_DROP (NS_DRAGDROP_EVENT_START + 8)
|
||||||
|
#define NS_DRAGDROP_OVER_SYNTH (NS_DRAGDROP_EVENT_START + 1)
|
||||||
|
#define NS_DRAGDROP_EXIT_SYNTH (NS_DRAGDROP_EVENT_START + 2)
|
||||||
|
#define NS_DRAGDROP_LEAVE_SYNTH (NS_DRAGDROP_EVENT_START + 9)
|
||||||
|
|
||||||
|
// Events for popups
|
||||||
|
#define NS_XUL_EVENT_START 1500
|
||||||
|
#define NS_XUL_POPUP_SHOWING (NS_XUL_EVENT_START)
|
||||||
|
#define NS_XUL_POPUP_SHOWN (NS_XUL_EVENT_START+1)
|
||||||
|
#define NS_XUL_POPUP_HIDING (NS_XUL_EVENT_START+2)
|
||||||
|
#define NS_XUL_POPUP_HIDDEN (NS_XUL_EVENT_START+3)
|
||||||
|
// NS_XUL_COMMAND used to be here (NS_XUL_EVENT_START+4)
|
||||||
|
#define NS_XUL_BROADCAST (NS_XUL_EVENT_START+5)
|
||||||
|
#define NS_XUL_COMMAND_UPDATE (NS_XUL_EVENT_START+6)
|
||||||
|
//@}
|
||||||
|
|
||||||
|
// Scroll events
|
||||||
|
#define NS_MOUSE_SCROLL_START 1600
|
||||||
|
#define NS_MOUSE_SCROLL (NS_MOUSE_SCROLL_START)
|
||||||
|
#define NS_MOUSE_PIXEL_SCROLL (NS_MOUSE_SCROLL_START + 1)
|
||||||
|
|
||||||
|
#define NS_SCROLLPORT_START 1700
|
||||||
|
#define NS_SCROLLPORT_UNDERFLOW (NS_SCROLLPORT_START)
|
||||||
|
#define NS_SCROLLPORT_OVERFLOW (NS_SCROLLPORT_START+1)
|
||||||
|
|
||||||
|
// Mutation events defined elsewhere starting at 1800
|
||||||
|
|
||||||
|
#define NS_USER_DEFINED_EVENT 2000
|
||||||
|
|
||||||
|
// composition events
|
||||||
|
#define NS_COMPOSITION_EVENT_START 2200
|
||||||
|
#define NS_COMPOSITION_START (NS_COMPOSITION_EVENT_START)
|
||||||
|
#define NS_COMPOSITION_END (NS_COMPOSITION_EVENT_START + 1)
|
||||||
|
#define NS_COMPOSITION_UPDATE (NS_COMPOSITION_EVENT_START + 2)
|
||||||
|
|
||||||
|
// text events
|
||||||
|
#define NS_TEXT_START 2400
|
||||||
|
#define NS_TEXT_TEXT (NS_TEXT_START)
|
||||||
|
|
||||||
|
// UI events
|
||||||
|
#define NS_UI_EVENT_START 2500
|
||||||
|
// this is not to be confused with NS_ACTIVATE!
|
||||||
|
#define NS_UI_ACTIVATE (NS_UI_EVENT_START)
|
||||||
|
#define NS_UI_FOCUSIN (NS_UI_EVENT_START + 1)
|
||||||
|
#define NS_UI_FOCUSOUT (NS_UI_EVENT_START + 2)
|
||||||
|
|
||||||
|
// pagetransition events
|
||||||
|
#define NS_PAGETRANSITION_START 2700
|
||||||
|
#define NS_PAGE_SHOW (NS_PAGETRANSITION_START + 1)
|
||||||
|
#define NS_PAGE_HIDE (NS_PAGETRANSITION_START + 2)
|
||||||
|
|
||||||
|
// SVG events
|
||||||
|
#define NS_SVG_EVENT_START 2800
|
||||||
|
#define NS_SVG_LOAD (NS_SVG_EVENT_START)
|
||||||
|
#define NS_SVG_UNLOAD (NS_SVG_EVENT_START + 1)
|
||||||
|
#define NS_SVG_ABORT (NS_SVG_EVENT_START + 2)
|
||||||
|
#define NS_SVG_ERROR (NS_SVG_EVENT_START + 3)
|
||||||
|
#define NS_SVG_RESIZE (NS_SVG_EVENT_START + 4)
|
||||||
|
#define NS_SVG_SCROLL (NS_SVG_EVENT_START + 5)
|
||||||
|
|
||||||
|
// SVG Zoom events
|
||||||
|
#define NS_SVGZOOM_EVENT_START 2900
|
||||||
|
#define NS_SVG_ZOOM (NS_SVGZOOM_EVENT_START)
|
||||||
|
|
||||||
|
// XUL command events
|
||||||
|
#define NS_XULCOMMAND_EVENT_START 3000
|
||||||
|
#define NS_XUL_COMMAND (NS_XULCOMMAND_EVENT_START)
|
||||||
|
|
||||||
|
// Cut, copy, paste events
|
||||||
|
#define NS_CUTCOPYPASTE_EVENT_START 3100
|
||||||
|
#define NS_COPY (NS_CUTCOPYPASTE_EVENT_START)
|
||||||
|
#define NS_CUT (NS_CUTCOPYPASTE_EVENT_START + 1)
|
||||||
|
#define NS_PASTE (NS_CUTCOPYPASTE_EVENT_START + 2)
|
||||||
|
|
||||||
|
// Query the content information
|
||||||
|
#define NS_QUERY_CONTENT_EVENT_START 3200
|
||||||
|
// Query for the selected text information, it return the selection offset,
|
||||||
|
// selection length and selected text.
|
||||||
|
#define NS_QUERY_SELECTED_TEXT (NS_QUERY_CONTENT_EVENT_START)
|
||||||
|
// Query for the text content of specified range, it returns actual lengh (if
|
||||||
|
// the specified range is too long) and the text of the specified range.
|
||||||
|
// Returns the entire text if requested length > actual length.
|
||||||
|
#define NS_QUERY_TEXT_CONTENT (NS_QUERY_CONTENT_EVENT_START + 1)
|
||||||
|
// Query for the caret rect of nth insertion point. The offset of the result is
|
||||||
|
// relative position from the top level widget.
|
||||||
|
#define NS_QUERY_CARET_RECT (NS_QUERY_CONTENT_EVENT_START + 3)
|
||||||
|
// Query for the bounding rect of a range of characters. This works on any
|
||||||
|
// valid character range given offset and length. Result is relative to top
|
||||||
|
// level widget coordinates
|
||||||
|
#define NS_QUERY_TEXT_RECT (NS_QUERY_CONTENT_EVENT_START + 4)
|
||||||
|
// Query for the bounding rect of the current focused frame. Result is relative
|
||||||
|
// to top level widget coordinates
|
||||||
|
#define NS_QUERY_EDITOR_RECT (NS_QUERY_CONTENT_EVENT_START + 5)
|
||||||
|
// Query for the current state of the content. The particular members of
|
||||||
|
// mReply that are set for each query content event will be valid on success.
|
||||||
|
#define NS_QUERY_CONTENT_STATE (NS_QUERY_CONTENT_EVENT_START + 6)
|
||||||
|
// Query for the selection in the form of a nsITransferable.
|
||||||
|
#define NS_QUERY_SELECTION_AS_TRANSFERABLE (NS_QUERY_CONTENT_EVENT_START + 7)
|
||||||
|
// Query for character at a point. This returns the character offset and its
|
||||||
|
// rect. The point is specified by Event::refPoint.
|
||||||
|
#define NS_QUERY_CHARACTER_AT_POINT (NS_QUERY_CONTENT_EVENT_START + 8)
|
||||||
|
// Query if the DOM element under Event::refPoint belongs to our widget
|
||||||
|
// or not.
|
||||||
|
#define NS_QUERY_DOM_WIDGET_HITTEST (NS_QUERY_CONTENT_EVENT_START + 9)
|
||||||
|
|
||||||
|
// Video events
|
||||||
|
#define NS_MEDIA_EVENT_START 3300
|
||||||
|
#define NS_LOADSTART (NS_MEDIA_EVENT_START)
|
||||||
|
#define NS_PROGRESS (NS_MEDIA_EVENT_START+1)
|
||||||
|
#define NS_SUSPEND (NS_MEDIA_EVENT_START+2)
|
||||||
|
#define NS_EMPTIED (NS_MEDIA_EVENT_START+3)
|
||||||
|
#define NS_STALLED (NS_MEDIA_EVENT_START+4)
|
||||||
|
#define NS_PLAY (NS_MEDIA_EVENT_START+5)
|
||||||
|
#define NS_PAUSE (NS_MEDIA_EVENT_START+6)
|
||||||
|
#define NS_LOADEDMETADATA (NS_MEDIA_EVENT_START+7)
|
||||||
|
#define NS_LOADEDDATA (NS_MEDIA_EVENT_START+8)
|
||||||
|
#define NS_WAITING (NS_MEDIA_EVENT_START+9)
|
||||||
|
#define NS_PLAYING (NS_MEDIA_EVENT_START+10)
|
||||||
|
#define NS_CANPLAY (NS_MEDIA_EVENT_START+11)
|
||||||
|
#define NS_CANPLAYTHROUGH (NS_MEDIA_EVENT_START+12)
|
||||||
|
#define NS_SEEKING (NS_MEDIA_EVENT_START+13)
|
||||||
|
#define NS_SEEKED (NS_MEDIA_EVENT_START+14)
|
||||||
|
#define NS_TIMEUPDATE (NS_MEDIA_EVENT_START+15)
|
||||||
|
#define NS_ENDED (NS_MEDIA_EVENT_START+16)
|
||||||
|
#define NS_RATECHANGE (NS_MEDIA_EVENT_START+17)
|
||||||
|
#define NS_DURATIONCHANGE (NS_MEDIA_EVENT_START+18)
|
||||||
|
#define NS_VOLUMECHANGE (NS_MEDIA_EVENT_START+19)
|
||||||
|
#define NS_MOZAUDIOAVAILABLE (NS_MEDIA_EVENT_START+20)
|
||||||
|
|
||||||
|
// paint notification events
|
||||||
|
#define NS_NOTIFYPAINT_START 3400
|
||||||
|
#define NS_AFTERPAINT (NS_NOTIFYPAINT_START)
|
||||||
|
|
||||||
|
// Simple gesture events
|
||||||
|
#define NS_SIMPLE_GESTURE_EVENT_START 3500
|
||||||
|
#define NS_SIMPLE_GESTURE_SWIPE_START (NS_SIMPLE_GESTURE_EVENT_START)
|
||||||
|
#define NS_SIMPLE_GESTURE_SWIPE_UPDATE (NS_SIMPLE_GESTURE_EVENT_START+1)
|
||||||
|
#define NS_SIMPLE_GESTURE_SWIPE_END (NS_SIMPLE_GESTURE_EVENT_START+2)
|
||||||
|
#define NS_SIMPLE_GESTURE_SWIPE (NS_SIMPLE_GESTURE_EVENT_START+3)
|
||||||
|
#define NS_SIMPLE_GESTURE_MAGNIFY_START (NS_SIMPLE_GESTURE_EVENT_START+4)
|
||||||
|
#define NS_SIMPLE_GESTURE_MAGNIFY_UPDATE (NS_SIMPLE_GESTURE_EVENT_START+5)
|
||||||
|
#define NS_SIMPLE_GESTURE_MAGNIFY (NS_SIMPLE_GESTURE_EVENT_START+6)
|
||||||
|
#define NS_SIMPLE_GESTURE_ROTATE_START (NS_SIMPLE_GESTURE_EVENT_START+7)
|
||||||
|
#define NS_SIMPLE_GESTURE_ROTATE_UPDATE (NS_SIMPLE_GESTURE_EVENT_START+8)
|
||||||
|
#define NS_SIMPLE_GESTURE_ROTATE (NS_SIMPLE_GESTURE_EVENT_START+9)
|
||||||
|
#define NS_SIMPLE_GESTURE_TAP (NS_SIMPLE_GESTURE_EVENT_START+10)
|
||||||
|
#define NS_SIMPLE_GESTURE_PRESSTAP (NS_SIMPLE_GESTURE_EVENT_START+11)
|
||||||
|
#define NS_SIMPLE_GESTURE_EDGE_STARTED (NS_SIMPLE_GESTURE_EVENT_START+12)
|
||||||
|
#define NS_SIMPLE_GESTURE_EDGE_CANCELED (NS_SIMPLE_GESTURE_EVENT_START+13)
|
||||||
|
#define NS_SIMPLE_GESTURE_EDGE_COMPLETED (NS_SIMPLE_GESTURE_EVENT_START+14)
|
||||||
|
|
||||||
|
// These are used to send native events to plugins.
|
||||||
|
#define NS_PLUGIN_EVENT_START 3600
|
||||||
|
#define NS_PLUGIN_INPUT_EVENT (NS_PLUGIN_EVENT_START)
|
||||||
|
#define NS_PLUGIN_FOCUS_EVENT (NS_PLUGIN_EVENT_START+1)
|
||||||
|
|
||||||
|
// Events to manipulate selection (nsSelectionEvent)
|
||||||
|
#define NS_SELECTION_EVENT_START 3700
|
||||||
|
// Clear any previous selection and set the given range as the selection
|
||||||
|
#define NS_SELECTION_SET (NS_SELECTION_EVENT_START)
|
||||||
|
|
||||||
|
// Events of commands for the contents
|
||||||
|
#define NS_CONTENT_COMMAND_EVENT_START 3800
|
||||||
|
#define NS_CONTENT_COMMAND_CUT (NS_CONTENT_COMMAND_EVENT_START)
|
||||||
|
#define NS_CONTENT_COMMAND_COPY (NS_CONTENT_COMMAND_EVENT_START+1)
|
||||||
|
#define NS_CONTENT_COMMAND_PASTE (NS_CONTENT_COMMAND_EVENT_START+2)
|
||||||
|
#define NS_CONTENT_COMMAND_DELETE (NS_CONTENT_COMMAND_EVENT_START+3)
|
||||||
|
#define NS_CONTENT_COMMAND_UNDO (NS_CONTENT_COMMAND_EVENT_START+4)
|
||||||
|
#define NS_CONTENT_COMMAND_REDO (NS_CONTENT_COMMAND_EVENT_START+5)
|
||||||
|
#define NS_CONTENT_COMMAND_PASTE_TRANSFERABLE (NS_CONTENT_COMMAND_EVENT_START+6)
|
||||||
|
// NS_CONTENT_COMMAND_SCROLL scrolls the nearest scrollable element to the
|
||||||
|
// currently focused content or latest DOM selection. This would normally be
|
||||||
|
// the same element scrolled by keyboard scroll commands, except that this event
|
||||||
|
// will scroll an element scrollable in either direction. I.e., if the nearest
|
||||||
|
// scrollable ancestor element can only be scrolled vertically, and horizontal
|
||||||
|
// scrolling is requested using this event, no scrolling will occur.
|
||||||
|
#define NS_CONTENT_COMMAND_SCROLL (NS_CONTENT_COMMAND_EVENT_START+7)
|
||||||
|
|
||||||
|
// Event to gesture notification
|
||||||
|
#define NS_GESTURENOTIFY_EVENT_START 3900
|
||||||
|
|
||||||
|
#define NS_ORIENTATION_EVENT 4000
|
||||||
|
|
||||||
|
#define NS_SCROLLAREA_EVENT_START 4100
|
||||||
|
#define NS_SCROLLEDAREACHANGED (NS_SCROLLAREA_EVENT_START)
|
||||||
|
|
||||||
|
#define NS_TRANSITION_EVENT_START 4200
|
||||||
|
#define NS_TRANSITION_END (NS_TRANSITION_EVENT_START)
|
||||||
|
|
||||||
|
#define NS_ANIMATION_EVENT_START 4250
|
||||||
|
#define NS_ANIMATION_START (NS_ANIMATION_EVENT_START)
|
||||||
|
#define NS_ANIMATION_END (NS_ANIMATION_EVENT_START + 1)
|
||||||
|
#define NS_ANIMATION_ITERATION (NS_ANIMATION_EVENT_START + 2)
|
||||||
|
|
||||||
|
#define NS_SMIL_TIME_EVENT_START 4300
|
||||||
|
#define NS_SMIL_BEGIN (NS_SMIL_TIME_EVENT_START)
|
||||||
|
#define NS_SMIL_END (NS_SMIL_TIME_EVENT_START + 1)
|
||||||
|
#define NS_SMIL_REPEAT (NS_SMIL_TIME_EVENT_START + 2)
|
||||||
|
|
||||||
|
#define NS_WEBAUDIO_EVENT_START 4350
|
||||||
|
#define NS_AUDIO_PROCESS (NS_WEBAUDIO_EVENT_START)
|
||||||
|
#define NS_AUDIO_COMPLETE (NS_WEBAUDIO_EVENT_START + 1)
|
||||||
|
|
||||||
|
// script notification events
|
||||||
|
#define NS_NOTIFYSCRIPT_START 4500
|
||||||
|
#define NS_BEFORE_SCRIPT_EXECUTE (NS_NOTIFYSCRIPT_START)
|
||||||
|
#define NS_AFTER_SCRIPT_EXECUTE (NS_NOTIFYSCRIPT_START+1)
|
||||||
|
|
||||||
|
#define NS_PRINT_EVENT_START 4600
|
||||||
|
#define NS_BEFOREPRINT (NS_PRINT_EVENT_START)
|
||||||
|
#define NS_AFTERPRINT (NS_PRINT_EVENT_START + 1)
|
||||||
|
|
||||||
|
#define NS_MESSAGE_EVENT_START 4700
|
||||||
|
#define NS_MESSAGE (NS_MESSAGE_EVENT_START)
|
||||||
|
|
||||||
|
// Open and close events
|
||||||
|
#define NS_OPENCLOSE_EVENT_START 4800
|
||||||
|
#define NS_OPEN (NS_OPENCLOSE_EVENT_START)
|
||||||
|
#define NS_CLOSE (NS_OPENCLOSE_EVENT_START+1)
|
||||||
|
|
||||||
|
// Device motion and orientation
|
||||||
|
#define NS_DEVICE_ORIENTATION_START 4900
|
||||||
|
#define NS_DEVICE_ORIENTATION (NS_DEVICE_ORIENTATION_START)
|
||||||
|
#define NS_DEVICE_MOTION (NS_DEVICE_ORIENTATION_START+1)
|
||||||
|
#define NS_DEVICE_PROXIMITY (NS_DEVICE_ORIENTATION_START+2)
|
||||||
|
#define NS_USER_PROXIMITY (NS_DEVICE_ORIENTATION_START+3)
|
||||||
|
#define NS_DEVICE_LIGHT (NS_DEVICE_ORIENTATION_START+4)
|
||||||
|
|
||||||
|
#define NS_SHOW_EVENT 5000
|
||||||
|
|
||||||
|
// Fullscreen DOM API
|
||||||
|
#define NS_FULL_SCREEN_START 5100
|
||||||
|
#define NS_FULLSCREENCHANGE (NS_FULL_SCREEN_START)
|
||||||
|
#define NS_FULLSCREENERROR (NS_FULL_SCREEN_START + 1)
|
||||||
|
|
||||||
|
#define NS_TOUCH_EVENT_START 5200
|
||||||
|
#define NS_TOUCH_START (NS_TOUCH_EVENT_START)
|
||||||
|
#define NS_TOUCH_MOVE (NS_TOUCH_EVENT_START+1)
|
||||||
|
#define NS_TOUCH_END (NS_TOUCH_EVENT_START+2)
|
||||||
|
#define NS_TOUCH_ENTER (NS_TOUCH_EVENT_START+3)
|
||||||
|
#define NS_TOUCH_LEAVE (NS_TOUCH_EVENT_START+4)
|
||||||
|
#define NS_TOUCH_CANCEL (NS_TOUCH_EVENT_START+5)
|
||||||
|
|
||||||
|
// Pointerlock DOM API
|
||||||
|
#define NS_POINTERLOCK_START 5300
|
||||||
|
#define NS_POINTERLOCKCHANGE (NS_POINTERLOCK_START)
|
||||||
|
#define NS_POINTERLOCKERROR (NS_POINTERLOCK_START + 1)
|
||||||
|
|
||||||
|
#define NS_WHEEL_EVENT_START 5400
|
||||||
|
#define NS_WHEEL_WHEEL (NS_WHEEL_EVENT_START)
|
||||||
|
|
||||||
|
//System time is changed
|
||||||
|
#define NS_MOZ_TIME_CHANGE_EVENT 5500
|
||||||
|
|
||||||
|
// Network packet events.
|
||||||
|
#define NS_NETWORK_EVENT_START 5600
|
||||||
|
#define NS_NETWORK_UPLOAD_EVENT (NS_NETWORK_EVENT_START + 1)
|
||||||
|
#define NS_NETWORK_DOWNLOAD_EVENT (NS_NETWORK_EVENT_START + 2)
|
||||||
|
|
||||||
|
// MediaRecorder events.
|
||||||
|
#define NS_MEDIARECORDER_EVENT_START 5700
|
||||||
|
#define NS_MEDIARECORDER_DATAAVAILABLE (NS_MEDIARECORDER_EVENT_START + 1)
|
||||||
|
#define NS_MEDIARECORDER_WARNING (NS_MEDIARECORDER_EVENT_START + 2)
|
||||||
|
#define NS_MEDIARECORDER_STOP (NS_MEDIARECORDER_EVENT_START + 3)
|
||||||
|
|
||||||
|
#ifdef MOZ_GAMEPAD
|
||||||
|
// Gamepad input events
|
||||||
|
#define NS_GAMEPAD_START 6000
|
||||||
|
#define NS_GAMEPAD_BUTTONDOWN (NS_GAMEPAD_START)
|
||||||
|
#define NS_GAMEPAD_BUTTONUP (NS_GAMEPAD_START+1)
|
||||||
|
#define NS_GAMEPAD_AXISMOVE (NS_GAMEPAD_START+2)
|
||||||
|
#define NS_GAMEPAD_CONNECTED (NS_GAMEPAD_START+3)
|
||||||
|
#define NS_GAMEPAD_DISCONNECTED (NS_GAMEPAD_START+4)
|
||||||
|
// Keep this defined to the same value as the event above
|
||||||
|
#define NS_GAMEPAD_END (NS_GAMEPAD_START+4)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::BaseEventFlags
|
||||||
|
*
|
||||||
|
* BaseEventFlags must be a POD struct for safe to use memcpy (including
|
||||||
|
* in ParamTraits<BaseEventFlags>). So don't make virtual methods, constructor,
|
||||||
|
* destructor and operators.
|
||||||
|
* This is necessary for VC which is NOT C++0x compiler.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
struct BaseEventFlags
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// If mIsTrusted is true, the event is a trusted event. Otherwise, it's
|
||||||
|
// an untrusted event.
|
||||||
|
bool mIsTrusted : 1;
|
||||||
|
// If mInBubblingPhase is true, the event is in bubbling phase or target
|
||||||
|
// phase.
|
||||||
|
bool mInBubblingPhase : 1;
|
||||||
|
// If mInCapturePhase is true, the event is in capture phase or target phase.
|
||||||
|
bool mInCapturePhase : 1;
|
||||||
|
// If mInSystemGroup is true, the event is being dispatched in system group.
|
||||||
|
bool mInSystemGroup: 1;
|
||||||
|
// If mCancelable is true, the event can be consumed. I.e., calling
|
||||||
|
// nsDOMEvent::PreventDefault() can prevent the default action.
|
||||||
|
bool mCancelable : 1;
|
||||||
|
// If mBubbles is true, the event can bubble. Otherwise, cannot be handled
|
||||||
|
// in bubbling phase.
|
||||||
|
bool mBubbles : 1;
|
||||||
|
// If mPropagationStopped is true, nsDOMEvent::StopPropagation() or
|
||||||
|
// nsDOMEvent::StopImmediatePropagation() has been called.
|
||||||
|
bool mPropagationStopped : 1;
|
||||||
|
// If mImmediatePropagationStopped is true,
|
||||||
|
// nsDOMEvent::StopImmediatePropagation() has been called.
|
||||||
|
// Note that mPropagationStopped must be true when this is true.
|
||||||
|
bool mImmediatePropagationStopped : 1;
|
||||||
|
// If mDefaultPrevented is true, the event has been consumed.
|
||||||
|
// E.g., nsDOMEvent::PreventDefault() has been called or
|
||||||
|
// the default action has been performed.
|
||||||
|
bool mDefaultPrevented : 1;
|
||||||
|
// If mDefaultPreventedByContent is true, the event has been
|
||||||
|
// consumed by content.
|
||||||
|
// Note that mDefaultPrevented must be true when this is true.
|
||||||
|
bool mDefaultPreventedByContent : 1;
|
||||||
|
// mMultipleActionsPrevented may be used when default handling don't want to
|
||||||
|
// be prevented, but only one of the event targets should handle the event.
|
||||||
|
// For example, when a <label> element is in another <label> element and
|
||||||
|
// the first <label> element is clicked, that one may set this true.
|
||||||
|
// Then, the second <label> element won't handle the event.
|
||||||
|
bool mMultipleActionsPrevented : 1;
|
||||||
|
// If mIsBeingDispatched is true, the DOM event created from the event is
|
||||||
|
// dispatching into the DOM tree and not completed.
|
||||||
|
bool mIsBeingDispatched : 1;
|
||||||
|
// If mDispatchedAtLeastOnce is true, the event has been dispatched
|
||||||
|
// as a DOM event and the dispatch has been completed.
|
||||||
|
bool mDispatchedAtLeastOnce : 1;
|
||||||
|
// If mIsSynthesizedForTests is true, the event has been synthesized for
|
||||||
|
// automated tests or something hacky approach of an add-on.
|
||||||
|
bool mIsSynthesizedForTests : 1;
|
||||||
|
// If mExceptionHasBeenRisen is true, one of the event handlers has risen an
|
||||||
|
// exception.
|
||||||
|
bool mExceptionHasBeenRisen : 1;
|
||||||
|
// If mRetargetToNonNativeAnonymous is true and the target is in a non-native
|
||||||
|
// native anonymous subtree, the event target is set to originalTarget.
|
||||||
|
bool mRetargetToNonNativeAnonymous : 1;
|
||||||
|
// If mNoCrossProcessBoundaryForwarding is true, the event is not allowed to
|
||||||
|
// cross process boundary.
|
||||||
|
bool mNoCrossProcessBoundaryForwarding : 1;
|
||||||
|
// If mNoContentDispatch is true, the event is never dispatched to the
|
||||||
|
// event handlers which are added to the contents, onfoo attributes and
|
||||||
|
// properties. Note that this flag is ignored when
|
||||||
|
// nsEventChainPreVisitor::mForceContentDispatch is set true. For exapmle,
|
||||||
|
// window and document object sets it true. Therefore, web applications
|
||||||
|
// can handle the event if they add event listeners to the window or the
|
||||||
|
// document.
|
||||||
|
bool mNoContentDispatch : 1;
|
||||||
|
// If mOnlyChromeDispatch is true, the event is dispatched to only chrome.
|
||||||
|
bool mOnlyChromeDispatch : 1;
|
||||||
|
|
||||||
|
// If the event is being handled in target phase, returns true.
|
||||||
|
inline bool InTargetPhase() const
|
||||||
|
{
|
||||||
|
return (mInBubblingPhase && mInCapturePhase);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Clear()
|
||||||
|
{
|
||||||
|
SetRawFlags(0);
|
||||||
|
}
|
||||||
|
// Get if either the instance's bit or the aOther's bit is true, the
|
||||||
|
// instance's bit becomes true. In other words, this works like:
|
||||||
|
// eventFlags |= aOther;
|
||||||
|
inline void Union(const BaseEventFlags& aOther)
|
||||||
|
{
|
||||||
|
RawFlags rawFlags = GetRawFlags() | aOther.GetRawFlags();
|
||||||
|
SetRawFlags(rawFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
typedef uint32_t RawFlags;
|
||||||
|
|
||||||
|
inline void SetRawFlags(RawFlags aRawFlags)
|
||||||
|
{
|
||||||
|
static_assert(sizeof(BaseEventFlags) <= sizeof(RawFlags),
|
||||||
|
"mozilla::EventFlags must not be bigger than the RawFlags");
|
||||||
|
memcpy(this, &aRawFlags, sizeof(BaseEventFlags));
|
||||||
|
}
|
||||||
|
inline RawFlags GetRawFlags() const
|
||||||
|
{
|
||||||
|
RawFlags result = 0;
|
||||||
|
memcpy(&result, this, sizeof(BaseEventFlags));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::EventFlags
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
struct EventFlags : public BaseEventFlags
|
||||||
|
{
|
||||||
|
EventFlags()
|
||||||
|
{
|
||||||
|
Clear();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::WidgetEvent
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
class WidgetEvent
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
WidgetEvent(bool aIsTrusted, uint32_t aMessage,
|
||||||
|
nsEventStructType aStructType) :
|
||||||
|
eventStructType(aStructType), message(aMessage), refPoint(0, 0),
|
||||||
|
lastRefPoint(0, 0), time(0), userType(0)
|
||||||
|
{
|
||||||
|
MOZ_COUNT_CTOR(WidgetEvent);
|
||||||
|
mFlags.Clear();
|
||||||
|
mFlags.mIsTrusted = aIsTrusted;
|
||||||
|
mFlags.mCancelable = true;
|
||||||
|
mFlags.mBubbles = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
WidgetEvent()
|
||||||
|
{
|
||||||
|
MOZ_COUNT_CTOR(WidgetEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
WidgetEvent(bool aIsTrusted, uint32_t aMessage) :
|
||||||
|
eventStructType(NS_EVENT), message(aMessage), refPoint(0, 0),
|
||||||
|
lastRefPoint(0, 0), time(0), userType(0)
|
||||||
|
{
|
||||||
|
MOZ_COUNT_CTOR(WidgetEvent);
|
||||||
|
mFlags.Clear();
|
||||||
|
mFlags.mIsTrusted = aIsTrusted;
|
||||||
|
mFlags.mCancelable = true;
|
||||||
|
mFlags.mBubbles = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
~WidgetEvent()
|
||||||
|
{
|
||||||
|
MOZ_COUNT_DTOR(WidgetEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
WidgetEvent(const WidgetEvent& aOther)
|
||||||
|
{
|
||||||
|
MOZ_COUNT_CTOR(WidgetEvent);
|
||||||
|
*this = aOther;
|
||||||
|
}
|
||||||
|
|
||||||
|
// See event struct types
|
||||||
|
nsEventStructType eventStructType;
|
||||||
|
// See GUI MESSAGES,
|
||||||
|
uint32_t message;
|
||||||
|
// Relative to the widget of the event, or if there is no widget then it is
|
||||||
|
// in screen coordinates. Not modified by layout code.
|
||||||
|
LayoutDeviceIntPoint refPoint;
|
||||||
|
// The previous refPoint, if known, used to calculate mouse movement deltas.
|
||||||
|
LayoutDeviceIntPoint lastRefPoint;
|
||||||
|
// Elapsed time, in milliseconds, from a platform-specific zero time
|
||||||
|
// to the time the message was created
|
||||||
|
uint64_t time;
|
||||||
|
// See BaseEventFlags definition for the detail.
|
||||||
|
BaseEventFlags mFlags;
|
||||||
|
|
||||||
|
// Additional type info for user defined events
|
||||||
|
nsCOMPtr<nsIAtom> userType;
|
||||||
|
|
||||||
|
nsString typeString; // always set on non-main-thread events
|
||||||
|
|
||||||
|
// Event targets, needed by DOM Events
|
||||||
|
nsCOMPtr<dom::EventTarget> target;
|
||||||
|
nsCOMPtr<dom::EventTarget> currentTarget;
|
||||||
|
nsCOMPtr<dom::EventTarget> originalTarget;
|
||||||
|
|
||||||
|
void AssignEventData(const WidgetEvent& aEvent, bool aCopyTargets)
|
||||||
|
{
|
||||||
|
// eventStructType, message should be initialized with the constructor.
|
||||||
|
refPoint = aEvent.refPoint;
|
||||||
|
// lastRefPoint doesn't need to be copied.
|
||||||
|
time = aEvent.time;
|
||||||
|
// mFlags should be copied manually if it's necessary.
|
||||||
|
userType = aEvent.userType;
|
||||||
|
// typeString should be copied manually if it's necessary.
|
||||||
|
target = aCopyTargets ? aEvent.target : nullptr;
|
||||||
|
currentTarget = aCopyTargets ? aEvent.currentTarget : nullptr;
|
||||||
|
originalTarget = aCopyTargets ? aEvent.originalTarget : nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::WidgetGUIEvent
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
class WidgetGUIEvent : public WidgetEvent
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
WidgetGUIEvent(bool aIsTrusted, uint32_t aMessage, nsIWidget* aWidget,
|
||||||
|
nsEventStructType aStructType) :
|
||||||
|
WidgetEvent(aIsTrusted, aMessage, aStructType),
|
||||||
|
widget(aWidget), pluginEvent(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
WidgetGUIEvent() :
|
||||||
|
pluginEvent(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
WidgetGUIEvent(bool aIsTrusted, uint32_t aMessage, nsIWidget* aWidget) :
|
||||||
|
WidgetEvent(aIsTrusted, aMessage, NS_GUI_EVENT),
|
||||||
|
widget(aWidget), pluginEvent(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Originator of the event
|
||||||
|
nsCOMPtr<nsIWidget> widget;
|
||||||
|
|
||||||
|
/// Event for NPAPI plugin
|
||||||
|
void* pluginEvent;
|
||||||
|
|
||||||
|
void AssignGUIEventData(const WidgetGUIEvent& aEvent, bool aCopyTargets)
|
||||||
|
{
|
||||||
|
AssignEventData(aEvent, aCopyTargets);
|
||||||
|
|
||||||
|
// widget should be initialized with the constructor.
|
||||||
|
|
||||||
|
// pluginEvent shouldn't be copied because it may be referred after its
|
||||||
|
// instance is destroyed.
|
||||||
|
pluginEvent = nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::Modifier
|
||||||
|
*
|
||||||
|
* All modifier keys should be defined here. This is used for managing
|
||||||
|
* modifier states for DOM Level 3 or later.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
enum Modifier
|
||||||
|
{
|
||||||
|
MODIFIER_ALT = 0x0001,
|
||||||
|
MODIFIER_ALTGRAPH = 0x0002,
|
||||||
|
MODIFIER_CAPSLOCK = 0x0004,
|
||||||
|
MODIFIER_CONTROL = 0x0008,
|
||||||
|
MODIFIER_FN = 0x0010,
|
||||||
|
MODIFIER_META = 0x0020,
|
||||||
|
MODIFIER_NUMLOCK = 0x0040,
|
||||||
|
MODIFIER_SCROLLLOCK = 0x0080,
|
||||||
|
MODIFIER_SHIFT = 0x0100,
|
||||||
|
MODIFIER_SYMBOLLOCK = 0x0200,
|
||||||
|
MODIFIER_OS = 0x0400
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Modifier key names.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#define NS_DOM_KEYNAME_ALT "Alt"
|
||||||
|
#define NS_DOM_KEYNAME_ALTGRAPH "AltGraph"
|
||||||
|
#define NS_DOM_KEYNAME_CAPSLOCK "CapsLock"
|
||||||
|
#define NS_DOM_KEYNAME_CONTROL "Control"
|
||||||
|
#define NS_DOM_KEYNAME_FN "Fn"
|
||||||
|
#define NS_DOM_KEYNAME_META "Meta"
|
||||||
|
#define NS_DOM_KEYNAME_NUMLOCK "NumLock"
|
||||||
|
#define NS_DOM_KEYNAME_SCROLLLOCK "ScrollLock"
|
||||||
|
#define NS_DOM_KEYNAME_SHIFT "Shift"
|
||||||
|
#define NS_DOM_KEYNAME_SYMBOLLOCK "SymbolLock"
|
||||||
|
#define NS_DOM_KEYNAME_OS "OS"
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::Modifiers
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
typedef uint16_t Modifiers;
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::WidgetInputEvent
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
class WidgetInputEvent : public WidgetGUIEvent
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
WidgetInputEvent(bool aIsTrusted, uint32_t aMessage, nsIWidget* aWidget,
|
||||||
|
nsEventStructType aStructType) :
|
||||||
|
WidgetGUIEvent(aIsTrusted, aMessage, aWidget, aStructType),
|
||||||
|
modifiers(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
WidgetInputEvent()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
WidgetInputEvent(bool aIsTrusted, uint32_t aMessage, nsIWidget* aWidget) :
|
||||||
|
WidgetGUIEvent(aIsTrusted, aMessage, aWidget, NS_INPUT_EVENT),
|
||||||
|
modifiers(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// true indicates the shift key is down
|
||||||
|
bool IsShift() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_SHIFT) != 0);
|
||||||
|
}
|
||||||
|
// true indicates the control key is down
|
||||||
|
bool IsControl() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_CONTROL) != 0);
|
||||||
|
}
|
||||||
|
// true indicates the alt key is down
|
||||||
|
bool IsAlt() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_ALT) != 0);
|
||||||
|
}
|
||||||
|
// true indicates the meta key is down (or, on Mac, the Command key)
|
||||||
|
bool IsMeta() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_META) != 0);
|
||||||
|
}
|
||||||
|
// true indicates the win key is down on Windows. Or the Super or Hyper key
|
||||||
|
// is down on Linux.
|
||||||
|
bool IsOS() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_OS) != 0);
|
||||||
|
}
|
||||||
|
// true indicates the alt graph key is down
|
||||||
|
// NOTE: on Mac, the option key press causes both IsAlt() and IsAltGrpah()
|
||||||
|
// return true.
|
||||||
|
bool IsAltGraph() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_ALTGRAPH) != 0);
|
||||||
|
}
|
||||||
|
// true indeicates the CapLock LED is turn on.
|
||||||
|
bool IsCapsLocked() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_CAPSLOCK) != 0);
|
||||||
|
}
|
||||||
|
// true indeicates the NumLock LED is turn on.
|
||||||
|
bool IsNumLocked() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_NUMLOCK) != 0);
|
||||||
|
}
|
||||||
|
// true indeicates the ScrollLock LED is turn on.
|
||||||
|
bool IsScrollLocked() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_SCROLLLOCK) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// true indeicates the Fn key is down, but this is not supported by native
|
||||||
|
// key event on any platform.
|
||||||
|
bool IsFn() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_FN) != 0);
|
||||||
|
}
|
||||||
|
// true indeicates the ScrollLock LED is turn on.
|
||||||
|
bool IsSymbolLocked() const
|
||||||
|
{
|
||||||
|
return ((modifiers & MODIFIER_SYMBOLLOCK) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitBasicModifiers(bool aCtrlKey,
|
||||||
|
bool aAltKey,
|
||||||
|
bool aShiftKey,
|
||||||
|
bool aMetaKey)
|
||||||
|
{
|
||||||
|
modifiers = 0;
|
||||||
|
if (aCtrlKey) {
|
||||||
|
modifiers |= MODIFIER_CONTROL;
|
||||||
|
}
|
||||||
|
if (aAltKey) {
|
||||||
|
modifiers |= MODIFIER_ALT;
|
||||||
|
}
|
||||||
|
if (aShiftKey) {
|
||||||
|
modifiers |= MODIFIER_SHIFT;
|
||||||
|
}
|
||||||
|
if (aMetaKey) {
|
||||||
|
modifiers |= MODIFIER_META;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Modifiers modifiers;
|
||||||
|
|
||||||
|
void AssignInputEventData(const WidgetInputEvent& aEvent, bool aCopyTargets)
|
||||||
|
{
|
||||||
|
AssignGUIEventData(aEvent, aCopyTargets);
|
||||||
|
|
||||||
|
modifiers = aEvent.modifiers;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* mozilla::InternalUIEvent
|
||||||
|
*
|
||||||
|
* XXX Why this inherits WidgetGUIEvent rather than WidgetEvent?
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
class InternalUIEvent : public WidgetGUIEvent
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
InternalUIEvent(bool aIsTrusted, uint32_t aMessage, int32_t aDetail) :
|
||||||
|
WidgetGUIEvent(aIsTrusted, aMessage, nullptr, NS_UI_EVENT),
|
||||||
|
detail(aDetail)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t detail;
|
||||||
|
|
||||||
|
void AssignUIEventData(const InternalUIEvent& aEvent, bool aCopyTargets)
|
||||||
|
{
|
||||||
|
AssignGUIEventData(aEvent, aCopyTargets);
|
||||||
|
|
||||||
|
// detail must have been initialized with the constructor.
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
// TODO: Remove following typedefs
|
||||||
|
typedef mozilla::WidgetEvent nsEvent;
|
||||||
|
typedef mozilla::WidgetGUIEvent nsGUIEvent;
|
||||||
|
typedef mozilla::WidgetInputEvent nsInputEvent;
|
||||||
|
typedef mozilla::InternalUIEvent nsUIEvent;
|
||||||
|
|
||||||
|
#endif // mozilla_BasicEvents_h__
|
@ -28,25 +28,6 @@ enum nsEventStatus
|
|||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
/**
|
|
||||||
* All modifier keys should be defined here. This is used for managing
|
|
||||||
* modifier states for DOM Level 3 or later.
|
|
||||||
*/
|
|
||||||
enum Modifier
|
|
||||||
{
|
|
||||||
MODIFIER_ALT = 0x0001,
|
|
||||||
MODIFIER_ALTGRAPH = 0x0002,
|
|
||||||
MODIFIER_CAPSLOCK = 0x0004,
|
|
||||||
MODIFIER_CONTROL = 0x0008,
|
|
||||||
MODIFIER_FN = 0x0010,
|
|
||||||
MODIFIER_META = 0x0020,
|
|
||||||
MODIFIER_NUMLOCK = 0x0040,
|
|
||||||
MODIFIER_SCROLLLOCK = 0x0080,
|
|
||||||
MODIFIER_SHIFT = 0x0100,
|
|
||||||
MODIFIER_SYMBOLLOCK = 0x0200,
|
|
||||||
MODIFIER_OS = 0x0400
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef uint16_t Modifiers;
|
typedef uint16_t Modifiers;
|
||||||
|
|
||||||
#define NS_DEFINE_KEYNAME(aCPPName, aDOMKeyName) \
|
#define NS_DEFINE_KEYNAME(aCPPName, aDOMKeyName) \
|
||||||
@ -71,12 +52,12 @@ enum KeyNameIndex
|
|||||||
// BasicEvents.h
|
// BasicEvents.h
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
struct EventFlags;
|
struct EventFlags;
|
||||||
} // namespace mozilla
|
|
||||||
|
|
||||||
class nsEvent;
|
class WidgetEvent;
|
||||||
class nsGUIEvent;
|
class WidgetGUIEvent;
|
||||||
class nsInputEvent;
|
class WidgetInputEvent;
|
||||||
class nsUIEvent;
|
class InternalUIEvent;
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
// TextEvents.h
|
// TextEvents.h
|
||||||
struct nsAlternativeCharCode;
|
struct nsAlternativeCharCode;
|
||||||
@ -122,4 +103,10 @@ class nsPluginEvent;
|
|||||||
// content/events/public/nsMutationEvent.h
|
// content/events/public/nsMutationEvent.h
|
||||||
class nsMutationEvent;
|
class nsMutationEvent;
|
||||||
|
|
||||||
|
// TODO: Remove following typedefs
|
||||||
|
typedef mozilla::WidgetEvent nsEvent;
|
||||||
|
typedef mozilla::WidgetGUIEvent nsGUIEvent;
|
||||||
|
typedef mozilla::WidgetInputEvent nsInputEvent;
|
||||||
|
typedef mozilla::InternalUIEvent nsUIEvent;
|
||||||
|
|
||||||
#endif // mozilla_EventForwards_h__
|
#endif // mozilla_EventForwards_h__
|
||||||
|
@ -111,6 +111,7 @@ EXPORTS += [
|
|||||||
]
|
]
|
||||||
|
|
||||||
EXPORTS.mozilla += [
|
EXPORTS.mozilla += [
|
||||||
|
'BasicEvents.h',
|
||||||
'EventForwards.h',
|
'EventForwards.h',
|
||||||
'LookAndFeel.h',
|
'LookAndFeel.h',
|
||||||
'WidgetUtils.h',
|
'WidgetUtils.h',
|
||||||
|
@ -6,28 +6,21 @@
|
|||||||
#ifndef nsGUIEvent_h__
|
#ifndef nsGUIEvent_h__
|
||||||
#define nsGUIEvent_h__
|
#define nsGUIEvent_h__
|
||||||
|
|
||||||
|
#include "mozilla/BasicEvents.h"
|
||||||
#include "mozilla/MathAlgorithms.h"
|
#include "mozilla/MathAlgorithms.h"
|
||||||
|
|
||||||
#include "nsPoint.h"
|
#include "nsPoint.h"
|
||||||
#include "nsRect.h"
|
#include "nsRect.h"
|
||||||
#include "nsString.h"
|
|
||||||
#include "nsCOMPtr.h"
|
|
||||||
#include "nsIAtom.h"
|
|
||||||
#include "nsIDOMKeyEvent.h"
|
#include "nsIDOMKeyEvent.h"
|
||||||
#include "nsIDOMMouseEvent.h"
|
#include "nsIDOMMouseEvent.h"
|
||||||
#include "nsIDOMWheelEvent.h"
|
#include "nsIDOMWheelEvent.h"
|
||||||
#include "nsIDOMDataTransfer.h"
|
#include "nsIDOMDataTransfer.h"
|
||||||
#include "nsWeakPtr.h"
|
#include "nsWeakPtr.h"
|
||||||
#include "nsIWidget.h"
|
|
||||||
#include "nsTArray.h"
|
#include "nsTArray.h"
|
||||||
#include "nsTraceRefcnt.h"
|
|
||||||
#include "nsITransferable.h"
|
#include "nsITransferable.h"
|
||||||
#include "nsStyleConsts.h"
|
#include "nsStyleConsts.h"
|
||||||
#include "nsAutoPtr.h"
|
#include "nsAutoPtr.h"
|
||||||
#include "mozilla/EventForwards.h"
|
|
||||||
#include "mozilla/dom/EventTarget.h"
|
|
||||||
#include "mozilla/dom/Touch.h"
|
#include "mozilla/dom/Touch.h"
|
||||||
#include "Units.h"
|
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace dom {
|
namespace dom {
|
||||||
@ -45,711 +38,9 @@ class nsIContent;
|
|||||||
class nsIURI;
|
class nsIURI;
|
||||||
class nsHashKey;
|
class nsHashKey;
|
||||||
|
|
||||||
/**
|
|
||||||
* Event Struct Types
|
|
||||||
*/
|
|
||||||
enum nsEventStructType {
|
|
||||||
// Generic events
|
|
||||||
NS_EVENT, // nsEvent
|
|
||||||
NS_GUI_EVENT, // nsGUIEvent
|
|
||||||
NS_INPUT_EVENT, // nsInputEvent
|
|
||||||
|
|
||||||
// Mouse related events
|
|
||||||
NS_MOUSE_EVENT, // nsMouseEvent
|
|
||||||
NS_MOUSE_SCROLL_EVENT, // nsMouseScrollEvent
|
|
||||||
NS_DRAG_EVENT, // nsDragEvent
|
|
||||||
NS_WHEEL_EVENT, // WheelEvent
|
|
||||||
|
|
||||||
// Touchpad related events
|
|
||||||
NS_GESTURENOTIFY_EVENT, // nsGestureNotifyEvent
|
|
||||||
NS_SIMPLE_GESTURE_EVENT, // nsSimpleGestureEvent
|
|
||||||
NS_TOUCH_EVENT, // nsTouchEvent
|
|
||||||
|
|
||||||
// Key or IME events
|
|
||||||
NS_KEY_EVENT, // nsKeyEvent
|
|
||||||
NS_COMPOSITION_EVENT, // nsCompositionEvent
|
|
||||||
NS_TEXT_EVENT, // nsTextEvent
|
|
||||||
|
|
||||||
// IME related events
|
|
||||||
NS_QUERY_CONTENT_EVENT, // nsQueryContentEvent
|
|
||||||
NS_SELECTION_EVENT, // nsSelectionEvent
|
|
||||||
|
|
||||||
// Scroll related events
|
|
||||||
NS_SCROLLPORT_EVENT, // nsScrollPortEvent
|
|
||||||
NS_SCROLLAREA_EVENT, // nsScrollAreaEvent
|
|
||||||
|
|
||||||
// DOM events
|
|
||||||
NS_UI_EVENT, // nsUIEvent
|
|
||||||
NS_SCRIPT_ERROR_EVENT, // nsScriptErrorEvent
|
|
||||||
NS_MUTATION_EVENT, // nsMutationEvent
|
|
||||||
NS_FORM_EVENT, // nsFormEvent
|
|
||||||
NS_FOCUS_EVENT, // nsFocusEvent
|
|
||||||
NS_CLIPBOARD_EVENT, // nsClipboardEvent
|
|
||||||
|
|
||||||
// SVG events
|
|
||||||
NS_SVGZOOM_EVENT, // nsGUIEvent
|
|
||||||
NS_SMIL_TIME_EVENT, // nsUIEvent
|
|
||||||
|
|
||||||
// CSS events
|
|
||||||
NS_TRANSITION_EVENT, // nsTransitionEvent
|
|
||||||
NS_ANIMATION_EVENT, // nsAnimationEvent
|
|
||||||
|
|
||||||
// Command events
|
|
||||||
NS_COMMAND_EVENT, // nsCommandEvent
|
|
||||||
NS_CONTENT_COMMAND_EVENT, // nsContentCommandEvent
|
|
||||||
|
|
||||||
// Plugin event
|
|
||||||
NS_PLUGIN_EVENT // nsPluginEvent
|
|
||||||
};
|
|
||||||
|
|
||||||
#define NS_EVENT_TYPE_NULL 0
|
#define NS_EVENT_TYPE_NULL 0
|
||||||
#define NS_EVENT_TYPE_ALL 1 // Not a real event type
|
#define NS_EVENT_TYPE_ALL 1 // Not a real event type
|
||||||
|
|
||||||
/**
|
|
||||||
* GUI MESSAGES
|
|
||||||
*/
|
|
||||||
//@{
|
|
||||||
#define NS_EVENT_NULL 0
|
|
||||||
|
|
||||||
|
|
||||||
#define NS_WINDOW_START 100
|
|
||||||
|
|
||||||
// Widget may be destroyed
|
|
||||||
#define NS_XUL_CLOSE (NS_WINDOW_START + 1)
|
|
||||||
// Key is pressed within a window
|
|
||||||
#define NS_KEY_PRESS (NS_WINDOW_START + 31)
|
|
||||||
// Key is released within a window
|
|
||||||
#define NS_KEY_UP (NS_WINDOW_START + 32)
|
|
||||||
// Key is pressed within a window
|
|
||||||
#define NS_KEY_DOWN (NS_WINDOW_START + 33)
|
|
||||||
|
|
||||||
#define NS_RESIZE_EVENT (NS_WINDOW_START + 60)
|
|
||||||
#define NS_SCROLL_EVENT (NS_WINDOW_START + 61)
|
|
||||||
|
|
||||||
// A plugin was clicked or otherwise focused. NS_PLUGIN_ACTIVATE should be
|
|
||||||
// used when the window is not active. NS_PLUGIN_FOCUS should be used when
|
|
||||||
// the window is active. In the latter case, the dispatcher of the event
|
|
||||||
// is expected to ensure that the plugin's widget is focused beforehand.
|
|
||||||
#define NS_PLUGIN_ACTIVATE (NS_WINDOW_START + 62)
|
|
||||||
#define NS_PLUGIN_FOCUS (NS_WINDOW_START + 63)
|
|
||||||
|
|
||||||
#define NS_OFFLINE (NS_WINDOW_START + 64)
|
|
||||||
#define NS_ONLINE (NS_WINDOW_START + 65)
|
|
||||||
|
|
||||||
// Indicates a resize will occur
|
|
||||||
#define NS_BEFORERESIZE_EVENT (NS_WINDOW_START + 66)
|
|
||||||
|
|
||||||
// Indicates that the user is either idle or active
|
|
||||||
#define NS_MOZ_USER_IDLE (NS_WINDOW_START + 67)
|
|
||||||
#define NS_MOZ_USER_ACTIVE (NS_WINDOW_START + 68)
|
|
||||||
|
|
||||||
// The resolution at which a plugin should draw has changed, for
|
|
||||||
// example as the result of changing from a HiDPI mode to a non-
|
|
||||||
// HiDPI mode.
|
|
||||||
#define NS_PLUGIN_RESOLUTION_CHANGED (NS_WINDOW_START + 69)
|
|
||||||
|
|
||||||
#define NS_MOUSE_MESSAGE_START 300
|
|
||||||
#define NS_MOUSE_MOVE (NS_MOUSE_MESSAGE_START)
|
|
||||||
#define NS_MOUSE_BUTTON_UP (NS_MOUSE_MESSAGE_START + 1)
|
|
||||||
#define NS_MOUSE_BUTTON_DOWN (NS_MOUSE_MESSAGE_START + 2)
|
|
||||||
#define NS_MOUSE_ENTER (NS_MOUSE_MESSAGE_START + 22)
|
|
||||||
#define NS_MOUSE_EXIT (NS_MOUSE_MESSAGE_START + 23)
|
|
||||||
#define NS_MOUSE_DOUBLECLICK (NS_MOUSE_MESSAGE_START + 24)
|
|
||||||
#define NS_MOUSE_CLICK (NS_MOUSE_MESSAGE_START + 27)
|
|
||||||
#define NS_MOUSE_ACTIVATE (NS_MOUSE_MESSAGE_START + 30)
|
|
||||||
#define NS_MOUSE_ENTER_SYNTH (NS_MOUSE_MESSAGE_START + 31)
|
|
||||||
#define NS_MOUSE_EXIT_SYNTH (NS_MOUSE_MESSAGE_START + 32)
|
|
||||||
#define NS_MOUSE_MOZHITTEST (NS_MOUSE_MESSAGE_START + 33)
|
|
||||||
#define NS_MOUSEENTER (NS_MOUSE_MESSAGE_START + 34)
|
|
||||||
#define NS_MOUSELEAVE (NS_MOUSE_MESSAGE_START + 35)
|
|
||||||
|
|
||||||
#define NS_CONTEXTMENU_MESSAGE_START 500
|
|
||||||
#define NS_CONTEXTMENU (NS_CONTEXTMENU_MESSAGE_START)
|
|
||||||
|
|
||||||
#define NS_STREAM_EVENT_START 1100
|
|
||||||
#define NS_LOAD (NS_STREAM_EVENT_START)
|
|
||||||
#define NS_PAGE_UNLOAD (NS_STREAM_EVENT_START + 1)
|
|
||||||
#define NS_HASHCHANGE (NS_STREAM_EVENT_START + 2)
|
|
||||||
#define NS_IMAGE_ABORT (NS_STREAM_EVENT_START + 3)
|
|
||||||
#define NS_LOAD_ERROR (NS_STREAM_EVENT_START + 4)
|
|
||||||
#define NS_POPSTATE (NS_STREAM_EVENT_START + 5)
|
|
||||||
#define NS_BEFORE_PAGE_UNLOAD (NS_STREAM_EVENT_START + 6)
|
|
||||||
#define NS_PAGE_RESTORE (NS_STREAM_EVENT_START + 7)
|
|
||||||
#define NS_READYSTATECHANGE (NS_STREAM_EVENT_START + 8)
|
|
||||||
|
|
||||||
#define NS_FORM_EVENT_START 1200
|
|
||||||
#define NS_FORM_SUBMIT (NS_FORM_EVENT_START)
|
|
||||||
#define NS_FORM_RESET (NS_FORM_EVENT_START + 1)
|
|
||||||
#define NS_FORM_CHANGE (NS_FORM_EVENT_START + 2)
|
|
||||||
#define NS_FORM_SELECTED (NS_FORM_EVENT_START + 3)
|
|
||||||
#define NS_FORM_INPUT (NS_FORM_EVENT_START + 4)
|
|
||||||
#define NS_FORM_INVALID (NS_FORM_EVENT_START + 5)
|
|
||||||
|
|
||||||
//Need separate focus/blur notifications for non-native widgets
|
|
||||||
#define NS_FOCUS_EVENT_START 1300
|
|
||||||
#define NS_FOCUS_CONTENT (NS_FOCUS_EVENT_START)
|
|
||||||
#define NS_BLUR_CONTENT (NS_FOCUS_EVENT_START + 1)
|
|
||||||
|
|
||||||
#define NS_DRAGDROP_EVENT_START 1400
|
|
||||||
#define NS_DRAGDROP_ENTER (NS_DRAGDROP_EVENT_START)
|
|
||||||
#define NS_DRAGDROP_OVER (NS_DRAGDROP_EVENT_START + 1)
|
|
||||||
#define NS_DRAGDROP_EXIT (NS_DRAGDROP_EVENT_START + 2)
|
|
||||||
#define NS_DRAGDROP_DRAGDROP (NS_DRAGDROP_EVENT_START + 3)
|
|
||||||
#define NS_DRAGDROP_GESTURE (NS_DRAGDROP_EVENT_START + 4)
|
|
||||||
#define NS_DRAGDROP_DRAG (NS_DRAGDROP_EVENT_START + 5)
|
|
||||||
#define NS_DRAGDROP_END (NS_DRAGDROP_EVENT_START + 6)
|
|
||||||
#define NS_DRAGDROP_START (NS_DRAGDROP_EVENT_START + 7)
|
|
||||||
#define NS_DRAGDROP_DROP (NS_DRAGDROP_EVENT_START + 8)
|
|
||||||
#define NS_DRAGDROP_OVER_SYNTH (NS_DRAGDROP_EVENT_START + 1)
|
|
||||||
#define NS_DRAGDROP_EXIT_SYNTH (NS_DRAGDROP_EVENT_START + 2)
|
|
||||||
#define NS_DRAGDROP_LEAVE_SYNTH (NS_DRAGDROP_EVENT_START + 9)
|
|
||||||
|
|
||||||
// Events for popups
|
|
||||||
#define NS_XUL_EVENT_START 1500
|
|
||||||
#define NS_XUL_POPUP_SHOWING (NS_XUL_EVENT_START)
|
|
||||||
#define NS_XUL_POPUP_SHOWN (NS_XUL_EVENT_START+1)
|
|
||||||
#define NS_XUL_POPUP_HIDING (NS_XUL_EVENT_START+2)
|
|
||||||
#define NS_XUL_POPUP_HIDDEN (NS_XUL_EVENT_START+3)
|
|
||||||
// NS_XUL_COMMAND used to be here (NS_XUL_EVENT_START+4)
|
|
||||||
#define NS_XUL_BROADCAST (NS_XUL_EVENT_START+5)
|
|
||||||
#define NS_XUL_COMMAND_UPDATE (NS_XUL_EVENT_START+6)
|
|
||||||
//@}
|
|
||||||
|
|
||||||
// Scroll events
|
|
||||||
#define NS_MOUSE_SCROLL_START 1600
|
|
||||||
#define NS_MOUSE_SCROLL (NS_MOUSE_SCROLL_START)
|
|
||||||
#define NS_MOUSE_PIXEL_SCROLL (NS_MOUSE_SCROLL_START + 1)
|
|
||||||
|
|
||||||
#define NS_SCROLLPORT_START 1700
|
|
||||||
#define NS_SCROLLPORT_UNDERFLOW (NS_SCROLLPORT_START)
|
|
||||||
#define NS_SCROLLPORT_OVERFLOW (NS_SCROLLPORT_START+1)
|
|
||||||
|
|
||||||
// Mutation events defined elsewhere starting at 1800
|
|
||||||
|
|
||||||
#define NS_USER_DEFINED_EVENT 2000
|
|
||||||
|
|
||||||
// composition events
|
|
||||||
#define NS_COMPOSITION_EVENT_START 2200
|
|
||||||
#define NS_COMPOSITION_START (NS_COMPOSITION_EVENT_START)
|
|
||||||
#define NS_COMPOSITION_END (NS_COMPOSITION_EVENT_START + 1)
|
|
||||||
#define NS_COMPOSITION_UPDATE (NS_COMPOSITION_EVENT_START + 2)
|
|
||||||
|
|
||||||
// text events
|
|
||||||
#define NS_TEXT_START 2400
|
|
||||||
#define NS_TEXT_TEXT (NS_TEXT_START)
|
|
||||||
|
|
||||||
// UI events
|
|
||||||
#define NS_UI_EVENT_START 2500
|
|
||||||
// this is not to be confused with NS_ACTIVATE!
|
|
||||||
#define NS_UI_ACTIVATE (NS_UI_EVENT_START)
|
|
||||||
#define NS_UI_FOCUSIN (NS_UI_EVENT_START + 1)
|
|
||||||
#define NS_UI_FOCUSOUT (NS_UI_EVENT_START + 2)
|
|
||||||
|
|
||||||
// pagetransition events
|
|
||||||
#define NS_PAGETRANSITION_START 2700
|
|
||||||
#define NS_PAGE_SHOW (NS_PAGETRANSITION_START + 1)
|
|
||||||
#define NS_PAGE_HIDE (NS_PAGETRANSITION_START + 2)
|
|
||||||
|
|
||||||
// SVG events
|
|
||||||
#define NS_SVG_EVENT_START 2800
|
|
||||||
#define NS_SVG_LOAD (NS_SVG_EVENT_START)
|
|
||||||
#define NS_SVG_UNLOAD (NS_SVG_EVENT_START + 1)
|
|
||||||
#define NS_SVG_ABORT (NS_SVG_EVENT_START + 2)
|
|
||||||
#define NS_SVG_ERROR (NS_SVG_EVENT_START + 3)
|
|
||||||
#define NS_SVG_RESIZE (NS_SVG_EVENT_START + 4)
|
|
||||||
#define NS_SVG_SCROLL (NS_SVG_EVENT_START + 5)
|
|
||||||
|
|
||||||
// SVG Zoom events
|
|
||||||
#define NS_SVGZOOM_EVENT_START 2900
|
|
||||||
#define NS_SVG_ZOOM (NS_SVGZOOM_EVENT_START)
|
|
||||||
|
|
||||||
// XUL command events
|
|
||||||
#define NS_XULCOMMAND_EVENT_START 3000
|
|
||||||
#define NS_XUL_COMMAND (NS_XULCOMMAND_EVENT_START)
|
|
||||||
|
|
||||||
// Cut, copy, paste events
|
|
||||||
#define NS_CUTCOPYPASTE_EVENT_START 3100
|
|
||||||
#define NS_COPY (NS_CUTCOPYPASTE_EVENT_START)
|
|
||||||
#define NS_CUT (NS_CUTCOPYPASTE_EVENT_START + 1)
|
|
||||||
#define NS_PASTE (NS_CUTCOPYPASTE_EVENT_START + 2)
|
|
||||||
|
|
||||||
// Query the content information
|
|
||||||
#define NS_QUERY_CONTENT_EVENT_START 3200
|
|
||||||
// Query for the selected text information, it return the selection offset,
|
|
||||||
// selection length and selected text.
|
|
||||||
#define NS_QUERY_SELECTED_TEXT (NS_QUERY_CONTENT_EVENT_START)
|
|
||||||
// Query for the text content of specified range, it returns actual lengh (if
|
|
||||||
// the specified range is too long) and the text of the specified range.
|
|
||||||
// Returns the entire text if requested length > actual length.
|
|
||||||
#define NS_QUERY_TEXT_CONTENT (NS_QUERY_CONTENT_EVENT_START + 1)
|
|
||||||
// Query for the caret rect of nth insertion point. The offset of the result is
|
|
||||||
// relative position from the top level widget.
|
|
||||||
#define NS_QUERY_CARET_RECT (NS_QUERY_CONTENT_EVENT_START + 3)
|
|
||||||
// Query for the bounding rect of a range of characters. This works on any
|
|
||||||
// valid character range given offset and length. Result is relative to top
|
|
||||||
// level widget coordinates
|
|
||||||
#define NS_QUERY_TEXT_RECT (NS_QUERY_CONTENT_EVENT_START + 4)
|
|
||||||
// Query for the bounding rect of the current focused frame. Result is relative
|
|
||||||
// to top level widget coordinates
|
|
||||||
#define NS_QUERY_EDITOR_RECT (NS_QUERY_CONTENT_EVENT_START + 5)
|
|
||||||
// Query for the current state of the content. The particular members of
|
|
||||||
// mReply that are set for each query content event will be valid on success.
|
|
||||||
#define NS_QUERY_CONTENT_STATE (NS_QUERY_CONTENT_EVENT_START + 6)
|
|
||||||
// Query for the selection in the form of a nsITransferable.
|
|
||||||
#define NS_QUERY_SELECTION_AS_TRANSFERABLE (NS_QUERY_CONTENT_EVENT_START + 7)
|
|
||||||
// Query for character at a point. This returns the character offset and its
|
|
||||||
// rect. The point is specified by nsEvent::refPoint.
|
|
||||||
#define NS_QUERY_CHARACTER_AT_POINT (NS_QUERY_CONTENT_EVENT_START + 8)
|
|
||||||
// Query if the DOM element under nsEvent::refPoint belongs to our widget
|
|
||||||
// or not.
|
|
||||||
#define NS_QUERY_DOM_WIDGET_HITTEST (NS_QUERY_CONTENT_EVENT_START + 9)
|
|
||||||
|
|
||||||
// Video events
|
|
||||||
#define NS_MEDIA_EVENT_START 3300
|
|
||||||
#define NS_LOADSTART (NS_MEDIA_EVENT_START)
|
|
||||||
#define NS_PROGRESS (NS_MEDIA_EVENT_START+1)
|
|
||||||
#define NS_SUSPEND (NS_MEDIA_EVENT_START+2)
|
|
||||||
#define NS_EMPTIED (NS_MEDIA_EVENT_START+3)
|
|
||||||
#define NS_STALLED (NS_MEDIA_EVENT_START+4)
|
|
||||||
#define NS_PLAY (NS_MEDIA_EVENT_START+5)
|
|
||||||
#define NS_PAUSE (NS_MEDIA_EVENT_START+6)
|
|
||||||
#define NS_LOADEDMETADATA (NS_MEDIA_EVENT_START+7)
|
|
||||||
#define NS_LOADEDDATA (NS_MEDIA_EVENT_START+8)
|
|
||||||
#define NS_WAITING (NS_MEDIA_EVENT_START+9)
|
|
||||||
#define NS_PLAYING (NS_MEDIA_EVENT_START+10)
|
|
||||||
#define NS_CANPLAY (NS_MEDIA_EVENT_START+11)
|
|
||||||
#define NS_CANPLAYTHROUGH (NS_MEDIA_EVENT_START+12)
|
|
||||||
#define NS_SEEKING (NS_MEDIA_EVENT_START+13)
|
|
||||||
#define NS_SEEKED (NS_MEDIA_EVENT_START+14)
|
|
||||||
#define NS_TIMEUPDATE (NS_MEDIA_EVENT_START+15)
|
|
||||||
#define NS_ENDED (NS_MEDIA_EVENT_START+16)
|
|
||||||
#define NS_RATECHANGE (NS_MEDIA_EVENT_START+17)
|
|
||||||
#define NS_DURATIONCHANGE (NS_MEDIA_EVENT_START+18)
|
|
||||||
#define NS_VOLUMECHANGE (NS_MEDIA_EVENT_START+19)
|
|
||||||
#define NS_MOZAUDIOAVAILABLE (NS_MEDIA_EVENT_START+20)
|
|
||||||
|
|
||||||
// paint notification events
|
|
||||||
#define NS_NOTIFYPAINT_START 3400
|
|
||||||
#define NS_AFTERPAINT (NS_NOTIFYPAINT_START)
|
|
||||||
|
|
||||||
// Simple gesture events
|
|
||||||
#define NS_SIMPLE_GESTURE_EVENT_START 3500
|
|
||||||
#define NS_SIMPLE_GESTURE_SWIPE_START (NS_SIMPLE_GESTURE_EVENT_START)
|
|
||||||
#define NS_SIMPLE_GESTURE_SWIPE_UPDATE (NS_SIMPLE_GESTURE_EVENT_START+1)
|
|
||||||
#define NS_SIMPLE_GESTURE_SWIPE_END (NS_SIMPLE_GESTURE_EVENT_START+2)
|
|
||||||
#define NS_SIMPLE_GESTURE_SWIPE (NS_SIMPLE_GESTURE_EVENT_START+3)
|
|
||||||
#define NS_SIMPLE_GESTURE_MAGNIFY_START (NS_SIMPLE_GESTURE_EVENT_START+4)
|
|
||||||
#define NS_SIMPLE_GESTURE_MAGNIFY_UPDATE (NS_SIMPLE_GESTURE_EVENT_START+5)
|
|
||||||
#define NS_SIMPLE_GESTURE_MAGNIFY (NS_SIMPLE_GESTURE_EVENT_START+6)
|
|
||||||
#define NS_SIMPLE_GESTURE_ROTATE_START (NS_SIMPLE_GESTURE_EVENT_START+7)
|
|
||||||
#define NS_SIMPLE_GESTURE_ROTATE_UPDATE (NS_SIMPLE_GESTURE_EVENT_START+8)
|
|
||||||
#define NS_SIMPLE_GESTURE_ROTATE (NS_SIMPLE_GESTURE_EVENT_START+9)
|
|
||||||
#define NS_SIMPLE_GESTURE_TAP (NS_SIMPLE_GESTURE_EVENT_START+10)
|
|
||||||
#define NS_SIMPLE_GESTURE_PRESSTAP (NS_SIMPLE_GESTURE_EVENT_START+11)
|
|
||||||
#define NS_SIMPLE_GESTURE_EDGE_STARTED (NS_SIMPLE_GESTURE_EVENT_START+12)
|
|
||||||
#define NS_SIMPLE_GESTURE_EDGE_CANCELED (NS_SIMPLE_GESTURE_EVENT_START+13)
|
|
||||||
#define NS_SIMPLE_GESTURE_EDGE_COMPLETED (NS_SIMPLE_GESTURE_EVENT_START+14)
|
|
||||||
|
|
||||||
// These are used to send native events to plugins.
|
|
||||||
#define NS_PLUGIN_EVENT_START 3600
|
|
||||||
#define NS_PLUGIN_INPUT_EVENT (NS_PLUGIN_EVENT_START)
|
|
||||||
#define NS_PLUGIN_FOCUS_EVENT (NS_PLUGIN_EVENT_START+1)
|
|
||||||
|
|
||||||
// Events to manipulate selection (nsSelectionEvent)
|
|
||||||
#define NS_SELECTION_EVENT_START 3700
|
|
||||||
// Clear any previous selection and set the given range as the selection
|
|
||||||
#define NS_SELECTION_SET (NS_SELECTION_EVENT_START)
|
|
||||||
|
|
||||||
// Events of commands for the contents
|
|
||||||
#define NS_CONTENT_COMMAND_EVENT_START 3800
|
|
||||||
#define NS_CONTENT_COMMAND_CUT (NS_CONTENT_COMMAND_EVENT_START)
|
|
||||||
#define NS_CONTENT_COMMAND_COPY (NS_CONTENT_COMMAND_EVENT_START+1)
|
|
||||||
#define NS_CONTENT_COMMAND_PASTE (NS_CONTENT_COMMAND_EVENT_START+2)
|
|
||||||
#define NS_CONTENT_COMMAND_DELETE (NS_CONTENT_COMMAND_EVENT_START+3)
|
|
||||||
#define NS_CONTENT_COMMAND_UNDO (NS_CONTENT_COMMAND_EVENT_START+4)
|
|
||||||
#define NS_CONTENT_COMMAND_REDO (NS_CONTENT_COMMAND_EVENT_START+5)
|
|
||||||
#define NS_CONTENT_COMMAND_PASTE_TRANSFERABLE (NS_CONTENT_COMMAND_EVENT_START+6)
|
|
||||||
// NS_CONTENT_COMMAND_SCROLL scrolls the nearest scrollable element to the
|
|
||||||
// currently focused content or latest DOM selection. This would normally be
|
|
||||||
// the same element scrolled by keyboard scroll commands, except that this event
|
|
||||||
// will scroll an element scrollable in either direction. I.e., if the nearest
|
|
||||||
// scrollable ancestor element can only be scrolled vertically, and horizontal
|
|
||||||
// scrolling is requested using this event, no scrolling will occur.
|
|
||||||
#define NS_CONTENT_COMMAND_SCROLL (NS_CONTENT_COMMAND_EVENT_START+7)
|
|
||||||
|
|
||||||
// Event to gesture notification
|
|
||||||
#define NS_GESTURENOTIFY_EVENT_START 3900
|
|
||||||
|
|
||||||
#define NS_ORIENTATION_EVENT 4000
|
|
||||||
|
|
||||||
#define NS_SCROLLAREA_EVENT_START 4100
|
|
||||||
#define NS_SCROLLEDAREACHANGED (NS_SCROLLAREA_EVENT_START)
|
|
||||||
|
|
||||||
#define NS_TRANSITION_EVENT_START 4200
|
|
||||||
#define NS_TRANSITION_END (NS_TRANSITION_EVENT_START)
|
|
||||||
|
|
||||||
#define NS_ANIMATION_EVENT_START 4250
|
|
||||||
#define NS_ANIMATION_START (NS_ANIMATION_EVENT_START)
|
|
||||||
#define NS_ANIMATION_END (NS_ANIMATION_EVENT_START + 1)
|
|
||||||
#define NS_ANIMATION_ITERATION (NS_ANIMATION_EVENT_START + 2)
|
|
||||||
|
|
||||||
#define NS_SMIL_TIME_EVENT_START 4300
|
|
||||||
#define NS_SMIL_BEGIN (NS_SMIL_TIME_EVENT_START)
|
|
||||||
#define NS_SMIL_END (NS_SMIL_TIME_EVENT_START + 1)
|
|
||||||
#define NS_SMIL_REPEAT (NS_SMIL_TIME_EVENT_START + 2)
|
|
||||||
|
|
||||||
#define NS_WEBAUDIO_EVENT_START 4350
|
|
||||||
#define NS_AUDIO_PROCESS (NS_WEBAUDIO_EVENT_START)
|
|
||||||
#define NS_AUDIO_COMPLETE (NS_WEBAUDIO_EVENT_START + 1)
|
|
||||||
|
|
||||||
// script notification events
|
|
||||||
#define NS_NOTIFYSCRIPT_START 4500
|
|
||||||
#define NS_BEFORE_SCRIPT_EXECUTE (NS_NOTIFYSCRIPT_START)
|
|
||||||
#define NS_AFTER_SCRIPT_EXECUTE (NS_NOTIFYSCRIPT_START+1)
|
|
||||||
|
|
||||||
#define NS_PRINT_EVENT_START 4600
|
|
||||||
#define NS_BEFOREPRINT (NS_PRINT_EVENT_START)
|
|
||||||
#define NS_AFTERPRINT (NS_PRINT_EVENT_START + 1)
|
|
||||||
|
|
||||||
#define NS_MESSAGE_EVENT_START 4700
|
|
||||||
#define NS_MESSAGE (NS_MESSAGE_EVENT_START)
|
|
||||||
|
|
||||||
// Open and close events
|
|
||||||
#define NS_OPENCLOSE_EVENT_START 4800
|
|
||||||
#define NS_OPEN (NS_OPENCLOSE_EVENT_START)
|
|
||||||
#define NS_CLOSE (NS_OPENCLOSE_EVENT_START+1)
|
|
||||||
|
|
||||||
// Device motion and orientation
|
|
||||||
#define NS_DEVICE_ORIENTATION_START 4900
|
|
||||||
#define NS_DEVICE_ORIENTATION (NS_DEVICE_ORIENTATION_START)
|
|
||||||
#define NS_DEVICE_MOTION (NS_DEVICE_ORIENTATION_START+1)
|
|
||||||
#define NS_DEVICE_PROXIMITY (NS_DEVICE_ORIENTATION_START+2)
|
|
||||||
#define NS_USER_PROXIMITY (NS_DEVICE_ORIENTATION_START+3)
|
|
||||||
#define NS_DEVICE_LIGHT (NS_DEVICE_ORIENTATION_START+4)
|
|
||||||
|
|
||||||
#define NS_SHOW_EVENT 5000
|
|
||||||
|
|
||||||
// Fullscreen DOM API
|
|
||||||
#define NS_FULL_SCREEN_START 5100
|
|
||||||
#define NS_FULLSCREENCHANGE (NS_FULL_SCREEN_START)
|
|
||||||
#define NS_FULLSCREENERROR (NS_FULL_SCREEN_START + 1)
|
|
||||||
|
|
||||||
#define NS_TOUCH_EVENT_START 5200
|
|
||||||
#define NS_TOUCH_START (NS_TOUCH_EVENT_START)
|
|
||||||
#define NS_TOUCH_MOVE (NS_TOUCH_EVENT_START+1)
|
|
||||||
#define NS_TOUCH_END (NS_TOUCH_EVENT_START+2)
|
|
||||||
#define NS_TOUCH_ENTER (NS_TOUCH_EVENT_START+3)
|
|
||||||
#define NS_TOUCH_LEAVE (NS_TOUCH_EVENT_START+4)
|
|
||||||
#define NS_TOUCH_CANCEL (NS_TOUCH_EVENT_START+5)
|
|
||||||
|
|
||||||
// Pointerlock DOM API
|
|
||||||
#define NS_POINTERLOCK_START 5300
|
|
||||||
#define NS_POINTERLOCKCHANGE (NS_POINTERLOCK_START)
|
|
||||||
#define NS_POINTERLOCKERROR (NS_POINTERLOCK_START + 1)
|
|
||||||
|
|
||||||
#define NS_WHEEL_EVENT_START 5400
|
|
||||||
#define NS_WHEEL_WHEEL (NS_WHEEL_EVENT_START)
|
|
||||||
|
|
||||||
//System time is changed
|
|
||||||
#define NS_MOZ_TIME_CHANGE_EVENT 5500
|
|
||||||
|
|
||||||
// Network packet events.
|
|
||||||
#define NS_NETWORK_EVENT_START 5600
|
|
||||||
#define NS_NETWORK_UPLOAD_EVENT (NS_NETWORK_EVENT_START + 1)
|
|
||||||
#define NS_NETWORK_DOWNLOAD_EVENT (NS_NETWORK_EVENT_START + 2)
|
|
||||||
|
|
||||||
// MediaRecorder events.
|
|
||||||
#define NS_MEDIARECORDER_EVENT_START 5700
|
|
||||||
#define NS_MEDIARECORDER_DATAAVAILABLE (NS_MEDIARECORDER_EVENT_START + 1)
|
|
||||||
#define NS_MEDIARECORDER_WARNING (NS_MEDIARECORDER_EVENT_START + 2)
|
|
||||||
#define NS_MEDIARECORDER_STOP (NS_MEDIARECORDER_EVENT_START + 3)
|
|
||||||
|
|
||||||
#ifdef MOZ_GAMEPAD
|
|
||||||
// Gamepad input events
|
|
||||||
#define NS_GAMEPAD_START 6000
|
|
||||||
#define NS_GAMEPAD_BUTTONDOWN (NS_GAMEPAD_START)
|
|
||||||
#define NS_GAMEPAD_BUTTONUP (NS_GAMEPAD_START+1)
|
|
||||||
#define NS_GAMEPAD_AXISMOVE (NS_GAMEPAD_START+2)
|
|
||||||
#define NS_GAMEPAD_CONNECTED (NS_GAMEPAD_START+3)
|
|
||||||
#define NS_GAMEPAD_DISCONNECTED (NS_GAMEPAD_START+4)
|
|
||||||
// Keep this defined to the same value as the event above
|
|
||||||
#define NS_GAMEPAD_END (NS_GAMEPAD_START+4)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Modifier key names.
|
|
||||||
*/
|
|
||||||
#define NS_DOM_KEYNAME_ALT "Alt"
|
|
||||||
#define NS_DOM_KEYNAME_ALTGRAPH "AltGraph"
|
|
||||||
#define NS_DOM_KEYNAME_CAPSLOCK "CapsLock"
|
|
||||||
#define NS_DOM_KEYNAME_CONTROL "Control"
|
|
||||||
#define NS_DOM_KEYNAME_FN "Fn"
|
|
||||||
#define NS_DOM_KEYNAME_META "Meta"
|
|
||||||
#define NS_DOM_KEYNAME_NUMLOCK "NumLock"
|
|
||||||
#define NS_DOM_KEYNAME_SCROLLLOCK "ScrollLock"
|
|
||||||
#define NS_DOM_KEYNAME_SHIFT "Shift"
|
|
||||||
#define NS_DOM_KEYNAME_SYMBOLLOCK "SymbolLock"
|
|
||||||
#define NS_DOM_KEYNAME_OS "OS"
|
|
||||||
|
|
||||||
namespace mozilla {
|
|
||||||
|
|
||||||
// BaseEventFlags must be a POD struct for safe to use memcpy (including
|
|
||||||
// in ParamTraits<BaseEventFlags>). So don't make virtual methods, constructor,
|
|
||||||
// destructor and operators.
|
|
||||||
// This is necessary for VC which is NOT C++0x compiler.
|
|
||||||
struct BaseEventFlags
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// If mIsTrusted is true, the event is a trusted event. Otherwise, it's
|
|
||||||
// an untrusted event.
|
|
||||||
bool mIsTrusted : 1;
|
|
||||||
// If mInBubblingPhase is true, the event is in bubbling phase or target
|
|
||||||
// phase.
|
|
||||||
bool mInBubblingPhase : 1;
|
|
||||||
// If mInCapturePhase is true, the event is in capture phase or target phase.
|
|
||||||
bool mInCapturePhase : 1;
|
|
||||||
// If mInSystemGroup is true, the event is being dispatched in system group.
|
|
||||||
bool mInSystemGroup: 1;
|
|
||||||
// If mCancelable is true, the event can be consumed. I.e., calling
|
|
||||||
// nsDOMEvent::PreventDefault() can prevent the default action.
|
|
||||||
bool mCancelable : 1;
|
|
||||||
// If mBubbles is true, the event can bubble. Otherwise, cannot be handled
|
|
||||||
// in bubbling phase.
|
|
||||||
bool mBubbles : 1;
|
|
||||||
// If mPropagationStopped is true, nsDOMEvent::StopPropagation() or
|
|
||||||
// nsDOMEvent::StopImmediatePropagation() has been called.
|
|
||||||
bool mPropagationStopped : 1;
|
|
||||||
// If mImmediatePropagationStopped is true,
|
|
||||||
// nsDOMEvent::StopImmediatePropagation() has been called.
|
|
||||||
// Note that mPropagationStopped must be true when this is true.
|
|
||||||
bool mImmediatePropagationStopped : 1;
|
|
||||||
// If mDefaultPrevented is true, the event has been consumed.
|
|
||||||
// E.g., nsDOMEvent::PreventDefault() has been called or
|
|
||||||
// the default action has been performed.
|
|
||||||
bool mDefaultPrevented : 1;
|
|
||||||
// If mDefaultPreventedByContent is true, the event has been
|
|
||||||
// consumed by content.
|
|
||||||
// Note that mDefaultPrevented must be true when this is true.
|
|
||||||
bool mDefaultPreventedByContent : 1;
|
|
||||||
// mMultipleActionsPrevented may be used when default handling don't want to
|
|
||||||
// be prevented, but only one of the event targets should handle the event.
|
|
||||||
// For example, when a <label> element is in another <label> element and
|
|
||||||
// the first <label> element is clicked, that one may set this true.
|
|
||||||
// Then, the second <label> element won't handle the event.
|
|
||||||
bool mMultipleActionsPrevented : 1;
|
|
||||||
// If mIsBeingDispatched is true, the DOM event created from the event is
|
|
||||||
// dispatching into the DOM tree and not completed.
|
|
||||||
bool mIsBeingDispatched : 1;
|
|
||||||
// If mDispatchedAtLeastOnce is true, the event has been dispatched
|
|
||||||
// as a DOM event and the dispatch has been completed.
|
|
||||||
bool mDispatchedAtLeastOnce : 1;
|
|
||||||
// If mIsSynthesizedForTests is true, the event has been synthesized for
|
|
||||||
// automated tests or something hacky approach of an add-on.
|
|
||||||
bool mIsSynthesizedForTests : 1;
|
|
||||||
// If mExceptionHasBeenRisen is true, one of the event handlers has risen an
|
|
||||||
// exception.
|
|
||||||
bool mExceptionHasBeenRisen : 1;
|
|
||||||
// If mRetargetToNonNativeAnonymous is true and the target is in a non-native
|
|
||||||
// native anonymous subtree, the event target is set to originalTarget.
|
|
||||||
bool mRetargetToNonNativeAnonymous : 1;
|
|
||||||
// If mNoCrossProcessBoundaryForwarding is true, the event is not allowed to
|
|
||||||
// cross process boundary.
|
|
||||||
bool mNoCrossProcessBoundaryForwarding : 1;
|
|
||||||
// If mNoContentDispatch is true, the event is never dispatched to the
|
|
||||||
// event handlers which are added to the contents, onfoo attributes and
|
|
||||||
// properties. Note that this flag is ignored when
|
|
||||||
// nsEventChainPreVisitor::mForceContentDispatch is set true. For exapmle,
|
|
||||||
// window and document object sets it true. Therefore, web applications
|
|
||||||
// can handle the event if they add event listeners to the window or the
|
|
||||||
// document.
|
|
||||||
bool mNoContentDispatch : 1;
|
|
||||||
// If mOnlyChromeDispatch is true, the event is dispatched to only chrome.
|
|
||||||
bool mOnlyChromeDispatch : 1;
|
|
||||||
|
|
||||||
// If the event is being handled in target phase, returns true.
|
|
||||||
inline bool InTargetPhase() const
|
|
||||||
{
|
|
||||||
return (mInBubblingPhase && mInCapturePhase);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void Clear()
|
|
||||||
{
|
|
||||||
SetRawFlags(0);
|
|
||||||
}
|
|
||||||
// Get if either the instance's bit or the aOther's bit is true, the
|
|
||||||
// instance's bit becomes true. In other words, this works like:
|
|
||||||
// eventFlags |= aOther;
|
|
||||||
inline void Union(const BaseEventFlags& aOther)
|
|
||||||
{
|
|
||||||
RawFlags rawFlags = GetRawFlags() | aOther.GetRawFlags();
|
|
||||||
SetRawFlags(rawFlags);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
typedef uint32_t RawFlags;
|
|
||||||
|
|
||||||
inline void SetRawFlags(RawFlags aRawFlags)
|
|
||||||
{
|
|
||||||
static_assert(sizeof(BaseEventFlags) <= sizeof(RawFlags),
|
|
||||||
"mozilla::EventFlags must not be bigger than the RawFlags");
|
|
||||||
memcpy(this, &aRawFlags, sizeof(BaseEventFlags));
|
|
||||||
}
|
|
||||||
inline RawFlags GetRawFlags() const
|
|
||||||
{
|
|
||||||
RawFlags result = 0;
|
|
||||||
memcpy(&result, this, sizeof(BaseEventFlags));
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct EventFlags : public BaseEventFlags
|
|
||||||
{
|
|
||||||
EventFlags()
|
|
||||||
{
|
|
||||||
Clear();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace mozilla
|
|
||||||
|
|
||||||
/**
|
|
||||||
* General event
|
|
||||||
*/
|
|
||||||
|
|
||||||
class nsEvent
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
nsEvent(bool isTrusted, uint32_t msg, nsEventStructType structType)
|
|
||||||
: eventStructType(structType),
|
|
||||||
message(msg),
|
|
||||||
refPoint(0, 0),
|
|
||||||
lastRefPoint(0, 0),
|
|
||||||
time(0),
|
|
||||||
userType(0)
|
|
||||||
{
|
|
||||||
MOZ_COUNT_CTOR(nsEvent);
|
|
||||||
mFlags.Clear();
|
|
||||||
mFlags.mIsTrusted = isTrusted;
|
|
||||||
mFlags.mCancelable = true;
|
|
||||||
mFlags.mBubbles = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsEvent()
|
|
||||||
{
|
|
||||||
MOZ_COUNT_CTOR(nsEvent);
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
nsEvent(bool isTrusted, uint32_t msg)
|
|
||||||
: eventStructType(NS_EVENT),
|
|
||||||
message(msg),
|
|
||||||
refPoint(0, 0),
|
|
||||||
lastRefPoint(0, 0),
|
|
||||||
time(0),
|
|
||||||
userType(0)
|
|
||||||
{
|
|
||||||
MOZ_COUNT_CTOR(nsEvent);
|
|
||||||
mFlags.Clear();
|
|
||||||
mFlags.mIsTrusted = isTrusted;
|
|
||||||
mFlags.mCancelable = true;
|
|
||||||
mFlags.mBubbles = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
~nsEvent()
|
|
||||||
{
|
|
||||||
MOZ_COUNT_DTOR(nsEvent);
|
|
||||||
}
|
|
||||||
|
|
||||||
nsEvent(const nsEvent& aOther)
|
|
||||||
{
|
|
||||||
MOZ_COUNT_CTOR(nsEvent);
|
|
||||||
*this = aOther;
|
|
||||||
}
|
|
||||||
|
|
||||||
// See event struct types
|
|
||||||
nsEventStructType eventStructType;
|
|
||||||
// See GUI MESSAGES,
|
|
||||||
uint32_t message;
|
|
||||||
// Relative to the widget of the event, or if there is no widget then it is
|
|
||||||
// in screen coordinates. Not modified by layout code.
|
|
||||||
mozilla::LayoutDeviceIntPoint refPoint;
|
|
||||||
// The previous refPoint, if known, used to calculate mouse movement deltas.
|
|
||||||
mozilla::LayoutDeviceIntPoint lastRefPoint;
|
|
||||||
// Elapsed time, in milliseconds, from a platform-specific zero time
|
|
||||||
// to the time the message was created
|
|
||||||
uint64_t time;
|
|
||||||
// See BaseEventFlags definition for the detail.
|
|
||||||
mozilla::BaseEventFlags mFlags;
|
|
||||||
|
|
||||||
// Additional type info for user defined events
|
|
||||||
nsCOMPtr<nsIAtom> userType;
|
|
||||||
|
|
||||||
nsString typeString; // always set on non-main-thread events
|
|
||||||
|
|
||||||
// Event targets, needed by DOM Events
|
|
||||||
nsCOMPtr<mozilla::dom::EventTarget> target;
|
|
||||||
nsCOMPtr<mozilla::dom::EventTarget> currentTarget;
|
|
||||||
nsCOMPtr<mozilla::dom::EventTarget> originalTarget;
|
|
||||||
|
|
||||||
void AssignEventData(const nsEvent& aEvent, bool aCopyTargets)
|
|
||||||
{
|
|
||||||
// eventStructType, message should be initialized with the constructor.
|
|
||||||
refPoint = aEvent.refPoint;
|
|
||||||
// lastRefPoint doesn't need to be copied.
|
|
||||||
time = aEvent.time;
|
|
||||||
// mFlags should be copied manually if it's necessary.
|
|
||||||
userType = aEvent.userType;
|
|
||||||
// typeString should be copied manually if it's necessary.
|
|
||||||
target = aCopyTargets ? aEvent.target : nullptr;
|
|
||||||
currentTarget = aCopyTargets ? aEvent.currentTarget : nullptr;
|
|
||||||
originalTarget = aCopyTargets ? aEvent.originalTarget : nullptr;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* General graphic user interface event
|
|
||||||
*/
|
|
||||||
|
|
||||||
class nsGUIEvent : public nsEvent
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
nsGUIEvent(bool isTrusted, uint32_t msg, nsIWidget *w,
|
|
||||||
nsEventStructType structType)
|
|
||||||
: nsEvent(isTrusted, msg, structType),
|
|
||||||
widget(w), pluginEvent(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
nsGUIEvent()
|
|
||||||
: pluginEvent(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
nsGUIEvent(bool isTrusted, uint32_t msg, nsIWidget *w)
|
|
||||||
: nsEvent(isTrusted, msg, NS_GUI_EVENT),
|
|
||||||
widget(w), pluginEvent(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Originator of the event
|
|
||||||
nsCOMPtr<nsIWidget> widget;
|
|
||||||
|
|
||||||
/// Event for NPAPI plugin
|
|
||||||
void* pluginEvent;
|
|
||||||
|
|
||||||
void AssignGUIEventData(const nsGUIEvent& aEvent, bool aCopyTargets)
|
|
||||||
{
|
|
||||||
AssignEventData(aEvent, aCopyTargets);
|
|
||||||
|
|
||||||
// widget should be initialized with the constructor.
|
|
||||||
|
|
||||||
// pluginEvent shouldn't be copied because it may be referred after its
|
|
||||||
// instance is destroyed.
|
|
||||||
pluginEvent = nullptr;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Script error event
|
* Script error event
|
||||||
*/
|
*/
|
||||||
@ -827,118 +118,6 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class nsInputEvent : public nsGUIEvent
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
nsInputEvent(bool isTrusted, uint32_t msg, nsIWidget *w,
|
|
||||||
nsEventStructType structType)
|
|
||||||
: nsGUIEvent(isTrusted, msg, w, structType),
|
|
||||||
modifiers(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
nsInputEvent()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
nsInputEvent(bool isTrusted, uint32_t msg, nsIWidget *w)
|
|
||||||
: nsGUIEvent(isTrusted, msg, w, NS_INPUT_EVENT),
|
|
||||||
modifiers(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// true indicates the shift key is down
|
|
||||||
bool IsShift() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_SHIFT) != 0);
|
|
||||||
}
|
|
||||||
// true indicates the control key is down
|
|
||||||
bool IsControl() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_CONTROL) != 0);
|
|
||||||
}
|
|
||||||
// true indicates the alt key is down
|
|
||||||
bool IsAlt() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_ALT) != 0);
|
|
||||||
}
|
|
||||||
// true indicates the meta key is down (or, on Mac, the Command key)
|
|
||||||
bool IsMeta() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_META) != 0);
|
|
||||||
}
|
|
||||||
// true indicates the win key is down on Windows. Or the Super or Hyper key
|
|
||||||
// is down on Linux.
|
|
||||||
bool IsOS() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_OS) != 0);
|
|
||||||
}
|
|
||||||
// true indicates the alt graph key is down
|
|
||||||
// NOTE: on Mac, the option key press causes both IsAlt() and IsAltGrpah()
|
|
||||||
// return true.
|
|
||||||
bool IsAltGraph() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_ALTGRAPH) != 0);
|
|
||||||
}
|
|
||||||
// true indeicates the CapLock LED is turn on.
|
|
||||||
bool IsCapsLocked() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_CAPSLOCK) != 0);
|
|
||||||
}
|
|
||||||
// true indeicates the NumLock LED is turn on.
|
|
||||||
bool IsNumLocked() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_NUMLOCK) != 0);
|
|
||||||
}
|
|
||||||
// true indeicates the ScrollLock LED is turn on.
|
|
||||||
bool IsScrollLocked() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_SCROLLLOCK) != 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// true indeicates the Fn key is down, but this is not supported by native
|
|
||||||
// key event on any platform.
|
|
||||||
bool IsFn() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_FN) != 0);
|
|
||||||
}
|
|
||||||
// true indeicates the ScrollLock LED is turn on.
|
|
||||||
bool IsSymbolLocked() const
|
|
||||||
{
|
|
||||||
return ((modifiers & mozilla::MODIFIER_SYMBOLLOCK) != 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void InitBasicModifiers(bool aCtrlKey,
|
|
||||||
bool aAltKey,
|
|
||||||
bool aShiftKey,
|
|
||||||
bool aMetaKey)
|
|
||||||
{
|
|
||||||
modifiers = 0;
|
|
||||||
if (aCtrlKey) {
|
|
||||||
modifiers |= mozilla::MODIFIER_CONTROL;
|
|
||||||
}
|
|
||||||
if (aAltKey) {
|
|
||||||
modifiers |= mozilla::MODIFIER_ALT;
|
|
||||||
}
|
|
||||||
if (aShiftKey) {
|
|
||||||
modifiers |= mozilla::MODIFIER_SHIFT;
|
|
||||||
}
|
|
||||||
if (aMetaKey) {
|
|
||||||
modifiers |= mozilla::MODIFIER_META;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mozilla::Modifiers modifiers;
|
|
||||||
|
|
||||||
void AssignInputEventData(const nsInputEvent& aEvent, bool aCopyTargets)
|
|
||||||
{
|
|
||||||
AssignGUIEventData(aEvent, aCopyTargets);
|
|
||||||
|
|
||||||
modifiers = aEvent.modifiers;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mouse event
|
* Mouse event
|
||||||
*/
|
*/
|
||||||
@ -1874,28 +1053,6 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* DOM UIEvent
|
|
||||||
*/
|
|
||||||
class nsUIEvent : public nsGUIEvent
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
nsUIEvent(bool isTrusted, uint32_t msg, int32_t d)
|
|
||||||
: nsGUIEvent(isTrusted, msg, nullptr, NS_UI_EVENT),
|
|
||||||
detail(d)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t detail;
|
|
||||||
|
|
||||||
void AssignUIEventData(const nsUIEvent& aEvent, bool aCopyTargets)
|
|
||||||
{
|
|
||||||
AssignGUIEventData(aEvent, aCopyTargets);
|
|
||||||
|
|
||||||
// detail must have been initialized with the constructor.
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class nsFocusEvent : public nsUIEvent
|
class nsFocusEvent : public nsUIEvent
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user