Go to the documentation of this file.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 QwtTransform;
00023 class QwtScaleDiv;
00024 class QwtColorMap;
00025
00033 class QWT_EXPORT QwtScaleWidget : public QWidget
00034 {
00035 Q_OBJECT
00036
00037 public:
00039 enum LayoutFlag
00040 {
00045 TitleInverted = 1
00046 };
00047
00049 typedef QFlags<LayoutFlag> LayoutFlags;
00050
00051 explicit QwtScaleWidget( QWidget *parent = NULL );
00052 explicit QwtScaleWidget( QwtScaleDraw::Alignment, QWidget *parent = NULL );
00053 virtual ~QwtScaleWidget();
00054
00055 Q_SIGNALS:
00057 void scaleDivChanged();
00058
00059 public:
00060 void setTitle( const QString &title );
00061 void setTitle( const QwtText &title );
00062 QwtText title() const;
00063
00064 void setLayoutFlag( LayoutFlag, bool on );
00065 bool testLayoutFlag( LayoutFlag ) const;
00066
00067 void setBorderDist( int start, int end );
00068 int startBorderDist() const;
00069 int endBorderDist() const;
00070
00071 void getBorderDistHint( int &start, int &end ) const;
00072
00073 void getMinBorderDist( int &start, int &end ) const;
00074 void setMinBorderDist( int start, int end );
00075
00076 void setMargin( int );
00077 int margin() const;
00078
00079 void setSpacing( int td );
00080 int spacing() const;
00081
00082 void setScaleDiv( const QwtScaleDiv &sd );
00083 void setTransformation( QwtTransform * );
00084
00085 void setScaleDraw( QwtScaleDraw * );
00086 const QwtScaleDraw *scaleDraw() const;
00087 QwtScaleDraw *scaleDraw();
00088
00089 void setLabelAlignment( Qt::Alignment );
00090 void setLabelRotation( double rotation );
00091
00092 void setColorBarEnabled( bool );
00093 bool isColorBarEnabled() const;
00094
00095 void setColorBarWidth( int );
00096 int colorBarWidth() const;
00097
00098 void setColorMap( const QwtInterval &, QwtColorMap * );
00099
00100 QwtInterval colorBarInterval() const;
00101 const QwtColorMap *colorMap() const;
00102
00103 virtual QSize sizeHint() const;
00104 virtual QSize minimumSizeHint() const;
00105
00106 int titleHeightForWidth( int width ) const;
00107 int dimForLength( int length, const QFont &scaleFont ) const;
00108
00109 void drawColorBar( QPainter *painter, const QRectF & ) const;
00110 void drawTitle( QPainter *painter, QwtScaleDraw::Alignment,
00111 const QRectF &rect ) const;
00112
00113 void setAlignment( QwtScaleDraw::Alignment );
00114 QwtScaleDraw::Alignment alignment() const;
00115
00116 QRectF colorBarRect( const QRectF& ) const;
00117
00118 protected:
00119 virtual void paintEvent( QPaintEvent * );
00120 virtual void resizeEvent( QResizeEvent * );
00121 virtual void changeEvent( QEvent * );
00122
00123 void draw( QPainter *p ) const;
00124
00125 void scaleChange();
00126 void layoutScale( bool update = true );
00127
00128 private:
00129 void initScale( QwtScaleDraw::Alignment );
00130
00131 class PrivateData;
00132 PrivateData *d_data;
00133 };
00134
00135 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtScaleWidget::LayoutFlags )
00136
00137 #endif