qwt_plot_rescaler.h
Go to the documentation of this file.
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_PLOT_RESCALER_H
00011 #define QWT_PLOT_RESCALER_H 1
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_interval.h"
00015 #include "qwt_plot.h"
00016 #include <qobject.h>
00017 
00018 class QwtPlot;
00019 class QResizeEvent;
00020 
00028 class QWT_EXPORT QwtPlotRescaler: public QObject
00029 {
00030 public:
00037     enum RescalePolicy
00038     {
00044         Fixed,
00045 
00054         Expanding,
00055 
00060         Fitting
00061     };
00062 
00067     enum ExpandingDirection
00068     {
00070         ExpandUp,
00071 
00073         ExpandDown,
00074 
00076         ExpandBoth
00077     };
00078 
00079     explicit QwtPlotRescaler( QWidget *canvas,
00080         int referenceAxis = QwtPlot::xBottom,
00081         RescalePolicy = Expanding );
00082 
00083     virtual ~QwtPlotRescaler();
00084 
00085     void setEnabled( bool );
00086     bool isEnabled() const;
00087 
00088     void setRescalePolicy( RescalePolicy );
00089     RescalePolicy rescalePolicy() const;
00090 
00091     void setExpandingDirection( ExpandingDirection );
00092     void setExpandingDirection( int axis, ExpandingDirection );
00093     ExpandingDirection expandingDirection( int axis ) const;
00094 
00095     void setReferenceAxis( int axis );
00096     int referenceAxis() const;
00097 
00098     void setAspectRatio( double ratio );
00099     void setAspectRatio( int axis, double ratio );
00100     double aspectRatio( int axis ) const;
00101 
00102     void setIntervalHint( int axis, const QwtInterval& );
00103     QwtInterval intervalHint( int axis ) const;
00104 
00105     QWidget *canvas();
00106     const QWidget *canvas() const;
00107 
00108     QwtPlot *plot();
00109     const QwtPlot *plot() const;
00110 
00111     virtual bool eventFilter( QObject *, QEvent * );
00112 
00113     void rescale() const;
00114 
00115 protected:
00116     virtual void canvasResizeEvent( QResizeEvent * );
00117 
00118     virtual void rescale( const QSize &oldSize, const QSize &newSize ) const;
00119     virtual QwtInterval expandScale( 
00120         int axis, const QSize &oldSize, const QSize &newSize ) const;
00121 
00122     virtual QwtInterval syncScale(
00123         int axis, const QwtInterval& reference,
00124         const QSize &size ) const;
00125 
00126     virtual void updateScales(
00127         QwtInterval intervals[QwtPlot::axisCnt] ) const;
00128 
00129     Qt::Orientation orientation( int axis ) const;
00130     QwtInterval interval( int axis ) const;
00131     QwtInterval expandInterval( const QwtInterval &,
00132         double width, ExpandingDirection ) const;
00133 
00134 private:
00135     double pixelDist( int axis, const QSize & ) const;
00136 
00137     class AxisData;
00138     class PrivateData;
00139     PrivateData *d_data;
00140 };
00141 
00142 #endif


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:56