summaryrefslogtreecommitdiff
path: root/qmake/include/private/qfontdata_p.h
Side-by-side diff
Diffstat (limited to 'qmake/include/private/qfontdata_p.h') (more/less context) (ignore whitespace changes)
-rw-r--r--qmake/include/private/qfontdata_p.h3
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;
}