00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#ifndef QWT_SCALE_H
00013
#define QWT_SCALE_H
00014
00015
#include <qwidget.h>
00016
#include <qfont.h>
00017
#include <qcolor.h>
00018
#include <qstring.h>
00019
00020
#include "qwt_global.h"
00021
#include "qwt_scldiv.h"
00022
#include "qwt_scldraw.h"
00023
00024
class QPainter;
00025
class QwtText;
00026
00034 class QWT_EXPORT QwtScale :
public QWidget
00035 {
00036 Q_OBJECT
00037 Q_ENUMS(Position)
00038 Q_PROPERTY( Position position READ position WRITE setPosition )
00039 Q_PROPERTY( QString title READ title WRITE setTitle )
00040 Q_PROPERTY( QFont titleFont READ titleFont WRITE setTitleFont )
00041 Q_PROPERTY( QColor titleColor READ titleColor WRITE setTitleColor )
00042
00043
public:
00049 enum Position { Left, Right, Top, Bottom };
00050
00051 QwtScale(QWidget *parent = 0,
const char *name = 0);
00052 QwtScale(Position, QWidget *parent = 0,
const char *name = 0);
00053
virtual ~QwtScale();
00054
00055
void setTitle(
const QString &title);
00056
const QString title() const;
00057
00058
void setTitleColor(const QColor &c);
00059 const QColor titleColor() const;
00060
00061
void setTitleFont(const QFont &f);
00062 const QFont titleFont() const;
00063
00064
void setTitleAlignment(
int flags);
00065
int titleAlignment() const;
00066
00067
void setBorderDist(
int start,
int end);
00068
int startBorderDist() const;
00069
int endBorderDist() const;
00070
void minBorderDist(
int &start,
int &end) const;
00071
00072
void setBaselineDist(
int bd);
00073
int baseLineDist() const;
00074
00075
void setTitleDist(
int td);
00076
int titleDist() const;
00077
00078
void setScaleDiv(const
QwtScaleDiv &sd);
00079
void setScaleDraw(
QwtScaleDraw *);
00080 const QwtScaleDraw *scaleDraw() const;
00081
00082
void setLabelFormat(
char f,
int prec,
int fieldWidth);
00083
void labelFormat(
char &f,
int &prec,
int &fieldWidth) const;
00084
00085
void setLabelAlignment(
int align);
00086
void setLabelRotation(
double rotation);
00087
00088 virtual QSize sizeHint() const;
00089 virtual QSize minimumSizeHint() const;
00090 virtual QSizePolicy sizePolicy() const;
00091
00092
int titleHeightForWidth(
int width) const;
00093
int dimForLength(
int length, const QFontMetrics &scaleFontMetrics ) const;
00094
00095
void drawTitle(QPainter *painter, QwtScaleDraw::Orientation o,
00096 const QRect &rect) const;
00097
00098
void setPosition(Position o);
00099 Position position() const;
00100
00101 protected:
00102
void draw(QPainter *p) const;
00103
void paintEvent(QPaintEvent *e);
00104
void resizeEvent(QResizeEvent *e);
00105
void scaleChange();
00106
void fontChange(const QFont &oldfont);
00107
void layoutScale(
bool update = TRUE );
00108
00109 private:
00110
void initScale(Position);
00111
00112 QwtScaleDraw *d_scaleDraw;
00113
00114
int d_borderDist[2];
00115
int d_scaleLength;
00116
int d_baseDist;
00117
00118
int d_titleOffset;
00119
int d_titleDist;
00120
QwtText *d_title;
00121 };
00122
00123 #endif