initial import
[vuplus_webkit] / Source / WebKit / mac / WebView / WebDeviceOrientationProviderMock.mm
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  *  * 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 #import "WebDeviceOrientationProviderMockInternal.h"
27
28 #import "WebDeviceOrientationInternal.h"
29 #import <wtf/PassOwnPtr.h>
30
31 using namespace WebCore;
32
33 @implementation WebDeviceOrientationProviderMockInternal
34
35 - (id)init
36 {
37     self = [super init];
38     if (!self)
39         return nil;
40     m_core = adoptPtr(new DeviceOrientationClientMock());
41     return self;
42 }
43
44 - (void)setOrientation:(WebDeviceOrientation*)orientation
45 {
46     m_core->setOrientation(core(orientation));
47 }
48
49 - (void)setController:(DeviceOrientationController*)controller
50 {
51     m_core->setController(controller);
52 }
53
54 - (void)startUpdating
55 {
56     m_core->startUpdating();
57 }
58
59 - (void)stopUpdating
60 {
61     m_core->stopUpdating();
62 }
63
64 - (WebDeviceOrientation*)lastOrientation
65 {
66     return [[WebDeviceOrientation alloc] initWithCoreDeviceOrientation:m_core->lastOrientation()];
67 }
68
69 @end
70
71 @implementation WebDeviceOrientationProviderMock (Internal)
72
73 - (void)setController:(WebCore::DeviceOrientationController*)controller
74 {
75    [m_internal setController:controller];
76 }
77
78 @end
79
80 @implementation WebDeviceOrientationProviderMock
81
82 + (WebDeviceOrientationProviderMock *)shared
83 {
84     static WebDeviceOrientationProviderMock *provider = [[WebDeviceOrientationProviderMock alloc] init];
85     return provider;
86 }
87
88 - (id)init
89 {
90     self = [super init];
91     if (!self)
92         return nil;
93     m_internal = [[WebDeviceOrientationProviderMockInternal alloc] init];
94     return self;
95 }
96
97 - (void)dealloc
98 {
99     [super dealloc];
100     [m_internal release];
101 }
102
103 - (void)setOrientation:(WebDeviceOrientation*)orientation
104 {
105     [m_internal setOrientation:orientation];
106 }
107
108 - (void)startUpdating
109 {
110     [m_internal startUpdating];
111 }
112
113 - (void)stopUpdating
114 {
115     [m_internal stopUpdating];
116 }
117
118 - (WebDeviceOrientation*)lastOrientation
119 {
120     return [m_internal lastOrientation];
121 }
122
123 @end