summaryrefslogtreecommitdiffstats
path: root/src/kernel/qfont.h
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-07-10 15:24:15 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-07-10 15:24:15 -0500
commitbd0f3345a938b35ce6a12f6150373b0955b8dd12 (patch)
tree7a520322212d48ebcb9fbe1087e7fca28b76185c /src/kernel/qfont.h
downloadqt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.tar.gz
qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.zip
Add Qt3 development HEAD version
Diffstat (limited to 'src/kernel/qfont.h')
-rw-r--r--src/kernel/qfont.h372
1 files changed, 372 insertions, 0 deletions
diff --git a/src/kernel/qfont.h b/src/kernel/qfont.h
new file mode 100644
index 0000000..935f04a
--- /dev/null
+++ b/src/kernel/qfont.h
@@ -0,0 +1,372 @@
+/****************************************************************************
+**
+** Definition of QFont class
+**
+** Created : 940514
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the kernel module of the Qt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free Qt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.QPL
+** included in the packaging of this file. Licensees holding valid Qt
+** Commercial 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 WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#ifndef QFONT_H
+#define QFONT_H
+
+#ifndef QT_H
+#include "qwindowdefs.h"
+#include "qstring.h"
+#endif // QT_H
+
+
+class QFontPrivate; /* don't touch */
+class QStringList;
+class QTextFormatCollection;
+
+class Q_EXPORT QFont
+{
+public:
+ enum StyleHint {
+ Helvetica, SansSerif = Helvetica,
+ Times, Serif = Times,
+ Courier, TypeWriter = Courier,
+ OldEnglish, Decorative = OldEnglish,
+ System,
+ AnyStyle
+ };
+
+ enum StyleStrategy {
+ PreferDefault = 0x0001,
+ PreferBitmap = 0x0002,
+ PreferDevice = 0x0004,
+ PreferOutline = 0x0008,
+ ForceOutline = 0x0010,
+ PreferMatch = 0x0020,
+ PreferQuality = 0x0040,
+ PreferAntialias = 0x0080,
+ NoAntialias = 0x0100,
+ OpenGLCompatible = 0x0200
+ };
+
+ enum Weight {
+ Light = 25,
+ Normal = 50,
+ DemiBold = 63,
+ Bold = 75,
+ Black = 87
+ };
+
+ enum Stretch {
+ UltraCondensed = 50,
+ ExtraCondensed = 62,
+ Condensed = 75,
+ SemiCondensed = 87,
+ Unstretched = 100,
+ SemiExpanded = 112,
+ Expanded = 125,
+ ExtraExpanded = 150,
+ UltraExpanded = 200
+ };
+
+ // default font
+ QFont();
+ // specific font
+#ifdef Q_QDOC
+ QFont( const QString &family, int pointSize = 12, int weight = Normal,
+ bool italic = FALSE );
+#else
+ QFont( const QString &family, int pointSize = -1, int weight = -1,
+ bool italic = FALSE );
+#endif
+ // copy constructor
+ QFont( const QFont & );
+
+ ~QFont();
+
+ QString family() const;
+ void setFamily( const QString &);
+
+ int pointSize() const;
+ float pointSizeFloat() const;
+ void setPointSize( int );
+ void setPointSizeFloat( float );
+
+ int pixelSize() const;
+ void setPixelSize( int );
+ void setPixelSizeFloat( float );
+
+ int weight() const;
+ void setWeight( int );
+
+ bool bold() const;
+ void setBold( bool );
+
+ bool italic() const;
+ void setItalic( bool );
+
+ bool underline() const;
+ void setUnderline( bool );
+
+ bool overline() const;
+ void setOverline( bool );
+
+ bool strikeOut() const;
+ void setStrikeOut( bool );
+
+ bool fixedPitch() const;
+ void setFixedPitch( bool );
+
+ StyleHint styleHint() const;
+ StyleStrategy styleStrategy() const;
+ void setStyleHint( StyleHint, StyleStrategy = PreferDefault );
+ void setStyleStrategy( StyleStrategy s );
+
+ int stretch() const;
+ void setStretch( int );
+
+ // is raw mode still needed?
+ bool rawMode() const;
+ void setRawMode( bool );
+
+ // dupicated from QFontInfo
+ bool exactMatch() const;
+
+ QFont &operator=( const QFont & );
+ bool operator==( const QFont & ) const;
+ bool operator!=( const QFont & ) const;
+ bool isCopyOf( const QFont & ) const;
+
+
+#ifdef Q_WS_WIN
+ HFONT handle() const;
+#else // !Q_WS_WIN
+ Qt::HANDLE handle() const;
+#endif // Q_WS_WIN
+
+
+ // needed for X11
+ void setRawName( const QString & );
+ QString rawName() const;
+
+ QString key() const;
+
+ QString toString() const;
+ bool fromString(const QString &);
+
+#ifndef QT_NO_STRINGLIST
+ static QString substitute(const QString &);
+ static QStringList substitutes(const QString &);
+ static QStringList substitutions();
+ static void insertSubstitution(const QString&, const QString &);
+ static void insertSubstitutions(const QString&, const QStringList &);
+ static void removeSubstitution(const QString &);
+#endif //QT_NO_STRINGLIST
+ static void initialize();
+ static void cleanup();
+#ifndef Q_WS_QWS
+ static void cacheStatistics();
+#endif
+
+#if defined(Q_WS_QWS)
+ void qwsRenderToDisk(bool all=TRUE);
+#endif
+
+
+ // a copy of this lives in qunicodetables.cpp, as we can't include
+ // qfont.h it in tools/. Do not modify without changing the script
+ // enum in qunicodetable_p.h aswell.
+ enum Script {
+ // European Alphabetic Scripts
+ Latin,
+ Greek,
+ Cyrillic,
+ Armenian,
+ Georgian,
+ Runic,
+ Ogham,
+ SpacingModifiers,
+ CombiningMarks,
+
+ // Middle Eastern Scripts
+ Hebrew,
+ Arabic,
+ Syriac,
+ Thaana,
+
+ // South and Southeast Asian Scripts
+ Devanagari,
+ Bengali,
+ Gurmukhi,
+ Gujarati,
+ Oriya,
+ Tamil,
+ Telugu,
+ Kannada,
+ Malayalam,
+ Sinhala,
+ Thai,
+ Lao,
+ Tibetan,
+ Myanmar,
+ Khmer,
+
+ // East Asian Scripts
+ Han,
+ Hiragana,
+ Katakana,
+ Hangul,
+ Bopomofo,
+ Yi,
+
+ // Additional Scripts
+ Ethiopic,
+ Cherokee,
+ CanadianAboriginal,
+ Mongolian,
+
+ // Symbols
+ CurrencySymbols,
+ LetterlikeSymbols,
+ NumberForms,
+ MathematicalOperators,
+ TechnicalSymbols,
+ GeometricSymbols,
+ MiscellaneousSymbols,
+ EnclosedAndSquare,
+ Braille,
+
+ Unicode,
+
+ // some scripts added in Unicode 3.2
+ Tagalog,
+ Hanunoo,
+ Buhid,
+ Tagbanwa,
+
+ KatakanaHalfWidth,
+
+ // from Unicode 4.0
+ Limbu,
+ TaiLe,
+
+ // End
+#if !defined(Q_QDOC)
+ NScripts,
+ UnknownScript = NScripts,
+
+ NoScript,
+
+ // ----------------------------------------
+ // Dear User, you can see values > NScript,
+ // but they are internal - do not touch.
+
+ Han_Japanese,
+ Han_SimplifiedChinese,
+ Han_TraditionalChinese,
+ Han_Korean,
+
+ LastPrivateScript
+#endif
+ };
+
+ QString defaultFamily() const;
+ QString lastResortFamily() const;
+ QString lastResortFont() const;
+
+#ifndef QT_NO_COMPAT
+
+ static QFont defaultFont();
+ static void setDefaultFont( const QFont & );
+
+#endif // QT_NO_COMPAT
+
+ QFont resolve( const QFont & ) const;
+
+protected:
+ // why protected?
+ bool dirty() const;
+ int deciPointSize() const;
+
+private:
+ QFont( QFontPrivate *, QPaintDevice *pd );
+
+ void detach();
+
+#if defined(Q_WS_MAC)
+ void macSetFont(QPaintDevice *);
+#elif defined(Q_WS_X11)
+ void x11SetScreen( int screen = -1 );
+ int x11Screen() const;
+#endif
+
+ friend class QFontMetrics;
+ friend class QFontInfo;
+ friend class QPainter;
+ friend class QPSPrinterFont;
+ friend class QApplication;
+ friend class QWidget;
+ friend class QTextFormatCollection;
+ friend class QTextLayout;
+ friend class QTextItem;
+ friend class QGLContext;
+#if defined(Q_WS_X11) && !defined(QT_NO_XFTFREETYPE)
+ friend Qt::HANDLE qt_xft_handle(const QFont &font);
+#endif
+#ifndef QT_NO_DATASTREAM
+ friend Q_EXPORT QDataStream &operator<<( QDataStream &, const QFont & );
+ friend Q_EXPORT QDataStream &operator>>( QDataStream &, QFont & );
+#endif
+
+ QFontPrivate *d;
+};
+
+
+inline bool QFont::bold() const
+{ return weight() > Normal; }
+
+
+inline void QFont::setBold( bool enable )
+{ setWeight( enable ? Bold : Normal ); }
+
+
+
+
+/*****************************************************************************
+ QFont stream functions
+ *****************************************************************************/
+
+#ifndef QT_NO_DATASTREAM
+Q_EXPORT QDataStream &operator<<( QDataStream &, const QFont & );
+Q_EXPORT QDataStream &operator>>( QDataStream &, QFont & );
+#endif
+
+
+#endif // QFONT_H