-
aroben authored
Reviewed by Anders. Add new ContextMenuController and ContextMenuClient classes, and move context menu responsibilities from Chrome and ChromeClient to them. * WebCore.exp: * WebCore.xcodeproj/project.pbxproj: Add new files to project, and alphabetize some others. * page/Chrome.cpp: Remove context menu-related code. * page/Chrome.h: Ditto. * page/ChromeClient.h: * page/ContextMenuClient.h: Added. * page/ContextMenuController.cpp: Added. (WebCore::ContextMenuController::ContextMenuController): (WebCore::ContextMenuController::~ContextMenuController): (WebCore::ContextMenuController::handleContextMenuEvent): (WebCore::ContextMenuController::contextMenuActionSelected): * page/ContextMenuController.h: Added. (WebCore::ContextMenuController::client): * page/Page.cpp: Every Page now has a ContextMenuController. (WebCore::Page::Page): * page/Page.h: Made m_dragCaretController and m_chrome objects instead of pointers to objects. (WebCore::Page::contextMenuController): * platform/ContextMenu.cpp: (WebCore::ContextMenu::populate): Removed the call to Chrome to ask the delegate to add its menu items, and moved the code from the static addDefaultItems function into this method. * platform/ContextMenu.h: (WebCore::ContextMenu::show): Added an empty method body since this method is now called from ContextMenuController (although no one calls into ContextMenuController yet, so it's OK for this to be empty). (WebCore::ContextMenu::hide): Ditto. WebKit: Reviewed by Anders. Added new WebContextMenuClient class to act as WebCore's ChromeClient, and moved context menu-related code there from WebChromeClient. * WebCoreSupport/WebChromeClient.h: * WebCoreSupport/WebChromeClient.mm: * WebCoreSupport/WebContextMenuClient.h: Added. (WebContextMenuClient::webView): * WebCoreSupport/WebContextMenuClient.mm: Added. (WebContextMenuClient::create): (WebContextMenuClient::WebContextMenuClient): (WebContextMenuClient::ref): (WebContextMenuClient::deref): (WebContextMenuClient::addCustomContextMenuItems): * WebKit.xcodeproj/project.pbxproj: Added new files. * WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
769ddd85