Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

qwt_text.h

00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2003   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 // vim: expandtab
00011 
00012 #ifndef QWT_TEXT_H
00013 #define QWT_TEXT_H
00014 
00015 #include <qfont.h>
00016 #include <qfontmetrics.h>
00017 #include <qnamespace.h>
00018 #include <qpen.h>
00019 #include <qbrush.h>
00020 #include <qstring.h>
00021 
00022 #include "qwt_global.h"
00023 
00024 #if QT_VERSION < 0x040000
00025 class QSimpleRichText;
00026 #else
00027 class QTextDocument;
00028 #endif
00029 
00037 class QWT_EXPORT QwtText
00038 {
00039 public:
00040     virtual ~QwtText();
00041 
00042     static QwtText *makeText(const QString &, Qt::TextFormat,
00043         int flags, const QFont &, const QColor &color = QColor(),
00044         const QPen &pen = QPen(Qt::NoPen),
00045         const QBrush &brush = QBrush(Qt::NoBrush));
00046 
00047     static QwtText *makeText(const QString &, 
00048         int flags, const QFont &, const QColor &color = QColor(),
00049         const QPen &pen = QPen(Qt::NoPen),
00050         const QBrush &brush = QBrush(Qt::NoBrush));
00051 
00052     static void setDefaultFormat(Qt::TextFormat);
00053     static Qt::TextFormat defaultFormat();
00054 
00055     virtual void setText(const QString &);
00056     QString text() const;
00057 
00058     inline bool isNull() const { return text().isNull(); }
00059     inline bool isEmpty() const { return text().isEmpty(); }
00060 
00061     virtual void setFont(const QFont &);
00062     QFont font() const;
00063     QFontMetrics fontMetrics() const;
00064 
00065     virtual void setFlags(int flags);
00066     int flags() const;
00067 
00068     virtual void setColor(const QColor &);
00069     QColor color() const;
00070 
00071     virtual void setRectPen(const QPen &);
00072     QPen rectPen() const;
00073 
00074     virtual void setRectBrush(const QBrush &);
00075     QBrush rectBrush() const;
00076 
00082     virtual int heightForWidth(int width) const = 0;
00083 
00097     virtual QRect boundingRect(QPainter *painter = 0) const = 0;
00098 
00104     virtual void draw(QPainter *painter, const QRect &rect) const = 0;
00105 
00109     virtual QwtText *clone() const = 0;
00110 
00111 protected:
00112     QwtText(const QString &text, const QFont &, int flags, const QColor &,
00113         const QPen &pen = QPen(Qt::NoPen),
00114         const QBrush &brush = QBrush(Qt::NoBrush));
00115 
00116 private:
00117     class PrivateData;
00118     PrivateData *d_data;
00119 
00120     static Qt::TextFormat d_defaultFormat;
00121 };
00122 
00123 
00127 class QWT_EXPORT QwtPlainText: public QwtText
00128 {
00129 public:
00130     QwtPlainText(const QString &text, const QFont &,
00131         int flags =
00132 #if QT_VERSION < 0x040000
00133             Qt::AlignCenter | Qt::ExpandTabs | Qt::WordBreak,
00134 #else
00135             Qt::AlignCenter | Qt::TextExpandTabs | Qt::TextWordWrap,
00136 #endif
00137         const QColor &color = QColor(), const QPen &pen = QPen(Qt::NoPen),
00138         const QBrush &brush = QBrush(Qt::NoBrush));
00139 
00140     QwtPlainText(const QString &text, const QFont &font,
00141                  const QColor &color);
00142 
00143     virtual QwtText *clone() const;
00144 
00145     virtual int heightForWidth(int width) const;
00146     virtual QRect boundingRect(QPainter *painter = 0) const;
00147 
00148     virtual void draw(QPainter *painter, const QRect &rect) const;
00149 };
00150 
00151 
00152 #ifndef QT_NO_RICHTEXT
00153 
00157 class QWT_EXPORT QwtRichText: public QwtText
00158 {
00159 public:
00160     QwtRichText(const QString &text, const QFont &font,
00161         int flags = 
00162 #if QT_VERSION < 0x040000
00163             Qt::AlignCenter | Qt::ExpandTabs | Qt::WordBreak,
00164 #else
00165             Qt::AlignCenter | Qt::TextExpandTabs | Qt::TextWordWrap,
00166 #endif
00167         const QColor &color = QColor(),
00168         const QPen &pen = QPen(Qt::NoPen),
00169         const QBrush &brush = QBrush(Qt::NoBrush));
00170 
00171     QwtRichText(const QString &, const QFont &, const QColor &);
00172 
00173     virtual ~QwtRichText();
00174 
00175     virtual QwtText *clone() const;
00176 
00177     virtual void setText(const QString &text);
00178     virtual void setFont(const QFont &font);
00179     virtual void setFlags(int flags);
00180 
00181     virtual int heightForWidth(int width) const;
00182     virtual QRect boundingRect(QPainter *painter = 0) const;
00183 
00184     virtual void draw(QPainter *painter, const QRect &rect) const;
00185 
00186 private:
00187     QString taggedText(const QString &text, int flags) const;
00188 
00189     class PrivateData;
00190     PrivateData *d_data;
00191 };
00192 
00193 #endif
00194 
00195 #endif

Generated on Wed Aug 31 23:02:30 2005 for Qwt User's Guide by  doxygen 1.4.1