summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp')
-rw-r--r--Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp107
1 files changed, 0 insertions, 107 deletions
diff --git a/Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp b/Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp
deleted file mode 100644
index 4b5a5a70d..000000000
--- a/Source/WebKit2/UIProcess/win/WebContextMenuProxyWin.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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"
-#include "WebContextMenuProxyWin.h"
-
-#include <WebCore/NotImplemented.h>
-
-using namespace WebCore;
-
-namespace WebKit {
-
-WebContextMenuProxyWin::WebContextMenuProxyWin(HWND parentWindow, WebPageProxy* page)
- : m_window(parentWindow)
- , m_page(page)
- , m_menu(0)
-{
-}
-
-void WebContextMenuProxyWin::populateMenu(HMENU menu, const Vector<WebContextMenuItemData>& items)
-{
- for (size_t i = 0; i < items.size(); ++i) {
- const WebContextMenuItemData& itemData = items[i];
- switch (itemData.type()) {
- case ActionType:
- case CheckableActionType: {
- UINT flags = itemData.enabled() ? MF_ENABLED : MF_DISABLED;
- if (itemData.checked())
- flags |= MF_CHECKED;
- String title = itemData.title();
- ::AppendMenu(menu, flags, itemData.action(), title.charactersWithNullTermination());
-
- m_actionMap.add(itemData.action(), itemData);
- break;
- }
- case SeparatorType:
- ::AppendMenu(menu, MF_SEPARATOR, 0, 0);
- break;
- case SubmenuType: {
- HMENU subMenu = ::CreatePopupMenu();
- populateMenu(subMenu, itemData.submenu());
- String title = itemData.title();
- ::AppendMenu(menu, MF_POPUP, reinterpret_cast<UINT>(subMenu), title.charactersWithNullTermination());
- break;
- }
- default:
- ASSERT_NOT_REACHED();
- }
- }
-}
-
-void WebContextMenuProxyWin::showContextMenu(const IntPoint& origin, const Vector<WebContextMenuItemData>& items)
-{
- if (items.isEmpty())
- return;
-
- // Hide any context menu we have showing (this also destroys the menu).
- hideContextMenu();
-
- m_menu = ::CreatePopupMenu();
- populateMenu(m_menu, items);
-
- POINT point = POINT(origin);
- if (!::ClientToScreen(m_window, &point))
- return;
-
- UINT flags = TPM_RIGHTBUTTON | TPM_TOPALIGN | TPM_VERPOSANIMATION | TPM_HORIZONTAL | TPM_LEFTALIGN | TPM_HORPOSANIMATION | TPM_RETURNCMD | TPM_NONOTIFY;
- int selectedCommand = ::TrackPopupMenuEx(m_menu, flags, point.x, point.y, m_window, 0);
- if (!selectedCommand)
- return;
-
- m_page->contextMenuItemSelected(m_actionMap.get(selectedCommand));
-}
-
-void WebContextMenuProxyWin::hideContextMenu()
-{
- if (m_menu) {
- ::DestroyMenu(m_menu);
- m_menu = 0;
- }
-
- m_actionMap.clear();
-}
-
-} // namespace WebKit