/// /// \brief AppListView::fitToContent change view size to fit viewport content /// void AppListView::fitToContent() { if (width() == contentsRect().width() && height() == contentsSize().height()) return; const int h = contentsSize().height(); setFixedHeight(h < 0 ? 0 : h); setFixedWidth(contentsRect().width()); }
ScrollOffset maximumScrollOffset() const override { ScrollOffset visibleViewport(viewportSize()); visibleViewport.scale(1 / m_scale); ScrollOffset maxOffset = ScrollOffset(contentsSize()) - visibleViewport; return ScrollOffset(maxOffset); }
void PopupMenuEditor::resizeToContents() { QSize s = contentsSize(); dropLine->resize( s.width(), 2 ); s.rwidth() += borderSize * 2; s.rheight() += borderSize * 2; resize( s ); }
void WebContentAnimationItem::updatePreferredContentSize(const QSize& size) { // FIXME: we have bug in QtWebKit API when tileCacheEnabled is true. // this causes viewport not to reset between the page loads. // Thus, we need to update viewport manually until we have fix for this. m_webView->page()->setPreferredContentsSize(size); resize(contentsSize()); }
void PinchViewport::mainFrameDidChangeSize() { // In unit tests we may not have initialized the layer tree. if (m_innerViewportScrollLayer) m_innerViewportScrollLayer->setSize(contentsSize()); // Make sure the viewport's offset is clamped within the newly sized main frame. setLocation(m_offset); }
void VisualViewport::mainFrameDidChangeSize() { TRACE_EVENT0("blink", "VisualViewport::mainFrameDidChangeSize"); // In unit tests we may not have initialized the layer tree. if (m_innerViewportScrollLayer) m_innerViewportScrollLayer->setSize(FloatSize(contentsSize())); clampToBoundaries(); }
void WebViewNix::didChangeContentPosition(const WebCore::FloatPoint& trajectoryVector) { DrawingAreaProxy* drawingArea = page()->drawingArea(); if (!drawingArea) return; FloatRect visibleContentsRect(contentPosition(), visibleContentsSize()); visibleContentsRect.intersect(FloatRect(FloatPoint(), contentsSize())); drawingArea->setVisibleContentsRect(visibleContentsRect, trajectoryVector); }
void WebView::updateViewportSize() { if (CoordinatedDrawingAreaProxy* drawingArea = static_cast<CoordinatedDrawingAreaProxy*>(page()->drawingArea())) { // Web Process expects sizes in UI units, and not raw device units. drawingArea->setSize(roundedIntSize(dipSize()), IntSize(), IntSize()); FloatRect visibleContentsRect(contentPosition(), visibleContentsSize()); visibleContentsRect.intersect(FloatRect(FloatPoint(), contentsSize())); drawingArea->setVisibleContentsRect(visibleContentsRect, FloatPoint()); } }
IntSize BackingStoreClient::transformedContentsSize() const { // mapToTransformed() functions use this method to crop their results, // so we can't make use of them here. While we want rounding inside page // boundaries to extend rectangles and round points, we need to crop the // contents size to the floored values so that we don't try to display // or report points that are not fully covered by the actual float-point // contents rectangle. const IntSize untransformedContentsSize = contentsSize(); const FloatPoint transformedBottomRight = m_webPage->d->m_transformationMatrix->mapPoint( FloatPoint(untransformedContentsSize.width(), untransformedContentsSize.height())); return IntSize(floorf(transformedBottomRight.x()), floorf(transformedBottomRight.y())); }
int QWebFrame::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 13) qt_static_metacall(this, _c, _id, _a); _id -= 13; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< qreal*>(_v) = textSizeMultiplier(); break; case 1: *reinterpret_cast< qreal*>(_v) = zoomFactor(); break; case 2: *reinterpret_cast< QString*>(_v) = title(); break; case 3: *reinterpret_cast< QUrl*>(_v) = url(); break; case 4: *reinterpret_cast< QUrl*>(_v) = requestedUrl(); break; case 5: *reinterpret_cast< QUrl*>(_v) = baseUrl(); break; case 6: *reinterpret_cast< QIcon*>(_v) = icon(); break; case 7: *reinterpret_cast< QSize*>(_v) = contentsSize(); break; case 8: *reinterpret_cast< QPoint*>(_v) = scrollPosition(); break; case 9: *reinterpret_cast< bool*>(_v) = hasFocus(); break; } _id -= 10; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setTextSizeMultiplier(*reinterpret_cast< qreal*>(_v)); break; case 1: setZoomFactor(*reinterpret_cast< qreal*>(_v)); break; case 3: setUrl(*reinterpret_cast< QUrl*>(_v)); break; case 8: setScrollPosition(*reinterpret_cast< QPoint*>(_v)); break; } _id -= 10; } else if (_c == QMetaObject::ResetProperty) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 10; } #endif // QT_NO_PROPERTIES return _id; }
void QAutoExpandList::fitSize() { if (mIsExpandEnabled) { QSize Size = contentsSize(); QMargins Mar = contentsMargins(); Size.setHeight(Size.height() + Mar.top() + Mar.bottom()); if ((Size.height()) >=0 && (Size.width()>=0)) { setMinimumSize(Size); } } }
int QDeclarativePaintedItem::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QDeclarativeItem::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 5) qt_static_metacall(this, _c, _id, _a); _id -= 5; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< QSize*>(_v) = contentsSize(); break; case 1: *reinterpret_cast< QColor*>(_v) = fillColor(); break; case 2: *reinterpret_cast< int*>(_v) = pixelCacheSize(); break; case 3: *reinterpret_cast< bool*>(_v) = smoothCache(); break; case 4: *reinterpret_cast< qreal*>(_v) = contentsScale(); break; } _id -= 5; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setContentsSize(*reinterpret_cast< QSize*>(_v)); break; case 1: setFillColor(*reinterpret_cast< QColor*>(_v)); break; case 2: setPixelCacheSize(*reinterpret_cast< int*>(_v)); break; case 3: setSmoothCache(*reinterpret_cast< bool*>(_v)); break; case 4: setContentsScale(*reinterpret_cast< qreal*>(_v)); break; } _id -= 5; } else if (_c == QMetaObject::ResetProperty) { _id -= 5; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 5; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 5; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 5; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 5; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 5; } #endif // QT_NO_PROPERTIES return _id; }
void SelectionHighlight::paint(QPainter *painter) { if (!item()) return; painter->save(); painter->fillRect(QRectF(0,0,contentsSize().width(), contentsSize().height()), QColor(0,0,0,127)); painter->setTransform(transform()); // Setting the composition mode such that the transparency will // be erased as per the selected item. painter->setCompositionMode(QPainter::CompositionMode_Clear); painter->fillRect(0, 0, item()->width(), item()->height(), Qt::black); painter->restore(); // Use the painter with the original transform and not with the // item's transform for display of name. if (!m_nameDisplayActive) return; // Paint the text in gray background if display name is active.. QRect textRect = painter->boundingRect(QRect(10, contentsSize().height() - 10 , contentsSize().width() - 20, contentsSize().height()), Qt::AlignCenter | Qt::ElideRight, m_name); qreal xPosition = m_displayPoint.x(); if (xPosition + textRect.width() > contentsSize().width()) xPosition = contentsSize().width() - textRect.width(); if (xPosition < 0) { xPosition = 0; textRect.setWidth(contentsSize().width()); } qreal yPosition = m_displayPoint.y() - textRect.height() - 20; if (yPosition < 50 ) yPosition = 50; painter->fillRect(QRectF(xPosition - 5, yPosition - 5, textRect.width() + 10, textRect.height() + 10), Qt::gray); painter->drawRect(QRectF(xPosition - 5, yPosition - 5, textRect.width() + 10, textRect.height() + 10)); painter->drawStaticText(xPosition, yPosition, QStaticText(m_name)); }
IntPoint VisualViewport::clampDocumentOffsetAtScale(const IntPoint& offset, float scale) { if (!mainFrame() || !mainFrame()->view()) return IntPoint(); FrameView* view = mainFrame()->view(); FloatSize scaledSize(m_size); scaledSize.scale(1 / scale); IntPoint visualViewportMax = flooredIntPoint(FloatSize(contentsSize()) - scaledSize); IntPoint max = view->maximumScrollPosition() + visualViewportMax; IntPoint min = view->minimumScrollPosition(); // VisualViewportMin should be (0, 0) IntPoint clamped = offset; clamped = clamped.shrunkTo(max); clamped = clamped.expandedTo(min); return clamped; }
void ScrollView::setHorizontalAdjustment(GtkAdjustment* hadj, bool resetValues) { ASSERT(!parent() || !hadj); if (parent()) return; m_horizontalAdjustment = hadj; if (!m_horizontalAdjustment) { MainFrameScrollbarGtk* hScrollbar = reinterpret_cast<MainFrameScrollbarGtk*>(horizontalScrollbar()); if (hScrollbar) hScrollbar->detachAdjustment(); return; } // We may be lacking scrollbars when returning to a cached // page, this kicks the page to recreate the scrollbars. setHasHorizontalScrollbar(true); MainFrameScrollbarGtk* hScrollbar = reinterpret_cast<MainFrameScrollbarGtk*>(horizontalScrollbar()); hScrollbar->attachAdjustment(m_horizontalAdjustment.get()); // We used to reset everything to 0 here, but when page cache // is enabled we reuse FrameViews that are cached. Since their // size is not going to change when being restored, (which is // what would cause the upper limit in the adjusments to be // set in the normal case), we make sure they are up-to-date // here. This is needed for the parent scrolling widget to be // able to report correct values. int horizontalPageStep = max(max<int>(frameRect().width() * Scrollbar::minFractionToStepWhenPaging(), frameRect().width() - Scrollbar::maxOverlapBetweenPages()), 1); gtk_adjustment_configure(m_horizontalAdjustment.get(), resetValues ? 0 : scrollOffset().width(), 0, resetValues ? 0 : contentsSize().width(), resetValues ? 0 : Scrollbar::pixelsPerLineStep(), resetValues ? 0 : horizontalPageStep, resetValues ? 0 : frameRect().width()); }
DoublePoint VisualViewport::maximumScrollPositionDouble() const { if (!mainFrame()) return IntPoint(); // FIXME: We probably shouldn't be storing the bounds in a float. crbug.com/422331. FloatSize frameViewSize(contentsSize()); if (m_topControlsAdjustment) { float minScale = frameHost().pageScaleConstraintsSet().finalConstraints().minimumScale; frameViewSize.expand(0, m_topControlsAdjustment / minScale); } frameViewSize.scale(m_scale); frameViewSize = flooredIntSize(frameViewSize); FloatSize viewportSize(m_size); viewportSize.expand(0, m_topControlsAdjustment); FloatSize maxPosition = frameViewSize - viewportSize; maxPosition.scale(1 / m_scale); return DoublePoint(maxPosition); }
QString QScintillaWidget::textInRange(const int &pStartRange, const int &pEndRange) const { // Retrieve and return the text in the given range, after making sure that // the given range makes sense int maxRange = contentsSize(); if ( (pStartRange < 0) || (pStartRange >= maxRange) || (pEndRange < 0) || (pEndRange >= maxRange) || (pStartRange >= pEndRange)) return QString(); char *text = new char[pEndRange-pStartRange+1]; SendScintilla(SCI_GETTEXTRANGE, pStartRange, pEndRange, text); QString res = QString(text); delete[] text; return res; }
ScrollOffset VisualViewport::maximumScrollOffset() const { if (!mainFrame()) return ScrollOffset(); // TODO(bokan): We probably shouldn't be storing the bounds in a float. // crbug.com/470718. FloatSize frameViewSize(contentsSize()); if (m_browserControlsAdjustment) { float minScale = frameHost().pageScaleConstraintsSet().finalConstraints().minimumScale; frameViewSize.expand(0, m_browserControlsAdjustment / minScale); } frameViewSize.scale(m_scale); frameViewSize = FloatSize(flooredIntSize(frameViewSize)); FloatSize viewportSize(m_size); viewportSize.expand(0, ceilf(m_browserControlsAdjustment)); FloatSize maxPosition = frameViewSize - viewportSize; maxPosition.scale(1 / m_scale); return ScrollOffset(maxPosition); }
IntSize ScrollableArea::totalContentsSize() const { IntSize totalContentsSize = contentsSize(); totalContentsSize.setHeight(totalContentsSize.height() + headerHeight() + footerHeight()); return totalContentsSize; }
IntPoint maximumScrollPosition() const override { return IntPoint(contentsSize().width() - visibleWidth(), contentsSize().height() - visibleHeight()); }
ScrollOffset maximumScrollOffset() const override { return ScrollOffset(contentsSize() - viewportSize()); }
IntPoint PinchViewport::maximumScrollPosition() const { return flooredIntPoint(FloatSize(contentsSize()) - visibleRect().size()); }
IntSize maximumScrollOffsetInt() const override { return contentsSize() - IntSize(visibleWidth(), visibleHeight()); }
int QWebFrame::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: javaScriptWindowObjectCleared(); break; case 1: provisionalLoad(); break; case 2: titleChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 3: urlChanged((*reinterpret_cast< const QUrl(*)>(_a[1]))); break; case 4: initialLayoutCompleted(); break; case 5: iconChanged(); break; case 6: contentsSizeChanged((*reinterpret_cast< const QSize(*)>(_a[1]))); break; case 7: loadStarted(); break; case 8: loadFinished((*reinterpret_cast< bool(*)>(_a[1]))); break; case 9: { QVariant _r = evaluateJavaScript((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< QVariant*>(_a[0]) = _r; } break; case 10: print((*reinterpret_cast< QPrinter*(*)>(_a[1]))); break; default: ; } _id -= 11; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< qreal*>(_v) = textSizeMultiplier(); break; case 1: *reinterpret_cast< qreal*>(_v) = zoomFactor(); break; case 2: *reinterpret_cast< QString*>(_v) = title(); break; case 3: *reinterpret_cast< QUrl*>(_v) = url(); break; case 4: *reinterpret_cast< QUrl*>(_v) = requestedUrl(); break; case 5: *reinterpret_cast< QUrl*>(_v) = baseUrl(); break; case 6: *reinterpret_cast< QIcon*>(_v) = icon(); break; case 7: *reinterpret_cast< QSize*>(_v) = contentsSize(); break; case 8: *reinterpret_cast< QPoint*>(_v) = scrollPosition(); break; case 9: *reinterpret_cast< bool*>(_v) = hasFocus(); break; } _id -= 10; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setTextSizeMultiplier(*reinterpret_cast< qreal*>(_v)); break; case 1: setZoomFactor(*reinterpret_cast< qreal*>(_v)); break; case 3: setUrl(*reinterpret_cast< QUrl*>(_v)); break; case 8: setScrollPosition(*reinterpret_cast< QPoint*>(_v)); break; } _id -= 10; } else if (_c == QMetaObject::ResetProperty) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 10; } #endif // QT_NO_PROPERTIES return _id; }
void WebContentAnimationItem::resizeEvent(QGraphicsSceneResizeEvent* event) { QGraphicsWidget::resizeEvent(event); setZoomScale(size().width() / contentsSize().width()); }
IntPoint ScrollableArea::maximumScrollPosition() const { return IntPoint(contentsSize().width() - visibleWidth(), contentsSize().height() - visibleHeight()); }
IntPoint ScrollableArea::constrainScrollPositionForOverhang(const IntPoint& scrollPosition) { return constrainScrollPositionForOverhang(visibleContentRect(), contentsSize(), scrollPosition, scrollOrigin()); }