Webkit之Port类(ChromeClientQt类)
2015-11-21 21:13
417 查看
## 需要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))); =======================================================================================================
相关文章推荐
- 图像处理qt实现
- QTP
- MQTT实现消息推送
- Qt5调用QPixmap::fromWinHICON
- Qt实现图像自适应窗口大小之scaled()函数使用
- qt5
- 关于Qt的QFileDialog的使用问题
- Qt可执行程序写入版本信息
- Qt 手动生成moc 文件
- Qt制作Aero特效窗口
- Qt使用QGraphicsView实现滑动窗体效果
- QT显示图片
- QT 小票打印
- QT中嵌入SDL
- qt 自动完成LineEdit
- qt 4.6.2 vs 2005 + QCreator 开发环境配置(有注册码)
- QT VS配置UNICODE问题
- Qt creator error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(vs2010的嵌入式清单文件)
- QT父子与QT对象delete
- Qt之命令行编译(nmake)