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