106 lines
2.8 KiB
C
106 lines
2.8 KiB
C
|
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
|
||
|
* Qwt Widget Library
|
||
|
* Copyright (C) 1997 Josef Wilgen
|
||
|
* Copyright (C) 2002 Uwe Rathmann
|
||
|
*
|
||
|
* This library is free software; you can redistribute it and/or
|
||
|
* modify it under the terms of the Qwt License, Version 1.0
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#ifndef QWT_ABSTRACT_SCALE_H
|
||
|
#define QWT_ABSTRACT_SCALE_H
|
||
|
|
||
|
#include "qwt_global.h"
|
||
|
#include <qwidget.h>
|
||
|
|
||
|
class QwtScaleEngine;
|
||
|
class QwtAbstractScaleDraw;
|
||
|
class QwtScaleDiv;
|
||
|
class QwtScaleMap;
|
||
|
class QwtInterval;
|
||
|
|
||
|
/*!
|
||
|
\brief An abstract base class for widgets having a scale
|
||
|
|
||
|
The scale of an QwtAbstractScale is determined by a QwtScaleDiv
|
||
|
definition, that contains the boundaries and the ticks of the scale.
|
||
|
The scale is painted using a QwtScaleDraw object.
|
||
|
|
||
|
The scale division might be assigned explicitly - but usually
|
||
|
it is calculated from the boundaries using a QwtScaleEngine.
|
||
|
|
||
|
The scale engine also decides the type of transformation of the scale
|
||
|
( linear, logarithmic ... ).
|
||
|
*/
|
||
|
|
||
|
class QWT_EXPORT QwtAbstractScale: public QWidget
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
Q_PROPERTY( double lowerBound READ lowerBound WRITE setLowerBound )
|
||
|
Q_PROPERTY( double upperBound READ upperBound WRITE setUpperBound )
|
||
|
|
||
|
Q_PROPERTY( int scaleMaxMajor READ scaleMaxMajor WRITE setScaleMaxMajor )
|
||
|
Q_PROPERTY( int scaleMaxMinor READ scaleMaxMinor WRITE setScaleMaxMinor )
|
||
|
|
||
|
Q_PROPERTY( double scaleStepSize READ scaleStepSize WRITE setScaleStepSize )
|
||
|
|
||
|
public:
|
||
|
QwtAbstractScale( QWidget *parent = NULL );
|
||
|
virtual ~QwtAbstractScale();
|
||
|
|
||
|
void setScale( double lowerBound, double upperBound );
|
||
|
void setScale( const QwtInterval & );
|
||
|
void setScale( const QwtScaleDiv & );
|
||
|
|
||
|
const QwtScaleDiv& scaleDiv() const;
|
||
|
|
||
|
void setLowerBound( double value );
|
||
|
double lowerBound() const;
|
||
|
|
||
|
void setUpperBound( double value );
|
||
|
double upperBound() const;
|
||
|
|
||
|
void setScaleStepSize( double stepSize );
|
||
|
double scaleStepSize() const;
|
||
|
|
||
|
void setScaleMaxMajor( int ticks );
|
||
|
int scaleMaxMinor() const;
|
||
|
|
||
|
void setScaleMaxMinor( int ticks );
|
||
|
int scaleMaxMajor() const;
|
||
|
|
||
|
void setScaleEngine( QwtScaleEngine * );
|
||
|
const QwtScaleEngine *scaleEngine() const;
|
||
|
QwtScaleEngine *scaleEngine();
|
||
|
|
||
|
int transform( double ) const;
|
||
|
double invTransform( int ) const;
|
||
|
|
||
|
bool isInverted() const;
|
||
|
|
||
|
double minimum() const;
|
||
|
double maximum() const;
|
||
|
|
||
|
const QwtScaleMap &scaleMap() const;
|
||
|
|
||
|
protected:
|
||
|
void rescale( double lowerBound,
|
||
|
double upperBound, double stepSize );
|
||
|
|
||
|
void setAbstractScaleDraw( QwtAbstractScaleDraw * );
|
||
|
|
||
|
const QwtAbstractScaleDraw *abstractScaleDraw() const;
|
||
|
QwtAbstractScaleDraw *abstractScaleDraw();
|
||
|
|
||
|
virtual void scaleChange();
|
||
|
|
||
|
private:
|
||
|
void updateScaleDraw();
|
||
|
|
||
|
class PrivateData;
|
||
|
PrivateData *d_data;
|
||
|
};
|
||
|
|
||
|
#endif
|