void Element::paintHighlight( Painter &p, int geometryHeight) const { const auto animms = delegate()->elementHighlightTime(this); if (!animms || animms >= st::activeFadeInDuration + st::activeFadeOutDuration) { return; } const auto top = marginTop(); const auto bottom = marginBottom(); const auto fill = qMin(top, bottom); const auto skiptop = top - fill; const auto fillheight = fill + geometryHeight + fill; const auto dt = (animms > st::activeFadeInDuration) ? (1. - (animms - st::activeFadeInDuration) / float64(st::activeFadeOutDuration)) : (animms / float64(st::activeFadeInDuration)); const auto o = p.opacity(); p.setOpacity(o * dt); p.fillRect( 0, skiptop, width(), fillheight, st::defaultTextPalette.selectOverlay); p.setOpacity(o); }
QPainterPath CompassFloatItem::backgroundShape() const { QRectF contentRect = this->contentRect(); QPainterPath path; int fontheight = QFontMetrics( font() ).ascent(); int compassLength = static_cast<int>( contentRect.height() ) - 5 - fontheight; path.addEllipse( QRectF( QPointF( marginLeft() + padding() + ( contentRect.width() - compassLength ) / 2, marginTop() + padding() + 5 + fontheight ), QSize( compassLength, compassLength ) ).toRect() ); return path; }
QPainterPath ProgressFloatItem::backgroundShape() const { QPainterPath path; if ( active() ) { // Circular shape if active, invisible otherwise QRectF rect = contentRect(); qreal width = rect.width(); qreal height = rect.height(); path.addEllipse( marginLeft() + 2 * padding(), marginTop() + 2 * padding(), width, height ); } return path; }
void UnreadBar::paint(Painter &p, int y, int w) const { const auto bottom = y + height(); y += marginTop(); p.fillRect( 0, y, w, height() - marginTop() - st::lineWidth, st::historyUnreadBarBg); p.fillRect( 0, bottom - st::lineWidth, w, st::lineWidth, st::historyUnreadBarBorder); p.setFont(st::historyUnreadBarFont); p.setPen(st::historyUnreadBarFg); int left = st::msgServiceMargin.left(); int maxwidth = w; if (Adaptive::ChatWide()) { maxwidth = qMin( maxwidth, st::msgMaxWidth + 2 * st::msgPhotoSkip + 2 * st::msgMargin.left()); } w = maxwidth; const auto skip = st::historyUnreadBarHeight - 2 * st::lineWidth - st::historyUnreadBarFont->height; p.drawText( (w - width) / 2, y + (skip / 2) + st::historyUnreadBarFont->ascent, text); }
int RenderReplaced::baselinePosition(bool, bool) const { return height() + marginTop() + marginBottom(); }
int RenderReplaced::lineHeight(bool, bool) const { return height() + marginTop() + marginBottom(); }
int RenderSVGContainer::baselinePosition(bool b, bool isRootLineBox) const { return height() + marginTop() + marginBottom(); }
int RenderSVGContainer::lineHeight(bool b, bool isRootLineBox) const { return height() + marginTop() + marginBottom(); }
int RenderSlider::baselinePosition(bool, bool) const { return height() + marginTop(); }
int RenderSVGRoot::baselinePosition(bool, bool) const { return height() + marginTop() + marginBottom(); }
int RenderSVGRoot::lineHeight(bool, bool) const { return height() + marginTop() + marginBottom(); }
int RenderSlider::baselinePosition(FontBaseline, bool /*firstLine*/, LineDirectionMode, LinePositionMode) const { // FIXME: Patch this function for writing-mode. return height() + marginTop(); }
int RenderTextControlMultiLine::baselinePosition(bool, bool) const { return height() + marginTop() + marginBottom(); }
int LayoutSlider::baselinePosition(FontBaseline, bool /*firstLine*/, LineDirectionMode, LinePositionMode linePositionMode) const { ASSERT(linePositionMode == PositionOnContainingLine); // FIXME: Patch this function for writing-mode. return size().height() + marginTop(); }
int RenderSlider::baselinePosition(bool /*firstLine*/, LineDirectionMode, LinePositionMode) const { return height() + marginTop(); }