void PhotoSendBox::paintEvent(QPaintEvent *e) { Painter p(this); if (paint(p)) return; // paint shadow p.fillRect(0, height() - st::btnSelectCancel.height - st::scrollDef.bottomsh, width(), st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep p.fillRect(st::btnSelectCancel.width, height() - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); if (_img && _img->type == ToPreparePhoto) { paintGrayTitle(p, lang(lng_really_send_image)); p.drawPixmap((width() - _thumbw) / 2, st::boxPadding.top() * 2 + st::boxFont->height, _thumb); } else { paintGrayTitle(p, lang(_img ? lng_really_send_file : lng_really_share_contact)); int32 w = width() - st::boxPadding.left() - st::boxPadding.right(), h = st::mediaPadding.top() + st::mediaThumbSize + st::mediaPadding.bottom(); int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right(); int32 twidth = w - tleft - st::mediaPadding.right(); if (twidth > _textw) { w -= (twidth - _textw); twidth = _textw; } int32 x = (width() - w) / 2, y = st::boxPadding.top() * 2 + st::boxFont->height; App::roundRect(p, x, y, w, h, st::msgOutBg, MessageOutCorners, &st::msgOutShadow); if (_thumbw) { int32 rf(cIntRetinaFactor()); p.drawPixmap(QPoint(x + st::mediaPadding.left(), y + st::mediaPadding.top()), _thumb, QRect(_thumbx * rf, _thumby * rf, st::mediaThumbSize * rf, st::mediaThumbSize * rf)); } else if (_img) { p.drawPixmap(QPoint(x + st::mediaPadding.left(), y + st::mediaPadding.top()), App::sprite(), st::mediaDocOutImg); } else { p.drawPixmap(x + st::mediaPadding.left(), y + st::mediaPadding.top(), userDefPhoto(1)->pix(st::mediaThumbSize)); } p.setFont(st::mediaFont->f); p.setPen(st::black->c); if (twidth < _namew) { p.drawText(x + tleft, y + st::mediaPadding.top() + st::mediaNameTop + st::mediaFont->ascent, st::mediaFont->elided(_name, twidth)); } else { p.drawText(x + tleft, y + st::mediaPadding.top() + st::mediaNameTop + st::mediaFont->ascent, _name); } p.setPen(st::mediaOutColor->p); p.drawText(x + tleft, y + st::mediaPadding.top() + st::mediaThumbSize - st::mediaDetailsShift - st::mediaFont->descent, _size); } }
void BackgroundBox::paintEvent(QPaintEvent *e) { QPainter p(this); if (paint(p)) return; paintGrayTitle(p, lang(lng_backgrounds_header)); }