diff options
Diffstat (limited to 'dom/webidl/MouseEvent.webidl')
-rw-r--r-- | dom/webidl/MouseEvent.webidl | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/dom/webidl/MouseEvent.webidl b/dom/webidl/MouseEvent.webidl new file mode 100644 index 0000000000..979c05ca49 --- /dev/null +++ b/dom/webidl/MouseEvent.webidl @@ -0,0 +1,145 @@ +/* -*- Mode: IDL; 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/. + * + * For more information on this interface please see + * http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html + * https://drafts.csswg.org/cssom-view/#extensions-to-the-mouseevent-interface + * + * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C + * liability, trademark and document use rules apply. + */ + +interface nsIScreen; + +[Exposed=Window] +interface MouseEvent : UIEvent { + constructor(DOMString typeArg, + optional MouseEventInit mouseEventInitDict = {}); + + [NeedsCallerType] + readonly attribute long screenX; + [NeedsCallerType] + readonly attribute long screenY; + + [ChromeOnly] + readonly attribute nsIScreen? screen; + + readonly attribute long pageX; + readonly attribute long pageY; + readonly attribute long clientX; + readonly attribute long clientY; + [BinaryName="clientX"] + readonly attribute long x; + [BinaryName="clientY"] + readonly attribute long y; + readonly attribute long offsetX; + readonly attribute long offsetY; + readonly attribute boolean ctrlKey; + readonly attribute boolean shiftKey; + readonly attribute boolean altKey; + readonly attribute boolean metaKey; + readonly attribute short button; + readonly attribute unsigned short buttons; + readonly attribute EventTarget? relatedTarget; + + // Pointer Lock + readonly attribute long movementX; + readonly attribute long movementY; + + // Deprecated in DOM Level 3: + [Deprecated="InitMouseEvent"] + undefined initMouseEvent(DOMString typeArg, + optional boolean canBubbleArg = false, + optional boolean cancelableArg = false, + optional Window? viewArg = null, + optional long detailArg = 0, + optional long screenXArg = 0, + optional long screenYArg = 0, + optional long clientXArg = 0, + optional long clientYArg = 0, + optional boolean ctrlKeyArg = false, + optional boolean altKeyArg = false, + optional boolean shiftKeyArg = false, + optional boolean metaKeyArg = false, + optional short buttonArg = 0, + optional EventTarget? relatedTargetArg = null); + // Introduced in DOM Level 3: + boolean getModifierState(DOMString keyArg); +}; + +// Suggested initMouseEvent replacement initializer: +dictionary MouseEventInit : EventModifierInit { + // Attributes for MouseEvent: + long screenX = 0; + long screenY = 0; + long clientX = 0; + long clientY = 0; + short button = 0; + // Note: "buttons" was not previously initializable through initMouseEvent! + unsigned short buttons = 0; + EventTarget? relatedTarget = null; + + // Pointer Lock + long movementX = 0; + long movementY = 0; +}; + +// Mozilla extensions +partial interface MouseEvent +{ + // Finger or touch pressure event value + // ranges between 0.0 and 1.0 + // TODO: Remove mozPressure. (bug 1534199) + [Deprecated="MouseEvent_MozPressure"] + readonly attribute float mozPressure; + + const unsigned short MOZ_SOURCE_UNKNOWN = 0; + const unsigned short MOZ_SOURCE_MOUSE = 1; + const unsigned short MOZ_SOURCE_PEN = 2; + const unsigned short MOZ_SOURCE_ERASER = 3; + const unsigned short MOZ_SOURCE_CURSOR = 4; + const unsigned short MOZ_SOURCE_TOUCH = 5; + const unsigned short MOZ_SOURCE_KEYBOARD = 6; + + [ChromeOnly] + readonly attribute unsigned short inputSource; + + [Deprecated="MozInputSource", BinaryName="inputSource"] + readonly attribute unsigned short mozInputSource; + + // TODO: Remove initNSMouseEvent. (bug 1165213) + [Deprecated="InitNSMouseEvent"] + undefined initNSMouseEvent(DOMString typeArg, + optional boolean canBubbleArg = false, + optional boolean cancelableArg = false, + optional Window? viewArg = null, + optional long detailArg = 0, + optional long screenXArg = 0, + optional long screenYArg = 0, + optional long clientXArg = 0, + optional long clientYArg = 0, + optional boolean ctrlKeyArg = false, + optional boolean altKeyArg = false, + optional boolean shiftKeyArg = false, + optional boolean metaKeyArg = false, + optional short buttonArg = 0, + optional EventTarget? relatedTargetArg = null, + optional float pressure = 0, + optional unsigned short inputSourceArg = 0); + + /** + * preventClickEvent() prevents the following "click", "auxclick" and + * "dblclick" events of "mousedown" and "mouseup" events. + */ + [ChromeOnly] + undefined preventClickEvent(); + + /** + * Returns true if the following "click", "auxclick" and "dblclick" + * events of "mousedown" and "mouseup" events are prevented. + */ + [ChromeOnly] + boolean clickEventPrevented(); +}; |