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