Index: Source/WebCore/platform/win/ContextMenuWin.cpp |
diff --git a/Source/WebCore/platform/win/ContextMenuWin.cpp b/Source/WebCore/platform/win/ContextMenuWin.cpp |
deleted file mode 100644 |
index 5aca72b8aba922b85cd4c838e04c2acac203edbf..0000000000000000000000000000000000000000 |
--- a/Source/WebCore/platform/win/ContextMenuWin.cpp |
+++ /dev/null |
@@ -1,140 +0,0 @@ |
-/* |
- * Copyright (C) 2006, 2007 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 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" |
-#include "ContextMenu.h" |
- |
-#include "Document.h" |
-#include "Frame.h" |
-#include "FrameView.h" |
-#include "Node.h" |
-#include "NotImplemented.h" |
-#include <windows.h> |
-#include <wtf/Vector.h> |
-#include <wtf/text/CString.h> |
- |
-#ifndef MIIM_FTYPE |
-#define MIIM_FTYPE MIIM_TYPE |
-#endif |
-#ifndef MIIM_STRING |
-#define MIIM_STRING MIIM_TYPE |
-#endif |
- |
-namespace WebCore { |
- |
-ContextMenu::ContextMenu(HMENU menu) |
-{ |
- getContextMenuItems(menu, m_items); |
-} |
- |
-void ContextMenu::getContextMenuItems(HMENU menu, Vector<ContextMenuItem>& items) |
-{ |
-#if OS(WINCE) |
- notImplemented(); |
-#else |
- int count = ::GetMenuItemCount(menu); |
- if (count <= 0) |
- return; |
- |
- for (int i = 0; i < count; ++i) { |
- MENUITEMINFO info = {0}; |
- info.cbSize = sizeof(MENUITEMINFO); |
- info.fMask = MIIM_FTYPE | MIIM_ID | MIIM_STRING | MIIM_STATE | MIIM_SUBMENU; |
- |
- if (!::GetMenuItemInfo(menu, i, TRUE, &info)) |
- continue; |
- |
- if (info.fType == MFT_SEPARATOR) { |
- items.append(ContextMenuItem(SeparatorType, ContextMenuItemTagNoAction, String())); |
- continue; |
- } |
- |
- int menuStringLength = info.cch + 1; |
- OwnArrayPtr<WCHAR> menuString = adoptArrayPtr(new WCHAR[menuStringLength]); |
- info.dwTypeData = menuString.get(); |
- info.cch = menuStringLength; |
- |
- if (::GetMenuItemInfo(menu, i, TRUE, &info)) |
- items.append(ContextMenuItem(info)); |
- } |
-#endif |
-} |
- |
-HMENU ContextMenu::createPlatformContextMenuFromItems(const Vector<ContextMenuItem>& items) |
-{ |
- HMENU menu = ::CreatePopupMenu(); |
- |
- for (size_t i = 0; i < items.size(); ++i) { |
- const ContextMenuItem& item = items[i]; |
- |
- MENUITEMINFO menuItem = item.platformContextMenuItem(); |
- |
-#if OS(WINCE) |
- UINT flags = MF_BYPOSITION; |
- UINT newItem = 0; |
- LPCWSTR title = 0; |
- |
- if (item.type() == SeparatorType) |
- flags |= MF_SEPARATOR; |
- else { |
- flags |= MF_STRING; |
- flags |= item.checked() ? MF_CHECKED : MF_UNCHECKED; |
- flags |= item.enabled() ? MF_ENABLED : MF_GRAYED; |
- |
- title = menuItem.dwTypeData; |
- menuItem.dwTypeData = 0; |
- |
- if (menuItem.hSubMenu) { |
- flags |= MF_POPUP; |
- newItem = reinterpret_cast<UINT>(menuItem.hSubMenu); |
- menuItem.hSubMenu = 0; |
- } else |
- newItem = menuItem.wID; |
- } |
- |
- ::InsertMenuW(menu, i, flags, newItem, title); |
-#else |
- // ContextMenuItem::platformContextMenuItem doesn't set the title of the MENUITEMINFO to make the |
- // lifetime handling easier for callers. |
- String itemTitle = item.title(); |
- if (item.type() != SeparatorType) { |
- menuItem.fMask |= MIIM_STRING; |
- menuItem.cch = itemTitle.length(); |
- menuItem.dwTypeData = const_cast<LPWSTR>(itemTitle.charactersWithNullTermination()); |
- } |
- |
- ::InsertMenuItem(menu, i, TRUE, &menuItem); |
-#endif |
- } |
- |
- return menu; |
-} |
- |
-HMENU ContextMenu::platformContextMenu() const |
-{ |
- return createPlatformContextMenuFromItems(m_items); |
-} |
- |
-} // namespace WebCore |