diff options
Diffstat (limited to 'src/gui/text/qrawfont.h')
-rw-r--r-- | src/gui/text/qrawfont.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/gui/text/qrawfont.h b/src/gui/text/qrawfont.h index 9fee7f1e44..eb84a8fee7 100644 --- a/src/gui/text/qrawfont.h +++ b/src/gui/text/qrawfont.h @@ -65,6 +65,13 @@ public: SubPixelAntialiasing }; + enum LayoutFlag { + SeparateAdvances = 0, + KernedAdvances = 1, + UseDesignMetrics = 2 + }; + Q_DECLARE_FLAGS(LayoutFlags, LayoutFlag) + QRawFont(); QRawFont(const QString &fileName, qreal pixelSize, @@ -93,8 +100,10 @@ public: QVector<quint32> glyphIndexesForString(const QString &text) const; inline QVector<QPointF> advancesForGlyphIndexes(const QVector<quint32> &glyphIndexes) const; + inline QVector<QPointF> advancesForGlyphIndexes(const QVector<quint32> &glyphIndexes, LayoutFlags layoutFlags) const; bool glyphIndexesForChars(const QChar *chars, int numChars, quint32 *glyphIndexes, int *numGlyphs) const; bool advancesForGlyphIndexes(const quint32 *glyphIndexes, QPointF *advances, int numGlyphs) const; + bool advancesForGlyphIndexes(const quint32 *glyphIndexes, QPointF *advances, int numGlyphs, LayoutFlags layoutFlags) const; QImage alphaMapForGlyph(quint32 glyphIndex, AntialiasingType antialiasingType = SubPixelAntialiasing, @@ -145,14 +154,21 @@ private: Q_DECLARE_SHARED(QRawFont) -inline QVector<QPointF> QRawFont::advancesForGlyphIndexes(const QVector<quint32> &glyphIndexes) const +Q_DECLARE_OPERATORS_FOR_FLAGS(QRawFont::LayoutFlags) + +inline QVector<QPointF> QRawFont::advancesForGlyphIndexes(const QVector<quint32> &glyphIndexes, QRawFont::LayoutFlags layoutFlags) const { QVector<QPointF> advances(glyphIndexes.size()); - if (advancesForGlyphIndexes(glyphIndexes.constData(), advances.data(), glyphIndexes.size())) + if (advancesForGlyphIndexes(glyphIndexes.constData(), advances.data(), glyphIndexes.size(), layoutFlags)) return advances; return QVector<QPointF>(); } +inline QVector<QPointF> QRawFont::advancesForGlyphIndexes(const QVector<quint32> &glyphIndexes) const +{ + return advancesForGlyphIndexes(glyphIndexes, QRawFont::SeparateAdvances); +} + QT_END_NAMESPACE #endif // QT_NO_RAWFONT |