Qwt User's Guide
svn
|
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 #ifndef QWT_TEXT_H 00011 #define QWT_TEXT_H 00012 00013 #include "qwt_global.h" 00014 #include <qstring.h> 00015 #include <qsize.h> 00016 #include <qfont.h> 00017 00018 class QColor; 00019 class QPen; 00020 class QBrush; 00021 class QRectF; 00022 class QPainter; 00023 class QwtTextEngine; 00024 00049 class QWT_EXPORT QwtText 00050 { 00051 public: 00052 00062 enum TextFormat 00063 { 00070 AutoText = 0, 00071 00073 PlainText, 00074 00076 RichText, 00077 00086 MathMLText, 00087 00092 TeXText, 00093 00098 OtherFormat = 100 00099 }; 00100 00107 enum PaintAttribute 00108 { 00110 PaintUsingTextFont = 0x01, 00111 00113 PaintUsingTextColor = 0x02, 00114 00116 PaintBackground = 0x04 00117 }; 00118 00120 typedef QFlags<PaintAttribute> PaintAttributes; 00121 00126 enum LayoutAttribute 00127 { 00134 MinimumLayout = 0x01 00135 }; 00136 00138 typedef QFlags<LayoutAttribute> LayoutAttributes; 00139 00140 QwtText( const QString & = QString::null, 00141 TextFormat textFormat = AutoText ); 00142 QwtText( const QwtText & ); 00143 ~QwtText(); 00144 00145 QwtText &operator=( const QwtText & ); 00146 00147 bool operator==( const QwtText & ) const; 00148 bool operator!=( const QwtText & ) const; 00149 00150 void setText( const QString &, 00151 QwtText::TextFormat textFormat = AutoText ); 00152 QString text() const; 00153 00154 bool isNull() const; 00155 bool isEmpty() const; 00156 00157 void setFont( const QFont & ); 00158 QFont font() const; 00159 00160 QFont usedFont( const QFont & ) const; 00161 00162 void setRenderFlags( int flags ); 00163 int renderFlags() const; 00164 00165 void setColor( const QColor & ); 00166 QColor color() const; 00167 00168 QColor usedColor( const QColor & ) const; 00169 00170 void setBackgroundPen( const QPen & ); 00171 QPen backgroundPen() const; 00172 00173 void setBackgroundBrush( const QBrush & ); 00174 QBrush backgroundBrush() const; 00175 00176 void setPaintAttribute( PaintAttribute, bool on = true ); 00177 bool testPaintAttribute( PaintAttribute ) const; 00178 00179 void setLayoutAttribute( LayoutAttribute, bool on = true ); 00180 bool testLayoutAttribute( LayoutAttribute ) const; 00181 00182 double heightForWidth( double width, const QFont & = QFont() ) const; 00183 QSizeF textSize( const QFont & = QFont() ) const; 00184 00185 void draw( QPainter *painter, const QRectF &rect ) const; 00186 00187 static const QwtTextEngine *textEngine( 00188 const QString &text, QwtText::TextFormat = AutoText ); 00189 00190 static const QwtTextEngine *textEngine( QwtText::TextFormat ); 00191 static void setTextEngine( QwtText::TextFormat, QwtTextEngine * ); 00192 00193 private: 00194 class PrivateData; 00195 PrivateData *d_data; 00196 00197 class LayoutCache; 00198 LayoutCache *d_layoutCache; 00199 }; 00200 00202 inline bool QwtText::isNull() const 00203 { 00204 return text().isNull(); 00205 } 00206 00208 inline bool QwtText::isEmpty() const 00209 { 00210 return text().isEmpty(); 00211 } 00212 00213 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtText::PaintAttributes ) 00214 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtText::LayoutAttributes ) 00215 00216 #endif