Add support for Device Orientation / Motion permission API
[WebKit-https.git] / Source / WebCore / dom / DeviceOrientationEvent.idl
1 /*
2  * Copyright 2010, The Android Open Source Project
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *  * Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  *  * Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 [
27     Conditional=DEVICE_ORIENTATION,
28 ] interface DeviceOrientationEvent : Event {
29     readonly attribute unrestricted double? alpha;
30     readonly attribute unrestricted double? beta;
31     readonly attribute unrestricted double? gamma;
32
33     // FIXME: Consider defining an ENABLE macro for iOS device orientation code and/or modifying
34     // the bindings scripts to support generating more complicated conditional code.
35 #if defined(WTF_PLATFORM_IOS_FAMILY) && WTF_PLATFORM_IOS_FAMILY
36     [ImplementedAs=compassHeading] readonly attribute unrestricted double? webkitCompassHeading;
37     [ImplementedAs=compassAccuracy] readonly attribute unrestricted double? webkitCompassAccuracy;
38     void initDeviceOrientationEvent(optional DOMString type = "",
39                                     optional boolean bubbles = false,
40                                     optional boolean cancelable = false,
41                                     optional unrestricted double? alpha = null,
42                                     optional unrestricted double? beta = null,
43                                     optional unrestricted double? gamma = null,
44                                     optional unrestricted double? compassHeading = null,
45                                     optional unrestricted double? compassAccuracy = null);
46 #else
47     readonly attribute boolean? absolute;
48     void initDeviceOrientationEvent(optional DOMString type = "",
49                                     optional boolean bubbles = false,
50                                     optional boolean cancelable = false,
51                                     optional unrestricted double? alpha = null,
52                                     optional unrestricted double? beta = null,
53                                     optional unrestricted double? gamma = null,
54                                     optional boolean? absolute = null);
55 #endif
56 };
57
58 DeviceOrientationEvent implements DeviceOrientationOrMotionEvent;