Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Unified Diff: Source/WebCore/platform/graphics/win/FullScreenController.cpp

Issue 13642009: WebCore: Remove PLATFORM(WIN) files we do not use. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/WebCore/platform/graphics/win/FullScreenController.cpp
diff --git a/Source/WebCore/platform/graphics/win/FullScreenController.cpp b/Source/WebCore/platform/graphics/win/FullScreenController.cpp
deleted file mode 100644
index def538eb9bb13cdd4735ec3bd9dcd9079fc9b8e1..0000000000000000000000000000000000000000
--- a/Source/WebCore/platform/graphics/win/FullScreenController.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved.
- * Copyright (C) Research In Motion Limited 2009. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(FULLSCREEN_API)
-
-#include "FullScreenController.h"
-
-#include "Element.h"
-#include "FullScreenControllerClient.h"
-#include "IntRect.h"
-#include "MediaPlayerPrivateFullscreenWindow.h"
-#include "Timer.h"
-#include "WebCoreInstanceHandle.h"
-#include <wtf/RefPtr.h>
-
-using namespace WebCore;
-
-static const int kFullScreenAnimationDuration = 500; // milliseconds
-
-class FullScreenController::Private : public MediaPlayerPrivateFullscreenClient {
-public:
- Private(FullScreenController* controller, FullScreenControllerClient* client)
- : m_controller(controller)
- , m_client(client)
- , m_originalHost(0)
- , m_isFullScreen(false)
- , m_isEnteringFullScreen(false)
- , m_isExitingFullScreen(false)
- {
- }
- virtual ~Private() { }
-
- virtual LRESULT fullscreenClientWndProc(HWND, UINT, WPARAM, LPARAM);
-
- FullScreenController* m_controller;
- FullScreenControllerClient* m_client;
- OwnPtr<MediaPlayerPrivateFullscreenWindow> m_fullScreenWindow;
- OwnPtr<MediaPlayerPrivateFullscreenWindow> m_backgroundWindow;
- IntRect m_fullScreenFrame;
- IntRect m_originalFrame;
- HWND m_originalHost;
- bool m_isFullScreen;
- bool m_isEnteringFullScreen;
- bool m_isExitingFullScreen;
-};
-
-LRESULT FullScreenController::Private::fullscreenClientWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- LRESULT lResult = 0;
-
- switch (msg) {
- case WM_MOVE:
- m_fullScreenFrame.setX(LOWORD(lParam));
- m_fullScreenFrame.setY(HIWORD(lParam));
- break;
- case WM_SIZE:
- m_fullScreenFrame.setWidth(LOWORD(lParam));
- m_fullScreenFrame.setHeight(HIWORD(lParam));
- if (m_client->fullScreenClientWindow())
- ::SetWindowPos(m_client->fullScreenClientWindow(), 0, 0, 0, m_fullScreenFrame.width(), m_fullScreenFrame.height(), SWP_NOREPOSITION | SWP_NOMOVE);
- break;
- case WM_ACTIVATE:
- // Because m_fullScreenWindow is a topmost window, we need to exit full screen explicitly when it's deactivated.
- if (!wParam && m_fullScreenWindow && (hwnd == m_fullScreenWindow->hwnd()))
- m_controller->exitFullScreen();
- break;
- case WM_KEYDOWN:
- if (wParam == VK_ESCAPE) {
- m_controller->exitFullScreen();
- break;
- }
- // Fall through.
- default:
- lResult = ::DefWindowProc(hwnd, msg, wParam, lParam);
- }
-
- return lResult;
-}
-
-FullScreenController::FullScreenController(FullScreenControllerClient* client)
- : m_private(adoptPtr(new FullScreenController::Private(this, client)))
-{
- ASSERT_ARG(client, client);
-}
-
-FullScreenController::~FullScreenController()
-{
-}
-
-bool FullScreenController::isFullScreen() const
-{
- return m_private->m_isFullScreen;
-}
-
-void FullScreenController::enterFullScreen()
-{
- if (m_private->m_isFullScreen || m_private->m_isEnteringFullScreen)
- return;
- m_private->m_isFullScreen = true;
- m_private->m_isEnteringFullScreen = true;
-
- m_private->m_originalHost = m_private->m_client->fullScreenClientParentWindow();
- RECT originalFrame = {0, 0, 0, 0};
- ::GetClientRect(m_private->m_client->fullScreenClientWindow(), &originalFrame);
- ::MapWindowPoints(m_private->m_client->fullScreenClientWindow(), m_private->m_originalHost, reinterpret_cast<LPPOINT>(&originalFrame), 2);
- m_private->m_originalFrame = originalFrame;
-
- ASSERT(!m_private->m_backgroundWindow);
- m_private->m_backgroundWindow = adoptPtr(new MediaPlayerPrivateFullscreenWindow(m_private.get()));
- m_private->m_backgroundWindow->createWindow(0);
- ::AnimateWindow(m_private->m_backgroundWindow->hwnd(), kFullScreenAnimationDuration, AW_BLEND | AW_ACTIVATE);
-
- m_private->m_client->fullScreenClientWillEnterFullScreen();
- ASSERT(!m_private->m_fullScreenWindow);
- m_private->m_fullScreenWindow = adoptPtr(new MediaPlayerPrivateFullscreenWindow(m_private.get()));
- ASSERT(m_private->m_fullScreenWindow);
- m_private->m_fullScreenWindow->createWindow(0);
-
- m_private->m_client->fullScreenClientSetParentWindow(m_private->m_fullScreenWindow->hwnd());
-
- IntRect viewFrame(IntPoint(), m_private->m_fullScreenFrame.size());
- ::SetWindowPos(m_private->m_fullScreenWindow->hwnd(), HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
- ::SetWindowPos(m_private->m_client->fullScreenClientWindow(), HWND_TOP, 0, 0, viewFrame.width(), viewFrame.height(), SWP_NOACTIVATE);
-
- m_private->m_client->fullScreenClientDidEnterFullScreen();
- m_private->m_client->fullScreenClientForceRepaint();
-}
-
-void FullScreenController::enterFullScreenRepaintCompleted()
-{
- if (!m_private->m_isEnteringFullScreen)
- return;
- m_private->m_isEnteringFullScreen = false;
-
- // Normally, when the background fullscreen window is animated in, the Windows taskbar will be hidden, but this doesn't always work for some reason.
- // Setting the real fullscreen window to be a topmost window will force the taskbar to be hidden when we call AnimateWindow() below if it wasn't before.
- ::SetWindowPos(m_private->m_fullScreenWindow->hwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
- ::AnimateWindow(m_private->m_fullScreenWindow->hwnd(), kFullScreenAnimationDuration, AW_BLEND | AW_ACTIVATE);
-}
-
-void FullScreenController::exitFullScreen()
-{
- if (!m_private->m_isFullScreen || m_private->m_isExitingFullScreen)
- return;
- m_private->m_isFullScreen = false;
- m_private->m_isExitingFullScreen = true;
-
- ::AnimateWindow(m_private->m_fullScreenWindow->hwnd(), kFullScreenAnimationDuration, AW_HIDE | AW_BLEND);
-
- m_private->m_client->fullScreenClientWillExitFullScreen();
- m_private->m_client->fullScreenClientSetParentWindow(m_private->m_originalHost);
- m_private->m_fullScreenWindow = nullptr;
-
- ::SetWindowPos(m_private->m_client->fullScreenClientWindow(), 0, m_private->m_originalFrame.x(), m_private->m_originalFrame.y(), m_private->m_originalFrame.width(), m_private->m_originalFrame.height(), SWP_NOACTIVATE | SWP_NOZORDER);
-
- m_private->m_client->fullScreenClientDidExitFullScreen();
- m_private->m_client->fullScreenClientForceRepaint();
-}
-
-void FullScreenController::exitFullScreenRepaintCompleted()
-{
- if (!m_private->m_isExitingFullScreen)
- return;
- m_private->m_isExitingFullScreen = false;
-
- ASSERT(m_private->m_backgroundWindow);
- ::AnimateWindow(m_private->m_backgroundWindow->hwnd(), kFullScreenAnimationDuration, AW_HIDE | AW_BLEND);
- m_private->m_backgroundWindow = nullptr;
-}
-
-void FullScreenController::repaintCompleted()
-{
- if (m_private->m_isEnteringFullScreen)
- enterFullScreenRepaintCompleted();
- else if (m_private->m_isExitingFullScreen)
- exitFullScreenRepaintCompleted();
-}
-
-void FullScreenController::close()
-{
- if (!m_private->m_isFullScreen)
- return;
- m_private->m_isFullScreen = false;
-
- m_private->m_client->fullScreenClientWillExitFullScreen();
- m_private->m_client->fullScreenClientSetParentWindow(m_private->m_originalHost);
- m_private->m_fullScreenWindow = nullptr;
-
- m_private->m_client->fullScreenClientDidExitFullScreen();
- ::SetWindowPos(m_private->m_client->fullScreenClientWindow(), 0, m_private->m_originalFrame.x(), m_private->m_originalFrame.y(), m_private->m_originalFrame.width(), m_private->m_originalFrame.height(), SWP_NOACTIVATE | SWP_NOZORDER);
- ::RedrawWindow(m_private->m_client->fullScreenClientWindow(), 0, 0, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN);
- m_private->m_backgroundWindow = nullptr;
-}
-#endif

Powered by Google App Engine
This is Rietveld 408576698