00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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 <qsimplerichtext.h>
00021
#include <qstring.h>
00022
00023
#include "qwt_global.h"
00024
00035 class QWT_EXPORT QwtText
00036 {
00037
public:
00038
virtual ~QwtText();
00039
00040
static QwtText *makeText(
const QString &, Qt::TextFormat,
00041
int align,
const QFont &,
const QColor &color = QColor(),
00042
const QPen &pen = QPen(Qt::NoPen),
00043
const QBrush &brush = QBrush(Qt::NoBrush));
00044
00045
static QwtText *makeText(
const QString &,
00046
int align,
const QFont &,
const QColor &color = QColor(),
00047
const QPen &pen = QPen(Qt::NoPen),
00048
const QBrush &brush = QBrush(Qt::NoBrush));
00049
00050
static void setDefaultFormat(Qt::TextFormat);
00051
static Qt::TextFormat defaultFormat();
00052
00053
virtual void setText(
const QString &);
00054 QString text()
const;
00055
00056
inline bool isNull()
const {
return text().isNull(); }
00057
inline bool isEmpty()
const {
return text().isEmpty(); }
00058
00059
virtual void setFont(
const QFont &);
00060 QFont font()
const;
00061 QFontMetrics fontMetrics()
const;
00062
00063
virtual void setAlignment(
int align);
00064
int alignment()
const;
00065
00066
virtual void setColor(
const QColor &);
00067 QColor color()
const;
00068
00069
virtual void setRectPen(
const QPen &);
00070 QPen rectPen()
const;
00071
00072
virtual void setRectBrush(
const QBrush &);
00073 QBrush rectBrush()
const;
00074
00080
virtual int heightForWidth(
int width)
const = 0;
00081
00095
virtual QRect boundingRect(QPainter *painter = 0)
const = 0;
00096
00102
virtual void draw(QPainter *painter,
const QRect &rect)
const = 0;
00103
00107
virtual QwtText *clone()
const = 0;
00108
00109
protected:
00110 QwtText(
const QString &text,
const QFont &,
int align,
const QColor &,
00111
const QPen &pen = QPen(Qt::NoPen),
00112
const QBrush &brush = QBrush(Qt::NoBrush));
00113
00114
private:
00115
int d_align;
00116 QString d_text;
00117 QFont d_font;
00118 QColor d_color;
00119 QFontMetrics d_fm;
00120 QPen d_rectPen;
00121 QBrush d_rectBrush;
00122
00123
static Qt::TextFormat d_defaultFormat;
00124 };
00125
00126
00130 class QWT_EXPORT QwtPlainText:
public QwtText
00131 {
00132
public:
00133 QwtPlainText(
const QString &text,
const QFont &,
00134
int align = Qt::AlignCenter | Qt::WordBreak | Qt::ExpandTabs,
00135
const QColor &color = QColor(),
const QPen &pen = QPen(Qt::NoPen),
00136
const QBrush &brush = QBrush(Qt::NoBrush));
00137
00138 QwtPlainText(
const QString &text,
const QFont &font,
00139
const QColor &color);
00140
00141
virtual QwtText *
clone()
const;
00142
00143
virtual int heightForWidth(
int width)
const;
00144
virtual QRect
boundingRect(QPainter *painter = 0)
const;
00145
00146
virtual void draw(QPainter *painter,
const QRect &rect)
const;
00147 };
00148
00149
00150
#ifndef QT_NO_RICHTEXT
00151
00155 class QWT_EXPORT QwtRichText:
public QwtText
00156 {
00157
public:
00158 QwtRichText(
const QString &text,
const QFont &font,
00159
int align = Qt::AlignCenter | Qt::WordBreak | Qt::ExpandTabs,
00160
const QColor &color = QColor(),
00161
const QPen &pen = QPen(Qt::NoPen),
00162
const QBrush &brush = QBrush(Qt::NoBrush));
00163
00164 QwtRichText(
const QString &,
const QFont &,
const QColor &);
00165
00166
virtual ~QwtRichText();
00167
00168
virtual QwtText *
clone()
const;
00169
00170
virtual void setText(
const QString &text);
00171
virtual void setFont(
const QFont &font);
00172
virtual void setAlignment(
int align);
00173
00174
virtual int heightForWidth(
int width)
const;
00175
virtual QRect
boundingRect(QPainter *painter = 0)
const;
00176
00177
virtual void draw(QPainter *painter,
const QRect &rect)
const;
00178
00179
private:
00180 QString taggedText(
const QString &text,
int alignment)
const;
00181
00182 QSimpleRichText *d_doc;
00183 };
00184
00185
#endif
00186
00187
#endif
00188
00189
00190
00191
00192