diff -r 000000000000 -r 6474c204b198 dom/interfaces/events/nsIDOMDeviceOrientationEvent.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/interfaces/events/nsIDOMDeviceOrientationEvent.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,42 @@ +/* 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/. */ + +#include "nsIDOMEvent.idl" + +[scriptable, builtinclass, uuid(f5921a77-3ac5-4374-bc0c-1ed52fe83123)] +interface nsIDOMDeviceOrientationEvent : nsIDOMEvent +{ + void initDeviceOrientationEvent(in DOMString eventTypeArg, + in boolean canBubbleArg, + in boolean cancelableArg, + in double alpha, + in double beta, + in double gamma, + in boolean absolute); + + /* + * W3C specification values: http://dev.w3.org/geo/api/spec-source-orientation.html + * + * Alpha, beta and gamma are Tait-Bryan angles (Z-X'-Y''), that is they correspond to + * yaw, pitch and roll in flight coordinates. More specifically, assume the device + * is resting face up on a flat surface (its screen is pointing straight up). Then + * the X axis points to the right when looking at the screen, the Y axis points up + * when looking at the screen, and the Z axis points toward you when looking at + * the screen. Alpha/beta/gamma then define the device's orientation by applying + * the following rotations to the device in order: + * + * 1) Rotate it by alpha degrees around its Z axis (like a compass, or like changing + * the yaw of an aircraft, assuming the Y axis is the nose of the craft); alpha + * is in [0,360). + * 2) Rotate it by beta degrees around its X axis (tilting the top of the device + * towards or away from you, like pitching an aircraft); beta is in [-180,180). + * 3) Rotate it by gamma degrees around its Y axis (tilting it sideways, like + * rolling an aircraft); gamma is in [-90,90). + */ + + readonly attribute double alpha; + readonly attribute double beta; + readonly attribute double gamma; + readonly attribute boolean absolute; +};