⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qfontdata_p.h

📁 linux下聊天室的稳定版本
💻 H
字号:
/****************************************************************************** $Id: qt/qfontdata_p.h   3.3.6   edited Aug 31 2005 $**** Definition of internal QFontData struct**** Created : 941229**** Copyright (C) 1992-2005 Trolltech AS.  All rights reserved.**** This file is part of the kernel module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QFONTDATA_P_H#define QFONTDATA_P_H////  W A R N I N G//  -------------//// This file is not part of the Qt API.  It exists for the convenience// of internal files.  This header file may change from version to version// without notice, or even be removed.//// We mean it.////#include "qobject.h"#include "qfont.h"// forwardsclass QFontEngine;class QPaintDevice;struct QFontDef{    inline QFontDef()	: pointSize( -1 ), pixelSize( -1 ),	  styleHint( QFont::AnyStyle ), styleStrategy( QFont::PreferDefault ),	  weight( 50 ), italic( FALSE ), fixedPitch( FALSE ), stretch( 100 ),	  ignorePitch(TRUE)#ifdef Q_WS_MAC	  ,fixedPitchComputed(FALSE)#endif    {    }    QString family;#ifdef Q_WS_X11    QString addStyle;#endif // Q_WS_X11    int pointSize;    int pixelSize;    uint styleHint     : 8;    uint styleStrategy : 16;    uint weight     :  7; // 0-99    uint italic     :  1;    uint fixedPitch :  1;    uint stretch    : 12; // 0-400    uint ignorePitch : 1;    uint fixedPitchComputed : 1; // for Mac OS X only    uint reserved   : 14; // for future extensions    bool operator==( const QFontDef &other ) const;    inline bool operator<( const QFontDef &other ) const    {	if ( pixelSize != other.pixelSize ) return pixelSize < other.pixelSize;	if ( weight != other.weight ) return weight < other.weight;	if ( italic != other.italic ) return italic < other.italic;	if ( stretch != other.stretch ) return stretch < other.stretch;	if ( styleHint != other.styleHint ) return styleHint < other.styleHint;	if ( styleStrategy != other.styleStrategy ) return styleStrategy < other.styleStrategy;	if ( family != other.family ) return family < other.family;#ifdef Q_WS_X11	if ( addStyle != other.addStyle ) return addStyle < other.addStyle;#endif // Q_WS_X11	return FALSE;    }};class QFontEngineData : public QShared{public:    QFontEngineData();    ~QFontEngineData();    uint lineWidth;#if defined(Q_WS_X11) || defined(Q_WS_WIN)    QFontEngine *engines[QFont::LastPrivateScript];#else    QFontEngine *engine;#endif // Q_WS_X11 || Q_WS_WIN#ifndef Q_WS_MAC    enum { widthCacheSize = 0x500 };    uchar widthCache[widthCacheSize];#endif};class QFontPrivate : public QShared{public:    static QFont::Script defaultScript;#ifdef Q_WS_X11    static int defaultEncodingID;#endif // Q_WS_X11    QFontPrivate();    QFontPrivate( const QFontPrivate &other );    ~QFontPrivate();    void load( QFont::Script script );    QFontEngine *engineForScript( QFont::Script script ) const {	if ( script == QFont::NoScript )	    script = QFontPrivate::defaultScript;#if defined(Q_WS_X11) || defined(Q_WS_WIN)	if ( ! engineData || ! engineData->engines[script] )	    ((QFontPrivate *) this)->load( script );	return engineData->engines[script];#else        if ( ! engineData || ! engineData->engine )	    ((QFontPrivate *) this)->load( script );        return engineData->engine;#endif // Q_WS_X11 || Q_WS_WIN    }    QFontDef request;    QFontEngineData *engineData;    QPaintDevice *paintdevice;    int screen;    uint rawMode    :  1;    uint underline  :  1;    uint overline   :  1;    uint strikeOut  :  1;    enum {	Family        = 0x0001,	Size          = 0x0002,	StyleHint     = 0x0004,	StyleStrategy = 0x0008,	Weight        = 0x0010,	Italic        = 0x0020,	Underline     = 0x0040,	Overline      = 0x0080,	StrikeOut     = 0x0100,	FixedPitch    = 0x0200,	Stretch       = 0x0400,	Complete      = 0x07ff    };    uint mask;    void resolve( const QFontPrivate *other );};class QFontCache : public QObject{public:    static QFontCache *instance;    QFontCache();    ~QFontCache();#ifdef Q_WS_QWS    void clear();#endif    // universal key structure.  QFontEngineDatas and QFontEngines are cached using    // the same keys    struct Key {	Key() : screen( 0 ) { }	Key( const QFontDef &d, QFont::Script c, int s = 0 )#if !defined (Q_CC_HPACC)            : def( d ), script( c ), screen( s ) { }#else            // work around an aCC compiler bug            : script(c), screen(s) { def = d; }#endif	QFontDef def;	int script;	int screen;	inline bool operator<( const Key &other ) const	{	    if ( script != other.script ) return script < other.script;	    if ( screen != other.screen ) return screen < other.screen;	    return def < other.def;	}	inline bool operator==( const Key &other ) const	{ return def == other.def && script == other.script && screen == other.screen; }    };    // QFontEngineData cache    typedef QMap<Key,QFontEngineData*> EngineDataCache;    EngineDataCache engineDataCache;    QFontEngineData *findEngineData( const Key &key ) const;    void insertEngineData( const Key &key, QFontEngineData *engineData );    // QFontEngine cache    struct Engine {	Engine() : data( 0 ), timestamp( 0 ), hits( 0 ) { }	Engine( QFontEngine *d ) : data( d ), timestamp( 0 ), hits( 0 ) { }	QFontEngine *data;	uint timestamp;	uint hits;    };    typedef QMap<Key,Engine> EngineCache;    EngineCache engineCache;    QFontEngine *findEngine( const Key &key );    void insertEngine( const Key &key, QFontEngine *engine );#if defined(Q_WS_WIN) || defined(Q_WS_QWS)    void cleanupPrinterFonts();#endif    private:    void increaseCost( uint cost );    void decreaseCost( uint cost );    void timerEvent( QTimerEvent *event );    static const uint min_cost;    uint total_cost, max_cost;    uint current_timestamp;    bool fast;    int timer_id;};#endif // QFONTDATA_P_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -