summaryrefslogtreecommitdiffstats
path: root/WebCore/page/ContextMenuController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page/ContextMenuController.cpp')
-rw-r--r--WebCore/page/ContextMenuController.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/WebCore/page/ContextMenuController.cpp b/WebCore/page/ContextMenuController.cpp
index 726dee9..d384b02 100644
--- a/WebCore/page/ContextMenuController.cpp
+++ b/WebCore/page/ContextMenuController.cpp
@@ -31,7 +31,7 @@
#include "Chrome.h"
#include "ContextMenu.h"
#include "ContextMenuClient.h"
-#include "ContextMenuSelectionHandler.h"
+#include "ContextMenuProvider.h"
#include "Document.h"
#include "DocumentFragment.h"
#include "DocumentLoader.h"
@@ -67,7 +67,6 @@ ContextMenuController::ContextMenuController(Page* page, ContextMenuClient* clie
: m_page(page)
, m_client(client)
, m_contextMenu(0)
- , m_selectionHandler(0)
{
ASSERT_ARG(page, page);
ASSERT_ARG(client, client);
@@ -81,9 +80,9 @@ ContextMenuController::~ContextMenuController()
void ContextMenuController::clearContextMenu()
{
m_contextMenu.set(0);
- if (m_selectionHandler)
- m_selectionHandler->contextMenuCleared();
- m_selectionHandler = 0;
+ if (m_menuProvider)
+ m_menuProvider->contextMenuCleared();
+ m_menuProvider = 0;
}
void ContextMenuController::handleContextMenuEvent(Event* event)
@@ -95,19 +94,17 @@ void ContextMenuController::handleContextMenuEvent(Event* event)
showContextMenu(event);
}
-void ContextMenuController::showContextMenu(Event* event, Vector<ContextMenuItem>& items, PassRefPtr<ContextMenuSelectionHandler> selectionHandler)
+void ContextMenuController::showContextMenu(Event* event, PassRefPtr<ContextMenuProvider> menuProvider)
{
- m_selectionHandler = selectionHandler;
+ m_menuProvider = menuProvider;
m_contextMenu.set(createContextMenu(event));
if (!m_contextMenu) {
clearContextMenu();
return;
}
- for (size_t i = 0; i < items.size(); ++i) {
- ContextMenuItem& item = items[i];
- m_contextMenu->appendItem(item);
- }
+
+ m_menuProvider->populateContextMenu(m_contextMenu.get());
showContextMenu(event);
}
@@ -156,8 +153,8 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
}
if (item->action() >= ContextMenuItemBaseCustomTag) {
- ASSERT(m_selectionHandler);
- m_selectionHandler->contextMenuItemSelected(item);
+ ASSERT(m_menuProvider);
+ m_menuProvider->contextMenuItemSelected(item);
return;
}