00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 #ifndef QWT_ABSTRACT_SCALE_H
00011 #define QWT_ABSTRACT_SCALE_H
00012 
00013 #include "qwt_global.h"
00014 
00015 class QwtScaleEngine;
00016 class QwtAbstractScaleDraw;
00017 class QwtScaleDiv;
00018 class QwtScaleMap;
00019 class QwtDoubleInterval;
00020 
00029 class QWT_EXPORT QwtAbstractScale
00030 {
00031 public:
00032     QwtAbstractScale();
00033     virtual ~QwtAbstractScale();
00034     
00035     void setScale(double vmin, double vmax, double step = 0.0);
00036     void setScale(const QwtDoubleInterval &, double step = 0.0);
00037     void setScale(const QwtScaleDiv &s);
00038 
00039     void setAutoScale();
00040     bool autoScale() const;
00041 
00042     void setScaleMaxMajor( int ticks);
00043     int scaleMaxMinor() const;
00044 
00045     void setScaleMaxMinor( int ticks);
00046     int scaleMaxMajor() const; 
00047 
00048     void setScaleEngine(QwtScaleEngine *);
00049     const QwtScaleEngine *scaleEngine() const;
00050     QwtScaleEngine *scaleEngine();
00051 
00052     const QwtScaleMap &scaleMap() const;
00053     
00054 protected:
00055     void rescale(double vmin, double vmax, double step = 0.0);
00056 
00057     void setAbstractScaleDraw(QwtAbstractScaleDraw *);
00058     const QwtAbstractScaleDraw *abstractScaleDraw() const;
00059     QwtAbstractScaleDraw *abstractScaleDraw();
00060 
00061     virtual void scaleChange();
00062 
00063 private:
00064     void updateScaleDraw();
00065 
00066     class PrivateData;
00067     PrivateData *d_data;
00068 };
00069 
00070 #endif