WebContextMenuProxyMac.h [plain text]
#ifndef WebContextMenuProxyMac_h
#define WebContextMenuProxyMac_h
#if PLATFORM(MAC)
#include "WebContextMenuProxy.h"
#include <wtf/RetainPtr.h>
OBJC_CLASS NSPopUpButtonCell;
OBJC_CLASS NSWindow;
OBJC_CLASS WKView;
namespace WebKit {
class ShareableBitmap;
class WebContextMenuItemData;
class WebPageProxy;
class WebContextMenuProxyMac : public WebContextMenuProxy {
public:
static Ref<WebContextMenuProxyMac> create(WKView* webView, WebPageProxy* page)
{
return adoptRef(*new WebContextMenuProxyMac(webView, page));
}
~WebContextMenuProxyMac();
virtual void showContextMenu(const WebCore::IntPoint&, const Vector<RefPtr<WebContextMenuItem>>&, const ContextMenuContextData&) override;
virtual void hideContextMenu() override;
virtual void cancelTracking() override;
void contextMenuItemSelected(const WebContextMenuItemData&);
#if ENABLE(SERVICE_CONTROLS)
void clearServicesMenu();
#endif
WebPageProxy& page() const { return *m_page; }
NSWindow *window() const;
private:
WebContextMenuProxyMac(WKView*, WebPageProxy*);
void populate(const Vector<RefPtr<WebContextMenuItem>>&, const ContextMenuContextData&);
#if ENABLE(SERVICE_CONTROLS)
void setupServicesMenu(const ContextMenuContextData&);
#endif
RetainPtr<NSPopUpButtonCell> m_popup;
#if ENABLE(SERVICE_CONTROLS)
RetainPtr<NSMenu> m_servicesMenu;
#endif
WKView* m_webView;
WebPageProxy* m_page;
};
}
#endif // PLATFORM(MAC)
#endif // WebContextMenuProxyMac_h