Diffstat (limited to 'qmake/include/private/qfontdata_p.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | qmake/include/private/qfontdata_p.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/qmake/include/private/qfontdata_p.h b/qmake/include/private/qfontdata_p.h index 917d14f..1eaf80c 100644 --- a/qmake/include/private/qfontdata_p.h +++ b/qmake/include/private/qfontdata_p.h @@ -117,96 +117,97 @@ public: { ; } ~QFontStruct(); Qt::HANDLE handle, xfthandle, xftpattern; QCString name; QTextCodec *codec; int cache_cost; float scale; // needed for printing, to correctly scale font metrics for bitmap fonts }; enum { widthCacheSize = 0x500 }; class QFontX11Data // used as a QFontPrivate member { public: // X fontstruct handles for each character set QFontStruct *fontstruct[QFont::LastPrivateScript]; uchar widthCache[widthCacheSize]; QFontX11Data(); ~QFontX11Data(); }; #endif // Q_WS_X11 #ifdef Q_WS_WIN class QFontStruct : public QShared { public: QFontStruct( const QString &key ); ~QFontStruct() { reset(); } bool dirty() const { return hfont == 0; } HDC dc() const; HFONT font() const { return hfont; } const TEXTMETRICA *textMetricA() const { return &tm.a; } const TEXTMETRICW *textMetricW() const { return &tm.w; } QString key() const { return k; } void reset(); QString k; HDC hdc; HFONT hfont; uint stockFont:1; uint paintDevice:1; + uint useTextOutA:1; union { TEXTMETRICW w; TEXTMETRICA a; } tm; int lw; int cache_cost; // friend void QFont::initFontInfo() const; }; #endif // Q_WS_WIN #if defined( Q_WS_MAC ) #if defined( Q_WS_MACX ) # define QMAC_FONT_ATSUI #endif #include "qt_mac.h" class QMacFontInfo; class QFontStruct : public QShared { public: inline QFontStruct() : QShared(), info(NULL), fnum(-1), cache_cost(0), internal_fi(NULL) { } #if defined( QMAC_FONT_ATSUI ) && 0 ATSFontMetrics *info; int maxWidth() const { return (int)info->maxAdvanceWidth; } #else FontInfo *info; int maxWidth() const { return info->widMax; } #endif int ascent() const { return (int)info->ascent; } int descent() const { return (int)info->descent; } int leading() const { return (int)info->leading; } int minLeftBearing() const { return 0; } int minRightBearing() const { return 0; } short fnum; int psize, cache_cost; QMacFontInfo *internal_fi; }; #endif #ifdef Q_WS_QWS class QFontStruct; class QGfx; #endif @@ -368,97 +369,97 @@ public: #ifndef QT_NO_XFTFREETYPE XftPattern *findXftFont(const QChar &, bool *, double *scale) const; XftPattern *bestXftPattern(const QString &, const QString &, const QChar &, double *scale) const; #endif // QT_NO_XFTFREETYPE QCString findFont(QFont::Script, bool *, double *) const; QCString bestFamilyMember(QFont::Script, const QString &, const QString &, const QString &, int *, double *) const; QCString bestMatch(const char *, int *, QFont::Script, double *) const; int fontMatchScore(const char *, QCString &, float *, int *, bool *, bool *, QFont::Script, double *) const; void initFontInfo(QFont::Script, double scale); void load(QFont::Script = QFont::NoScript, bool = TRUE); bool loadUnicode(QFont::Script, const QChar &); void computeLineWidth(); int textWidth( const QString &str, int pos, int len, TextRun *cache ); void textExtents( const QString &str, int pos, int len, QCharStruct *overall ); void drawText( Display *dpy, int screen, Qt::HANDLE hd, Qt::HANDLE rendhd, GC gc, const QColor &pen, Qt::BGMode, const QColor &bgcolor, int x, int y, const TextRun *cache, int pdWidth ); bool inFont( const QChar &ch ); QFontX11Data x11data; static QFont::Script defaultScript; int x11Screen; #endif // Q_WS_X11 QPaintDevice *paintdevice; #ifdef Q_WS_WIN void load(); void initFontInfo(); HFONT create( bool *stockFont, HDC hdc = 0, bool compatMode = FALSE ); QFontStruct *fin; void buildCache( HDC hdc, const QString &str, int pos, int len, TextRun *cache ); void drawText( HDC hdc, int x, int y, TextRun *cache ); #endif // Q_WS_WIN #ifdef Q_WS_QWS void load(); QFontStruct *fin; int textWidth( const QString &str, int pos, int len, TextRun *cache ); void drawText( QGfx *gfx, int x, int y, const TextRun *cache ); #endif #if defined( Q_WS_MAC ) void macSetFont(QPaintDevice *); - void drawText(int x, int y, QString s, int len, QPaintDevice *dev, const QRegion *rgn); + void drawText(int x, int y, const QString &s, int from, int len, QPaintDevice *dev, const QRegion *rgn, int dir); void computeLineWidth(); void load(); QFontStruct *fin; #endif }; inline QFontPrivate::QFontPrivate() : QShared(), exactMatch(FALSE), lineWidth(1) { #if defined(Q_WS_WIN) || defined(Q_WS_QWS) || defined(Q_WS_MAC) fin = 0; #endif // Q_WS_WIN || Q_WS_QWS #if defined(Q_WS_X11) x11Screen = QPaintDevice::x11AppScreen(); #endif // Q_WS_X11 paintdevice = 0; } inline QFontPrivate::QFontPrivate(const QFontPrivate &fp) : QShared(), request(fp.request), actual(fp.actual), exactMatch(fp.exactMatch), lineWidth(1) { Q_ASSERT(!fp.paintdevice); #if defined(Q_WS_WIN) || defined(Q_WS_QWS) || defined(Q_WS_MAC) fin = 0; #endif // Q_WS_WIN || Q_WS_QWS #if defined(Q_WS_X11) x11Screen = fp.x11Screen; #endif // Q_WS_X11 paintdevice = 0; } inline QFontPrivate::QFontPrivate( const QFontPrivate &fp, QPaintDevice *pd ) : QShared(), request(fp.request), actual(fp.actual), exactMatch(fp.exactMatch), lineWidth(1) { #if defined(Q_WS_WIN) || defined(Q_WS_QWS) || defined(Q_WS_MAC) fin = 0; #endif // Q_WS_WIN || Q_WS_QWS #if defined(Q_WS_X11) x11Screen = pd->x11Screen(); #endif // Q_WS_X11 paintdevice = pd; } |