diff options
Diffstat (limited to 'WebCore/platform/mac/ContextMenuMac.mm')
-rw-r--r-- | WebCore/platform/mac/ContextMenuMac.mm | 76 |
1 files changed, 3 insertions, 73 deletions
diff --git a/WebCore/platform/mac/ContextMenuMac.mm b/WebCore/platform/mac/ContextMenuMac.mm index 7c91028..c9451b9 100644 --- a/WebCore/platform/mac/ContextMenuMac.mm +++ b/WebCore/platform/mac/ContextMenuMac.mm @@ -28,92 +28,27 @@ #if ENABLE(CONTEXT_MENUS) -#include "ContextMenuController.h" - -@interface WebCoreMenuTarget : NSObject { - WebCore::ContextMenuController* _menuController; -} -+ (WebCoreMenuTarget*)sharedMenuTarget; -- (WebCore::ContextMenuController*)menuController; -- (void)setMenuController:(WebCore::ContextMenuController*)menuController; -- (void)forwardContextMenuAction:(id)sender; -- (BOOL)validateMenuItem:(NSMenuItem *)item; -@end - -static WebCoreMenuTarget* target; - -@implementation WebCoreMenuTarget - -+ (WebCoreMenuTarget*)sharedMenuTarget -{ - if (!target) - target = [[WebCoreMenuTarget alloc] init]; - return target; -} - -- (WebCore::ContextMenuController*)menuController -{ - return _menuController; -} - -- (void)setMenuController:(WebCore::ContextMenuController*)menuController -{ - _menuController = menuController; -} - -- (void)forwardContextMenuAction:(id)sender -{ - WebCore::ContextMenuItem item(WebCore::ActionType, static_cast<WebCore::ContextMenuAction>([sender tag]), [sender title]); - _menuController->contextMenuItemSelected(&item); -} - -- (BOOL)validateMenuItem:(NSMenuItem *)item -{ - WebCore::ContextMenuItem coreItem(item); - ASSERT(_menuController->contextMenu()); - _menuController->contextMenu()->checkOrEnableIfNeeded(coreItem); - return coreItem.enabled(); -} - -@end - namespace WebCore { -ContextMenu::ContextMenu(const HitTestResult& result) - : m_hitTestResult(result) +ContextMenu::ContextMenu() { NSMutableArray* array = [[NSMutableArray alloc] init]; m_platformDescription = array; [array release]; - - [[WebCoreMenuTarget sharedMenuTarget] setMenuController:controller()]; } -ContextMenu::ContextMenu(const HitTestResult& result, const PlatformMenuDescription menu) - : m_hitTestResult(result) - , m_platformDescription(menu) +ContextMenu::ContextMenu(const PlatformMenuDescription menu) + : m_platformDescription(menu) { - [[WebCoreMenuTarget sharedMenuTarget] setMenuController:controller()]; } ContextMenu::~ContextMenu() { } - -static void setMenuItemTarget(NSMenuItem* menuItem) -{ - [menuItem setTarget:[WebCoreMenuTarget sharedMenuTarget]]; - [menuItem setAction:@selector(forwardContextMenuAction:)]; -} void ContextMenu::appendItem(ContextMenuItem& item) { - checkOrEnableIfNeeded(item); - - ContextMenuItemType type = item.type(); NSMenuItem* platformItem = item.releasePlatformDescription(); - if (type == ActionType) - setMenuItemTarget(platformItem); [m_platformDescription.get() addObject:platformItem]; [platformItem release]; @@ -121,12 +56,7 @@ void ContextMenu::appendItem(ContextMenuItem& item) void ContextMenu::insertItem(unsigned position, ContextMenuItem& item) { - checkOrEnableIfNeeded(item); - - ContextMenuItemType type = item.type(); NSMenuItem* platformItem = item.releasePlatformDescription(); - if (type == ActionType) - setMenuItemTarget(platformItem); [m_platformDescription.get() insertObject:platformItem atIndex:position]; [platformItem release]; |