ContextMenuClientEfl.cpp [plain text]
#include "config.h"
#include "ContextMenuClientEfl.h"
#include "EwkView.h"
#include "WKArray.h"
#include "WKPage.h"
using namespace WebKit;
static inline ContextMenuClientEfl* toContextClientEfl(const void* clientInfo)
{
return static_cast<ContextMenuClientEfl*>(const_cast<void*>(clientInfo));
}
static void customContextMenuItemSelected(WKPageRef, WKContextMenuItemRef contextMenuItem, const void* clientInfo)
{
toContextClientEfl(clientInfo)->view()->customContextMenuItemSelected(contextMenuItem);
}
static void showContextMenu(WKPageRef, WKPoint menuLocation, WKArrayRef menuItems, const void* clientInfo)
{
toContextClientEfl(clientInfo)->view()->showContextMenu(menuLocation, menuItems);
}
static void hideContextMenu(WKPageRef, const void* clientInfo)
{
toContextClientEfl(clientInfo)->view()->hideContextMenu();
}
ContextMenuClientEfl::ContextMenuClientEfl(EwkView* view)
: m_view(view)
{
WKPageRef pageRef = m_view->wkPage();
ASSERT(pageRef);
WKPageContextMenuClientV3 contextMenuClient;
memset(&contextMenuClient, 0, sizeof(WKPageContextMenuClientV3));
contextMenuClient.base.version = 3;
contextMenuClient.base.clientInfo = this;
contextMenuClient.getContextMenuFromProposedMenu_deprecatedForUseWithV0 = 0;
contextMenuClient.customContextMenuItemSelected = customContextMenuItemSelected;
contextMenuClient.contextMenuDismissed = 0;
contextMenuClient.getContextMenuFromProposedMenu = 0;
contextMenuClient.showContextMenu = showContextMenu;
contextMenuClient.hideContextMenu = hideContextMenu;
WKPageSetPageContextMenuClient(pageRef, &contextMenuClient.base);
}