1 /* 2 * Copyright (C) 2010 Google Inc. All rights reserved. 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 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 #ifndef WebDeviceOrientation_h 27 #define WebDeviceOrientation_h 28 29 #if WEBKIT_IMPLEMENTATION 30 namespace WTF { template <typename T> class PassRefPtr; } 31 namespace WebCore { class DeviceOrientation; } 32 #endif 33 34 namespace WebKit { 35 36 class WebDeviceOrientation { 37 public: 38 WebDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma) 39 : m_isNull(false), 40 m_canProvideAlpha(canProvideAlpha), 41 m_alpha(alpha), 42 m_canProvideBeta(canProvideBeta), 43 m_beta(beta), 44 m_canProvideGamma(canProvideGamma), 45 m_gamma(gamma) 46 { 47 } 48 49 static WebDeviceOrientation nullOrientation() { return WebDeviceOrientation(); } 50 51 bool isNull() { return m_isNull; } 52 bool canProvideAlpha() { return m_canProvideAlpha; } 53 double alpha() { return m_alpha; } 54 bool canProvideBeta() { return m_canProvideBeta; } 55 double beta() { return m_beta; } 56 bool canProvideGamma() { return m_canProvideGamma; } 57 double gamma() { return m_gamma; } 58 59 #if WEBKIT_IMPLEMENTATION 60 WebDeviceOrientation(const WTF::PassRefPtr<WebCore::DeviceOrientation>&); 61 WebDeviceOrientation& operator=(const WTF::PassRefPtr<WebCore::DeviceOrientation>&); 62 operator WTF::PassRefPtr<WebCore::DeviceOrientation>() const; 63 #endif 64 65 private: 66 WebDeviceOrientation() 67 : m_isNull(true), 68 m_canProvideAlpha(false), 69 m_alpha(0), 70 m_canProvideBeta(false), 71 m_beta(0), 72 m_canProvideGamma(false), 73 m_gamma(0) 74 { 75 } 76 77 bool m_isNull; 78 bool m_canProvideAlpha; 79 double m_alpha; 80 bool m_canProvideBeta; 81 double m_beta; 82 bool m_canProvideGamma; 83 double m_gamma; 84 }; 85 86 } // namespace WebKit 87 88 #endif // WebDeviceOrientation_h 89