Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_LAYOUT_H
00011 #define QWT_PLOT_LAYOUT_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_plot.h"
00015
00026 class QWT_EXPORT QwtPlotLayout
00027 {
00028 public:
00033 enum Option
00034 {
00036 AlignScales = 0x01,
00037
00042 IgnoreScrollbars = 0x02,
00043
00045 IgnoreFrames = 0x04,
00046
00048 IgnoreLegend = 0x08,
00049
00051 IgnoreTitle = 0x10,
00052
00054 IgnoreFooter = 0x20
00055 };
00056
00058 typedef QFlags<Option> Options;
00059
00060 explicit QwtPlotLayout();
00061 virtual ~QwtPlotLayout();
00062
00063 void setCanvasMargin( int margin, int axis = -1 );
00064 int canvasMargin( int axis ) const;
00065
00066 void setAlignCanvasToScales( bool );
00067
00068 void setAlignCanvasToScale( int axisId, bool );
00069 bool alignCanvasToScale( int axisId ) const;
00070
00071 void setSpacing( int );
00072 int spacing() const;
00073
00074 void setLegendPosition( QwtPlot::LegendPosition pos, double ratio );
00075 void setLegendPosition( QwtPlot::LegendPosition pos );
00076 QwtPlot::LegendPosition legendPosition() const;
00077
00078 void setLegendRatio( double ratio );
00079 double legendRatio() const;
00080
00081 virtual QSize minimumSizeHint( const QwtPlot * ) const;
00082
00083 virtual void activate( const QwtPlot *,
00084 const QRectF &rect, Options options = 0x00 );
00085
00086 virtual void invalidate();
00087
00088 QRectF titleRect() const;
00089 QRectF footerRect() const;
00090 QRectF legendRect() const;
00091 QRectF scaleRect( int axis ) const;
00092 QRectF canvasRect() const;
00093
00094 class LayoutData;
00095
00096 protected:
00097
00098 void setTitleRect( const QRectF & );
00099 void setFooterRect( const QRectF & );
00100 void setLegendRect( const QRectF & );
00101 void setScaleRect( int axis, const QRectF & );
00102 void setCanvasRect( const QRectF & );
00103
00104 QRectF layoutLegend( Options options, const QRectF & ) const;
00105 QRectF alignLegend( const QRectF &canvasRect,
00106 const QRectF &legendRect ) const;
00107
00108 void expandLineBreaks( Options options, const QRectF &rect,
00109 int &dimTitle, int &dimFooter, int dimAxes[QwtPlot::axisCnt] ) const;
00110
00111 void alignScales( Options options, QRectF &canvasRect,
00112 QRectF scaleRect[QwtPlot::axisCnt] ) const;
00113
00114 private:
00115 Q_DISABLE_COPY(QwtPlotLayout)
00116
00117 class PrivateData;
00118 PrivateData *d_data;
00119 };
00120
00121 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotLayout::Options )
00122
00123 #endif