qwt_plot_rescaler.h
/******************************************************************************
* 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_PLOT_RESCALER_H
#define QWT_PLOT_RESCALER_H
#include "qwt_global.h"
#include "qwt_plot.h"
#include <qobject.h>
class QwtPlot;
class QwtInterval;
class QResizeEvent;
class QWT_EXPORT QwtPlotRescaler : public QObject
{
Q_OBJECT
public:
enum RescalePolicy
{
Fixed,
Expanding,
Fitting
};
enum ExpandingDirection
{
ExpandUp,
ExpandDown,
ExpandBoth
};
explicit QwtPlotRescaler( QWidget* canvas,
QwtAxisId referenceAxis = QwtAxis::XBottom,
RescalePolicy = Expanding );
virtual ~QwtPlotRescaler();
void setEnabled( bool );
bool isEnabled() const;
void setRescalePolicy( RescalePolicy );
RescalePolicy rescalePolicy() const;
void setExpandingDirection( ExpandingDirection );
void setExpandingDirection( QwtAxisId, ExpandingDirection );
ExpandingDirection expandingDirection( QwtAxisId ) const;
void setReferenceAxis( QwtAxisId );
QwtAxisId referenceAxis() const;
void setAspectRatio( double ratio );
void setAspectRatio( QwtAxisId, double ratio );
double aspectRatio( QwtAxisId ) const;
void setIntervalHint( QwtAxisId, const QwtInterval& );
QwtInterval intervalHint( QwtAxisId ) const;
QWidget* canvas();
const QWidget* canvas() const;
QwtPlot* plot();
const QwtPlot* plot() const;
virtual bool eventFilter( QObject*, QEvent* ) QWT_OVERRIDE;
void rescale() const;
protected:
virtual void canvasResizeEvent( QResizeEvent* );
virtual void rescale( const QSize& oldSize, const QSize& newSize ) const;
virtual QwtInterval expandScale(
QwtAxisId, const QSize& oldSize, const QSize& newSize ) const;
virtual QwtInterval syncScale(
QwtAxisId, const QwtInterval& reference, const QSize& size ) const;
virtual void updateScales(
QwtInterval intervals[QwtAxis::AxisPositions] ) const;
Qt::Orientation orientation( QwtAxisId ) const;
QwtInterval interval( QwtAxisId ) const;
QwtInterval expandInterval( const QwtInterval&,
double width, ExpandingDirection ) const;
private:
double pixelDist( QwtAxisId, const QSize& ) const;
class AxisData;
class PrivateData;
PrivateData* m_data;
};
#endif
QwtInterval
A class representing an interval.
Definition: qwt_interval.h:23
QwtPlot
A 2-D plotting widget.
Definition: qwt_plot.h:79
QwtPlotRescaler
QwtPlotRescaler takes care of fixed aspect ratios for plot scales.
Definition: qwt_plot_rescaler.h:30
QwtPlotRescaler::ExpandingDirection
ExpandingDirection
Definition: qwt_plot_rescaler.h:71
QwtPlotRescaler::ExpandUp
@ ExpandUp
The upper limit of the scale is adjusted.
Definition: qwt_plot_rescaler.h:73
QwtPlotRescaler::ExpandDown
@ ExpandDown
The lower limit of the scale is adjusted.
Definition: qwt_plot_rescaler.h:76
QwtPlotRescaler::RescalePolicy
RescalePolicy
Definition: qwt_plot_rescaler.h:41
QwtPlotRescaler::Fixed
@ Fixed
Definition: qwt_plot_rescaler.h:47
QwtPlotRescaler::Expanding
@ Expanding
Definition: qwt_plot_rescaler.h:57
QwtAxis::XBottom
@ XBottom
X axis below the canvas.
Definition: qwt_axis.h:30