static PassRefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > buildScrollRectsForLayer(GraphicsLayer* graphicsLayer) { RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect> > scrollRects = TypeBuilder::Array<TypeBuilder::LayerTree::ScrollRect>::create(); WebLayer* webLayer = graphicsLayer->platformLayer(); for (size_t i = 0; i < webLayer->nonFastScrollableRegion().size(); ++i) { scrollRects->addItem(buildScrollRect(webLayer->nonFastScrollableRegion()[i], TypeBuilder::LayerTree::ScrollRect::Type::RepaintsOnScroll)); } for (size_t i = 0; i < webLayer->touchEventHandlerRegion().size(); ++i) { scrollRects->addItem(buildScrollRect(webLayer->touchEventHandlerRegion()[i], TypeBuilder::LayerTree::ScrollRect::Type::TouchEventHandler)); } if (webLayer->haveWheelEventHandlers()) { WebRect webRect(webLayer->position().x, webLayer->position().y, webLayer->bounds().width, webLayer->bounds().height); scrollRects->addItem(buildScrollRect(webRect, TypeBuilder::LayerTree::ScrollRect::Type::WheelEventHandler)); } return scrollRects->length() ? scrollRects.release() : nullptr; }
void FBPostDialogActivity::createWindow(const QRectF &window_geometry, const QString &window_title, const QPointF &window_pos) { d->mFrame = new PlexyDesk::Window(); d->mFrame->setGeometry(geometry()); d->mFrame->setVisible(true); d->mFrame->setLabelName("Message Dialog"); if (hasAttribute("title")) { d->mFrame->setWindowTitle(attributes()["title"].toString()); } d->mFrame->setWindowFlag(PlexyDesk::Window::kRenderBackground); d->mFrame->setWindowFlag(PlexyDesk::Window::kTopLevelWindow); d->mFrame->setWindowFlag(PlexyDesk::Window::kConvertToWindowType); d->mFrame->setWindowFlag(PlexyDesk::Window::kRenderWindowTitle); d->mFrame->setWindowFlag(PlexyDesk::Window::kRenderDropShadow); exec(); this->showActivity(); // todo: invoke UI connect(d->mFrame, SIGNAL(closed(PlexyDesk::Widget *)), this, SLOT(onWidgetClosed(PlexyDesk::Widget *))); d->mNm = PlexyDesk::Config::getNetworkAccessManager(); d->mWebView = new QGraphicsWebView(d->mFrame); d->mWebView->page()->setNetworkAccessManager(d->mNm); QRectF webRect(0.0, 0.0, this->geometry().width(), this->geometry().height() - 64); d->mWebView->setGeometry(webRect); d->mWebView->setPos(QPoint(0.0, 72.0)); d->mWebView->setResizesToContents(false); d->mWebView->show(); QString token = attributes()["token"].toString(); QString urlStr(QString("https://www.facebook.com/dialog/" "feed?app_id=170356722999159&display=popup&caption=An%" "20example%20caption&link=https%3A%2F%2Fdevelopers." "facebook.com%2Fdocs%2Fdialogs%2F&redirect_uri=http://" "www.facebook.com/connect/login_success.html")); qDebug() << Q_FUNC_INFO << urlStr; d->mWebView->setUrl(QUrl(urlStr)); }