00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef QWT_TEXT_ENGINE_H
00013 #define QWT_TEXT_ENGINE_H 1
00014
00015 #include <qsize.h>
00016 #include "qwt_global.h"
00017
00018 class QFont;
00019 class QRect;
00020 class QString;
00021 class QPainter;
00022
00023 class QWT_EXPORT QwtTextEngine
00024 {
00025 public:
00026 virtual ~QwtTextEngine();
00027
00031 virtual int heightForWidth(const QFont &font, int flags,
00032 const QString &text, int width) const = 0;
00033
00037 virtual QSize textSize(const QFont &font, int flags,
00038 const QString &text) const = 0;
00039
00045 virtual void draw(QPainter *painter, const QRect &rect,
00046 int flags, const QString &text) const = 0;
00047
00048 virtual bool mightRender(const QString &) const = 0;
00049
00058 virtual void textMargins(const QFont &, const QString &,
00059 int &left, int &right, int &top, int &bottom);
00060
00061 protected:
00062 QwtTextEngine();
00063 };
00064
00065
00069 class QWT_EXPORT QwtPlainTextEngine: public QwtTextEngine
00070 {
00071 public:
00072 QwtPlainTextEngine();
00073 virtual ~QwtPlainTextEngine();
00074
00075 virtual int heightForWidth(const QFont &font, int flags,
00076 const QString &text, int width) const;
00077
00078 virtual QSize textSize(const QFont &font, int flags,
00079 const QString &text) const;
00080
00081 virtual void draw(QPainter *painter, const QRect &rect,
00082 int flags, const QString &text) const;
00083
00084 virtual bool mightRender(const QString &) const;
00085
00086 virtual void textMargins(const QFont &, const QString &,
00087 int &left, int &right, int &top, int &bottom);
00088
00089 private:
00090 class PrivateData;
00091 PrivateData *d_data;
00092 };
00093
00094
00095 #ifndef QT_NO_RICHTEXT
00096
00100 class QWT_EXPORT QwtRichTextEngine: public QwtTextEngine
00101 {
00102 public:
00103 QwtRichTextEngine();
00104
00105 virtual int heightForWidth(const QFont &font, int flags,
00106 const QString &text, int width) const;
00107
00108 virtual QSize textSize(const QFont &font, int flags,
00109 const QString &text) const;
00110
00111 virtual void draw(QPainter *painter, const QRect &rect,
00112 int flags, const QString &text) const;
00113
00114 virtual bool mightRender(const QString &) const;
00115 private:
00116 QString taggedText(const QString &, int flags) const;
00117 };
00118
00119 #endif // !QT_NO_RICHTEXT
00120
00121 #endif