Qwt User's Guide svn
qwt_scale_div.h
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_SCALE_DIV_H
00011 #define QWT_SCALE_DIV_H
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_interval.h"
00015 #include <qlist.h>
00016 
00017 class QwtInterval;
00018 
00030 class QWT_EXPORT QwtScaleDiv
00031 {
00032 public:
00034     enum TickType
00035     {
00037         NoTick = -1,
00038 
00040         MinorTick,
00041 
00043         MediumTick,
00044 
00046         MajorTick,
00047 
00049         NTickTypes
00050     };
00051 
00052     explicit QwtScaleDiv();
00053     explicit QwtScaleDiv( const QwtInterval &, QList<double>[NTickTypes] );
00054     explicit QwtScaleDiv( 
00055         double lowerBound, double upperBound, QList<double>[NTickTypes] );
00056 
00057     bool operator==( const QwtScaleDiv &s ) const;
00058     bool operator!=( const QwtScaleDiv &s ) const;
00059 
00060     void setInterval( double lowerBound, double upperBound );
00061     void setInterval( const QwtInterval & );
00062     QwtInterval interval() const;
00063 
00064     double lowerBound() const;
00065     double upperBound() const;
00066     double range() const;
00067 
00068     bool contains( double v ) const;
00069 
00070     void setTicks( int type, const QList<double> & );
00071     const QList<double> &ticks( int type ) const;
00072 
00073     void invalidate();
00074     bool isValid() const;
00075 
00076     void invert();
00077 
00078 private:
00079     double d_lowerBound;
00080     double d_upperBound;
00081     QList<double> d_ticks[NTickTypes];
00082 
00083     bool d_isValid;
00084 };
00085 
00086 Q_DECLARE_TYPEINFO(QwtScaleDiv, Q_MOVABLE_TYPE);
00087 
00093 inline void QwtScaleDiv::setInterval( double lowerBound, double upperBound )
00094 {
00095     d_lowerBound = lowerBound;
00096     d_upperBound = upperBound;
00097 }
00098 
00102 inline QwtInterval QwtScaleDiv::interval() const
00103 {
00104     return QwtInterval( d_lowerBound, d_upperBound );
00105 }
00106 
00111 inline double QwtScaleDiv::lowerBound() const
00112 {
00113     return d_lowerBound;
00114 }
00115 
00120 inline double QwtScaleDiv::upperBound() const
00121 {
00122     return d_upperBound;
00123 }
00124 
00128 inline double QwtScaleDiv::range() const
00129 {
00130     return d_upperBound - d_lowerBound;
00131 }
00132 #endif
qmi style