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

qwt_text_engine.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_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

Generated on Mon Jan 30 22:16:26 2006 for Qwt User's Guide by  doxygen 1.4.4