Webkit之Port类(ChromeClientQt类)

## 需要Port的类
ChromeClientQt:实现宿主窗口、刷新窗口、内容、滚动条、滚动、坐标转换、页面Size变迁、
                布局更新、窗口/页面Size、焦点、获取焦点、创建/关闭窗口、窗口显示、模式显示
                工具栏/状态栏/状态文本/滚动栏/菜单栏、size可变、运行alert/prompt/confirm、
		是否可中断js。mouseover事件、打印、创colorChooser/dateChooser
		创popup菜单、创Search弹出栏、请求全屏
=======================================================================================================
Chrome析构
ChromeClient->chromeDestoryed()
ChromeClientQt:关闭eventLoop
=======================================================================================================
Chrome:设置窗口Rect
ChromeClient->setWindowRect()
ChromeClientQt:通知QWebPage发生位置变化的请求
=======================================================================================================
Chrome:设置focus()
ChromeClient->setFocus()
ChromeClientQt:通知QWiget进行focus操作,具体的Qt平台(QApplication/QWiget/InputContext相互作用)
=======================================================================================================
Chrome:createWindow()
ChromeClient:createWindow()
ChromeClientQt:m_webPage->createWindow(features.dialog ? QWebPage::WebModalDialog : QWebPage::WebBrowserWindow);
=======================================================================================================
void ChromeClientQt::runModal()
>>建立QEventLoop
=======================================================================================================
void ChromeClientQt::setToolbarsVisible(bool visible)
>>通知QWebPage工具栏状态改变
=======================================================================================================
void ChromeClientQt::addMessageToConsole(
>>m_webPage->javaScriptConsoleMessage(x, lineNumber, y);
=======================================================================================================
void ChromeClientQt::closeWindowSoon()
>>m_webPage->mainFrame()->d->frame->loader()->stopAllLoaders();
>>emit m_webPage->windowCloseRequested();
=======================================================================================================
void ChromeClientQt::runJavaScriptAlert(Frame* f, const String& msg)
>>m_webPage->javaScriptAlert(webFrame, x);
=======================================================================================================
void ChromeClientQt::setStatusbarText(const String& msg)
>>emit m_webPage->statusBarMessage(x);
=======================================================================================================
void ChromeClientQt::scroll(const IntSize& delta, const IntRect& scrollViewRect, const IntRect&)
>>platformPageClient()->scroll(delta.width(), delta.height(), scrollViewRect);
>>emit m_webPage->scrollRequested(delta.width(), delta.height(), scrollViewRect);
=======================================================================================================
IntRect ChromeClientQt::windowToScreen(const IntRect& rect) const
>>screenRect.translate(ownerWidget->mapToGlobal(QPoint(0, 0)));
=======================================================================================================
void ChromeClientQt::mouseDidMoveOverElement(const HitTestResult& result, unsigned)
>>emit m_webPage->linkHovered(lastHoverURL.prettyURL()...)
=======================================================================================================
void ChromeClientQt::print(Frame* frame)
>>emit m_webPage->printRequested(QWebFramePrivate::kit(frame));
=======================================================================================================
FullScreenVideoQt* ChromeClientQt::fullScreenVideo()
>>m_fullScreenVideo = new FullScreenVideoQt(this);
=======================================================================================================
void ChromeClientQt::enterFullscreenForNode(Node* node)
>>fullScreenVideo()->enterFullScreenForNode(node);
void ChromeClientQt::exitFullscreenForNode(Node* node)
>>fullScreenVideo()->exitFullScreenForNode(node);
=======================================================================================================
QWebSelectMethod* ChromeClientQt::createSelectPopup() const
>>QWebSelectMethod* result = m_platformPlugin.createSelectInputMethod();
=======================================================================================================
PassRefPtr<PopupMenu> ChromeClientQt::createPopupMenu(PopupMenuClient* client) const
>>return adoptRef(new PopupMenuQt(client, this));
=======================================================================================================
PassRefPtr<SearchPopupMenu> ChromeClientQt::createSearchPopupMenu(PopupMenuClient* client) const
>>return adoptRef(new SearchPopupMenuQt(createPopupMenu(client)));
=======================================================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值