void WatchPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { TRACE(qDebug() << __func__ << p << textItem.text()); const qreal ascent = textItem.ascent(); const qreal descent = textItem.descent(); const qreal w = textItem.width(); damageRect(QRect(p.x(), p.y() - ascent, w, ascent + descent)); _painter.drawTextItem(p, textItem); }
void EmfPaintEngine::drawTextItem ( const QPointF & p, const QTextItem & textItem ) { setClipping(); SetBkMode( metaDC, TRANSPARENT ); QFont f = textItem.font(); QFontMetrics fm(f); HFONT wfont = CreateFontA(fm.height() - 1, fm.averageCharWidth(), 0, 0, 10*f.weight(), f.italic(), f.underline (), f.strikeOut(), DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, f.family().toAscii().data()); SelectObject( metaDC, wfont); QColor colour = painter()->pen().color(); SetTextColor( metaDC, RGB(colour.red(), colour.green(), colour.blue())); QString text = textItem.text(); int size = text.size(); QMatrix m = painter()->worldMatrix(); XFORM xf; xf.eM11 = m.m11(); xf.eM12 = m.m12(); xf.eM21 = m.m21(); xf.eM22 = m.m22(); xf.eDx = m.dx(); xf.eDy = m.dy(); SetWorldTransform(metaDC, &xf); #ifdef Q_WS_WIN wchar_t *wtext = (wchar_t *)malloc(size*sizeof(wchar_t)); if (!wtext){ qWarning("EmfEngine: Not enough memory in drawTextItem()."); return; } size = text.toWCharArray(wtext); TextOutW(metaDC, qRound(p.x()), qRound(p.y() - 0.85*fm.height()), wtext, size); free(wtext); #else TextOutA(metaDC, qRound(p.x()), qRound(p.y() - 0.85*fm.height()), text.toLocal8Bit().data(), size); #endif xf.eM11 = 1.0; xf.eM12 = 0.0; xf.eM21 = 0.0; xf.eM22 = 1.0; xf.eDx = 0.0; xf.eDy = 0.0; SetWorldTransform(metaDC, &xf); resetClipping(); DeleteObject(wfont); }
void QJsonPaintEngine::drawTextItem(const QPointF &p , const QTextItem &ti) { Q_D(QJsonPaintEngine); #ifdef QT_PICTURE_DEBUG qDebug() << " -> drawTextItem():" << p << ti.text(); #endif updateFont(ti.font()); d->s << QString("\t{\"t\": {\"t\": \"%1\", \"x\": %2, \"y\": %3}},\r\n").arg(ti.text()).arg(p.x()).arg(p.y()); }
static PyObject *meth_QTextItem_descent(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QTextItem *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QTextItem, &sipCpp)) { qreal sipRes; Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->descent(); Py_END_ALLOW_THREADS return PyFloat_FromDouble(sipRes); } }
void QAlphaPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { Q_D(QAlphaPaintEngine); QRectF tr(p.x(), p.y() - textItem.ascent(), textItem.width() + 5, textItem.ascent() + textItem.descent() + 5); tr = d->m_transform.mapRect(tr); if (d->m_pass == 0) { d->m_continueCall = false; if (d->m_alphaPen || d->m_alphaOpacity || d->m_advancedPen) { d->addAlphaRect(tr); } if (d->m_picengine) { d->m_picengine->drawTextItem(p, textItem); } } else { d->m_continueCall = !d->fullyContained(tr); } }
void QCairoPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { if (!exportText) { QPaintEngine::drawTextItem(p, textItem); } else { //cairo_matrix_t cm, cmBak; //cairo_get_matrix(cr, &cmBak); //cairo_translate(cr, p.x(), p.y()); QFont oldF=cfont; cfont=textItem.font(); updateFont(); updatePen(); cairo_move_to (cr, p.x(), p.y()); cairo_show_text(cr, textItem.text().toUtf8().data()); cfont=oldF; //cairo_set_matrix(cr, &cmBak); } }
void QPicturePaintEngine::drawTextItem(const QPointF &p , const QTextItem &ti) { Q_D(QPicturePaintEngine); #ifdef QT_PICTURE_DEBUG qDebug() << " -> drawTextItem():" << p << ti.text(); #endif const QTextItemInt &si = static_cast<const QTextItemInt &>(ti); if (si.chars == 0) QPaintEngine::drawTextItem(p, ti); // Draw as path if (d->pic_d->formatMajor >= 9) { int pos; SERIALIZE_CMD(QPicturePrivate::PdcDrawTextItem); QFont fnt = ti.font(); fnt.setUnderline(false); fnt.setStrikeOut(false); fnt.setOverline(false); qreal justificationWidth = 0; if (si.justified) justificationWidth = si.width.toReal(); d->s << p << ti.text() << fnt << ti.renderFlags() << double(fnt.d->dpi)/qt_defaultDpi() << justificationWidth; writeCmdLength(pos, /*brect=*/QRectF(), /*corr=*/false); } else if (d->pic_d->formatMajor >= 8) { // old old (buggy) format int pos; SERIALIZE_CMD(QPicturePrivate::PdcDrawTextItem); d->s << QPointF(p.x(), p.y() - ti.ascent()) << ti.text() << ti.font() << ti.renderFlags(); writeCmdLength(pos, /*brect=*/QRectF(), /*corr=*/false); } else { // old (buggy) format int pos; SERIALIZE_CMD(QPicturePrivate::PdcDrawText2); d->s << p << ti.text(); writeCmdLength(pos, QRectF(p, QSizeF(1,1)), true); } }