initial import
[vuplus_webkit] / Source / WebKit2 / UIProcess / mac / WebFullScreenManagerProxyMac.mm
1 /*
2  * Copyright (C) 2010 Apple 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  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. 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 APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #import "config.h"
27 #import "WebFullScreenManagerProxy.h"
28
29 #import "LayerTreeContext.h"
30 #import "WKFullScreenWindowController.h"
31 #import "WKViewInternal.h"
32 #import <WebCore/IntRect.h>
33
34 #if ENABLE(FULLSCREEN_API)
35
36 namespace WebKit {
37
38 void WebFullScreenManagerProxy::invalidate()
39 {
40     if (!m_webView)
41         return;
42     
43     [m_webView closeFullScreenWindowController];
44     m_webView = 0;
45 }
46
47 void WebFullScreenManagerProxy::enterFullScreen()
48 {
49     if (!m_webView)
50         return;
51     [[m_webView fullScreenWindowController] enterFullScreen:nil];
52 }
53
54 void WebFullScreenManagerProxy::exitFullScreen()
55 {
56     if (!m_webView)
57         return;
58     [[m_webView fullScreenWindowController] exitFullScreen];
59 }
60
61 void WebFullScreenManagerProxy::beganEnterFullScreenAnimation()
62 {
63     if (!m_webView)
64         return;
65     [[m_webView fullScreenWindowController] beganEnterFullScreenAnimation];
66 }
67
68 void WebFullScreenManagerProxy::finishedEnterFullScreenAnimation(bool completed)
69 {
70     if (!m_webView)
71         return;
72     [[m_webView fullScreenWindowController] finishedEnterFullScreenAnimation:completed];
73 }
74
75 void WebFullScreenManagerProxy::beganExitFullScreenAnimation()
76 {
77     if (!m_webView)
78         return;
79     [[m_webView fullScreenWindowController] beganExitFullScreenAnimation];
80 }
81
82 void WebFullScreenManagerProxy::finishedExitFullScreenAnimation(bool completed)
83 {
84     if (!m_webView)
85         return;
86     [[m_webView fullScreenWindowController] finishedExitFullScreenAnimation:completed];
87 }
88     
89 void WebFullScreenManagerProxy::enterAcceleratedCompositingMode(const LayerTreeContext& context)
90 {
91     if (!m_webView)
92         return;
93     [[m_webView fullScreenWindowController] enterAcceleratedCompositingMode:context];
94 }
95
96 void WebFullScreenManagerProxy::exitAcceleratedCompositingMode()
97 {
98     if (!m_webView)
99         return;
100     [[m_webView fullScreenWindowController] exitAcceleratedCompositingMode];
101 }
102
103 void WebFullScreenManagerProxy::getFullScreenRect(WebCore::IntRect& rect)
104 {
105     if (!m_webView)
106         return;
107     rect = [[m_webView fullScreenWindowController] getFullScreenRect];
108 }
109
110 } // namespace WebKit
111
112 #endif