00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SCALE_WIDGET_H
00011 #define QWT_SCALE_WIDGET_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_text.h"
00015 #include "qwt_scale_draw.h"
00016 #include <qwidget.h>
00017 #include <qfont.h>
00018 #include <qcolor.h>
00019 #include <qstring.h>
00020
00021 class QPainter;
00022 class QwtScaleTransformation;
00023 class QwtScaleDiv;
00024 class QwtColorMap;
00025
00033 class QWT_EXPORT QwtScaleWidget : public QWidget
00034 {
00035 Q_OBJECT
00036
00037 public:
00045 enum LayoutFlag
00046 {
00047 TitleInverted = 1
00048 };
00049
00050 explicit QwtScaleWidget( QWidget *parent = NULL );
00051 explicit QwtScaleWidget( QwtScaleDraw::Alignment, QWidget *parent = NULL );
00052 virtual ~QwtScaleWidget();
00053
00054 Q_SIGNALS:
00056 void scaleDivChanged();
00057
00058 public:
00059 void setTitle( const QString &title );
00060 void setTitle( const QwtText &title );
00061 QwtText title() const;
00062
00063 void setLayoutFlag( LayoutFlag, bool on );
00064 bool testLayoutFlag( LayoutFlag ) const;
00065
00066 void setBorderDist( int start, int end );
00067 int startBorderDist() const;
00068 int endBorderDist() const;
00069
00070 void getBorderDistHint( int &start, int &end ) const;
00071
00072 void getMinBorderDist( int &start, int &end ) const;
00073 void setMinBorderDist( int start, int end );
00074
00075 void setMargin( int );
00076 int margin() const;
00077
00078 void setSpacing( int td );
00079 int spacing() const;
00080
00081 void setScaleDiv( QwtScaleTransformation *, const QwtScaleDiv &sd );
00082
00083 void setScaleDraw( QwtScaleDraw * );
00084 const QwtScaleDraw *scaleDraw() const;
00085 QwtScaleDraw *scaleDraw();
00086
00087 void setLabelAlignment( Qt::Alignment );
00088 void setLabelRotation( double rotation );
00089
00090 void setColorBarEnabled( bool );
00091 bool isColorBarEnabled() const;
00092
00093 void setColorBarWidth( int );
00094 int colorBarWidth() const;
00095
00096 void setColorMap( const QwtInterval &, QwtColorMap * );
00097
00098 QwtInterval colorBarInterval() const;
00099 const QwtColorMap *colorMap() const;
00100
00101 virtual QSize sizeHint() const;
00102 virtual QSize minimumSizeHint() const;
00103
00104 int titleHeightForWidth( int width ) const;
00105 int dimForLength( int length, const QFont &scaleFont ) const;
00106
00107 void drawColorBar( QPainter *painter, const QRectF & ) const;
00108 void drawTitle( QPainter *painter, QwtScaleDraw::Alignment,
00109 const QRectF &rect ) const;
00110
00111 void setAlignment( QwtScaleDraw::Alignment );
00112 QwtScaleDraw::Alignment alignment() const;
00113
00114 QRectF colorBarRect( const QRectF& ) const;
00115
00116 protected:
00117 virtual void paintEvent( QPaintEvent * );
00118 virtual void resizeEvent( QResizeEvent * );
00119
00120 void draw( QPainter *p ) const;
00121
00122 void scaleChange();
00123 void layoutScale( bool update = true );
00124
00125 private:
00126 void initScale( QwtScaleDraw::Alignment );
00127
00128 class PrivateData;
00129 PrivateData *d_data;
00130 };
00131
00132 #endif