All Classes Functions Variables Typedefs Enumerations Enumerator Pages
qwt_text.h
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2003 Uwe Rathmann
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Qwt License, Version 1.0
*****************************************************************************/
#ifndef QWT_TEXT_H
#define QWT_TEXT_H
#include "qwt_global.h"
#include <qstring.h>
#include <qsize.h>
#include <qfont.h>
#include <qmetatype.h>
class QColor;
class QPen;
class QBrush;
class QRectF;
class QPainter;
class QwtTextEngine;
class QWT_EXPORT QwtText
{
public:
enum TextFormat
{
AutoText = 0,
PlainText,
RichText,
MathMLText,
TeXText,
OtherFormat = 100
};
enum PaintAttribute
{
PaintUsingTextFont = 0x01,
PaintUsingTextColor = 0x02,
PaintBackground = 0x04
};
typedef QFlags<PaintAttribute> PaintAttributes;
enum LayoutAttribute
{
MinimumLayout = 0x01
};
typedef QFlags<LayoutAttribute> LayoutAttributes;
QwtText( const QString & = QString::null,
TextFormat textFormat = AutoText );
QwtText( const QwtText & );
~QwtText();
QwtText &operator=( const QwtText & );
bool operator==( const QwtText & ) const;
bool operator!=( const QwtText & ) const;
void setText( const QString &,
QwtText::TextFormat textFormat = AutoText );
QString text() const;
bool isNull() const;
bool isEmpty() const;
void setFont( const QFont & );
QFont font() const;
QFont usedFont( const QFont & ) const;
void setRenderFlags( int flags );
int renderFlags() const;
void setColor( const QColor & );
QColor color() const;
QColor usedColor( const QColor & ) const;
void setBorderRadius( double );
double borderRadius() const;
void setBorderPen( const QPen & );
QPen borderPen() const;
void setBackgroundBrush( const QBrush & );
QBrush backgroundBrush() const;
void setPaintAttribute( PaintAttribute, bool on = true );
bool testPaintAttribute( PaintAttribute ) const;
void setLayoutAttribute( LayoutAttribute, bool on = true );
bool testLayoutAttribute( LayoutAttribute ) const;
double heightForWidth( double width, const QFont & = QFont() ) const;
QSizeF textSize( const QFont & = QFont() ) const;
void draw( QPainter *painter, const QRectF &rect ) const;
static const QwtTextEngine *textEngine(
const QString &text, QwtText::TextFormat = AutoText );
static const QwtTextEngine *textEngine( QwtText::TextFormat );
static void setTextEngine( QwtText::TextFormat, QwtTextEngine * );
private:
class PrivateData;
PrivateData *d_data;
class LayoutCache;
LayoutCache *d_layoutCache;
};
inline bool QwtText::isNull() const
{
return text().isNull();
}
inline bool QwtText::isEmpty() const
{
return text().isEmpty();
}
Q_DECLARE_OPERATORS_FOR_FLAGS( QwtText::PaintAttributes )
Q_DECLARE_OPERATORS_FOR_FLAGS( QwtText::LayoutAttributes )
Q_DECLARE_METATYPE( QwtText )
#endif