diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> | 2010-02-10 13:16:24 (GMT) |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> | 2010-02-10 13:16:24 (GMT) |
commit | 2e8d090fa6813a2e37c9ed27d69bc3fc99a7ae35 (patch) | |
tree | eaf54ffe4e8a90b8ba1fe03855ab3f0808b012e8 /src/gui/text/qstatictext_p.h | |
parent | 8032423bb8fa91c623ece61bff528adfd49e8685 (diff) | |
download | Qt-2e8d090fa6813a2e37c9ed27d69bc3fc99a7ae35.zip Qt-2e8d090fa6813a2e37c9ed27d69bc3fc99a7ae35.tar.gz Qt-2e8d090fa6813a2e37c9ed27d69bc3fc99a7ae35.tar.bz2 |
Make QStaticText public API again
QStaticText was previously made private API to support inclusion in
Qt 4.6.x. This change turns it back into public API for Qt 4.7.0.
Diffstat (limited to 'src/gui/text/qstatictext_p.h')
-rw-r--r-- | src/gui/text/qstatictext_p.h | 110 |
1 files changed, 71 insertions, 39 deletions
diff --git a/src/gui/text/qstatictext_p.h b/src/gui/text/qstatictext_p.h index a19fb6c..72c8439 100644 --- a/src/gui/text/qstatictext_p.h +++ b/src/gui/text/qstatictext_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QSTATICTEXT_H -#define QSTATICTEXT_H +#ifndef QSTATICTEXT_P_H +#define QSTATICTEXT_P_H // // W A R N I N G @@ -53,57 +53,89 @@ // We mean it. // -#include <QtCore/qsize.h> -#include <QtCore/qstring.h> -#include <QtCore/qmetatype.h> +#include <private/qtextureglyphcache_p.h> -#include <QtGui/qtransform.h> -#include <QtGui/qfont.h> +QT_BEGIN_NAMESPACE +class QStaticTextUserData +{ +public: + enum Type { + NoUserData, + OpenGLUserData + }; -QT_BEGIN_HEADER + QStaticTextUserData(Type t) : type(t) {} + virtual ~QStaticTextUserData() {} -QT_BEGIN_NAMESPACE + Type type; +}; -QT_MODULE(Gui) +class Q_GUI_EXPORT QStaticTextItem +{ +public: + QStaticTextItem() : chars(0), numChars(0), fontEngine(0), userData(0), + useBackendOptimizations(false), userDataNeedsUpdate(0) {} + ~QStaticTextItem() { delete userData; } + + void setUserData(QStaticTextUserData *newUserData) + { + if (userData == newUserData) + return; + + delete userData; + userData = newUserData; + } + + QFixedPoint *glyphPositions; // 8 bytes per glyph + glyph_t *glyphs; // 4 bytes per glyph + const QChar *chars; // 2 bytes per glyph + // ================= + // 14 bytes per glyph + + // 12 bytes for pointers + int numGlyphs; // 4 bytes per item + int numChars; // 4 bytes per item + QFontEngine *fontEngine; // 4 bytes per item + QFont font; // 8 bytes per item + QStaticTextUserData *userData; // 8 bytes per item + char useBackendOptimizations : 1; // 1 byte per item + char userDataNeedsUpdate : 1; // + // ================ + // 41 bytes per item +}; -class QStaticTextPrivate; -class Q_GUI_EXPORT QStaticText -{ +class QStaticText; +class Q_AUTOTEST_EXPORT QStaticTextPrivate +{ public: - QStaticText(); - QStaticText(const QString &text, const QSizeF &maximumSize = QSizeF()); - QStaticText(const QStaticText &other); - ~QStaticText(); + QStaticTextPrivate(); + QStaticTextPrivate(const QStaticTextPrivate &other); + ~QStaticTextPrivate(); - void setText(const QString &text); - QString text() const; + void init(); - void setMaximumSize(const QSizeF &maximumSize); - QSizeF maximumSize() const; + QAtomicInt ref; // 4 bytes per text - void prepare(const QTransform &matrix, const QFont &font); + QString text; // 4 bytes per text + QFont font; // 8 bytes per text + QSizeF size; // 16 bytes per text + QPointF position; // 16 bytes per text - void setUseBackendOptimizations(bool on); - bool useBackendOptimizations() const; + QTransform matrix; // 80 bytes per text + QStaticTextItem *items; // 4 bytes per text + int itemCount; // 4 bytes per text + glyph_t *glyphPool; // 4 bytes per text + QFixedPoint *positionPool; // 4 bytes per text - QStaticText &operator=(const QStaticText &); - bool operator==(const QStaticText &) const; - bool operator!=(const QStaticText &) const; + char needsClipRect : 1; // 1 byte per text + char useBackendOptimizations : 1; + // ================ + // 145 bytes per text - bool isEmpty() const; - -private: - void detach(); - - QExplicitlySharedDataPointer<QStaticTextPrivate> data; - friend class QStaticTextPrivate; + static QStaticTextPrivate *get(const QStaticText *q); }; -Q_DECLARE_METATYPE(QStaticText) - QT_END_NAMESPACE -QT_END_HEADER - -#endif // QSTATICTEXT_H +#endif // QSTATICTEXT_P_H |