Example #1
0
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;
}
Example #2
0
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));
}