ViewClientEfl::ViewClientEfl(EwkView* view) : m_view(view) { ASSERT(m_view); WKViewClientV0 viewClient; memset(&viewClient, 0, sizeof(WKViewClientV0)); viewClient.base.version = 0; viewClient.base.clientInfo = this; viewClient.didChangeContentsSize = didChangeContentsSize; viewClient.didFindZoomableArea = didFindZoomableArea; viewClient.viewNeedsDisplay = viewNeedsDisplay; viewClient.webProcessCrashed = webProcessCrashed; viewClient.webProcessDidRelaunch = webProcessDidRelaunch; viewClient.didChangeContentsPosition = didChangeContentsPosition; viewClient.didRenderFrame = didRenderFrame; viewClient.didCompletePageTransition = didCompletePageTransition; viewClient.didChangeViewportAttributes = didChangeViewportAttributes; viewClient.didChangeTooltip = didChangeTooltip; #if ENABLE(TOUCH_EVENTS) viewClient.doneWithTouchEvent = doneWithTouchEvent; #endif WKViewSetViewClient(m_view->wkView(), &viewClient.base); #if ENABLE(INPUT_TYPE_COLOR) WKColorPickerClientV0 colorPickerClient; memset(&colorPickerClient, 0, sizeof(WKColorPickerClientV0)); colorPickerClient.base.version = 0; colorPickerClient.base.clientInfo = this; colorPickerClient.showColorPicker = showColorPicker; colorPickerClient.endColorPicker = endColorPicker; WKViewSetColorPickerClient(m_view->wkView(), &colorPickerClient.base); #endif }
ViewClientEfl::~ViewClientEfl() { WKViewSetViewClient(m_view->wkView(), 0); #if ENABLE(INPUT_TYPE_COLOR) WKViewSetColorPickerClient(m_view->wkView(), 0); #endif }
static void setViewClient(WKViewRef view, const void* clientInfo) { WKViewClient viewClient; memset(&viewClient, 0, sizeof(WKViewClient)); viewClient.version = kWKViewClientCurrentVersion; viewClient.clientInfo = clientInfo; viewClient.webProcessCrashed = webProcessCrashed; viewClient.webProcessDidRelaunch = webProcessDidRelaunch; WKViewSetViewClient(view, &viewClient); }
ViewClientEfl::ViewClientEfl(EwkView* view) : m_view(view) { ASSERT(m_view); WKViewClient viewClient; memset(&viewClient, 0, sizeof(WKViewClient)); viewClient.version = kWKViewClientCurrentVersion; viewClient.clientInfo = this; viewClient.didChangeContentsSize = didChangeContentsSize; viewClient.viewNeedsDisplay = viewNeedsDisplay; viewClient.webProcessCrashed = webProcessCrashed; viewClient.webProcessDidRelaunch = webProcessDidRelaunch; WKViewSetViewClient(m_view->wkView(), &viewClient); }
void Tab::init() { m_view = WKViewCreate(m_context, m_browser->contentPageGroup()); WKViewInitialize(m_view); WKViewSetIsFocused(m_view, true); WKViewSetIsVisible(m_view, true); m_page = WKViewGetPage(m_view); WKStringRef appName = WKStringCreateWithUTF8CString("Drowser"); WKPageSetApplicationNameForUserAgent(m_page, appName); WKRelease(appName); WKViewClient client; std::memset(&client, 0, sizeof(WKViewClient)); client.version = kWKViewClientCurrentVersion; client.clientInfo = this; client.viewNeedsDisplay = &Tab::onViewNeedsDisplayCallback; WKViewSetViewClient(m_view, &client); WKPageLoaderClient loaderClient; memset(&loaderClient, 0, sizeof(WKPageLoaderClient)); loaderClient.version = kWKPageLoaderClientCurrentVersion; loaderClient.clientInfo = this; loaderClient.didStartProgress = &Tab::onStartProgressCallback; loaderClient.didChangeProgress = &Tab::onChangeProgressCallback; loaderClient.didFinishProgress = &Tab::onFinishProgressCallback; loaderClient.didCommitLoadForFrame = &Tab::onCommitLoadForFrame; loaderClient.didReceiveTitleForFrame = &Tab::onReceiveTitleForFrame; loaderClient.didFailProvisionalLoadWithErrorForFrame = &Tab::onFailProvisionalLoadWithErrorForFrameCallback; WKPageSetPageLoaderClient(m_page, &loaderClient); WKPageUIClient uiClient; memset(&uiClient, 0, sizeof(WKPageUIClient)); uiClient.version = kWKPageUIClientCurrentVersion; uiClient.clientInfo = this; uiClient.createNewPage = &Tab::createNewPageCallback; uiClient.mouseDidMoveOverElement = &Tab::onMouseDidMoveOverElement; WKPageSetPageUIClient(m_page, &uiClient); }
ViewClientEfl::~ViewClientEfl() { WKViewSetViewClient(m_view->wkView(), 0); }