qwt_plot_multi_barchart.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_MULTI_BAR_CHART_H
00011 #define QWT_PLOT_MULTI_BAR_CHART_H
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_plot_abstract_barchart.h"
00015 #include "qwt_series_data.h"
00016 
00017 class QwtColumnRect;
00018 class QwtColumnSymbol;
00019 
00041 class QWT_EXPORT QwtPlotMultiBarChart: 
00042     public QwtPlotAbstractBarChart, public QwtSeriesStore<QwtSetSample>
00043 {
00044 public:
00051     enum ChartStyle
00052     {
00054         Grouped,
00055 
00061         Stacked
00062     };
00063 
00064     explicit QwtPlotMultiBarChart( const QString &title = QString::null );
00065     explicit QwtPlotMultiBarChart( const QwtText &title );
00066 
00067     virtual ~QwtPlotMultiBarChart();
00068 
00069     virtual int rtti() const;
00070 
00071     void setBarTitles( const QList<QwtText> & );
00072     QList<QwtText> barTitles() const;
00073 
00074     void setSamples( const QVector<QwtSetSample> & );
00075     void setSamples( const QVector< QVector<double> > & );
00076     void setSamples( QwtSeriesData<QwtSetSample> * );
00077 
00078     void setStyle( ChartStyle style );
00079     ChartStyle style() const;
00080 
00081     void setSymbol( int barIndex, QwtColumnSymbol *symbol );
00082     const QwtColumnSymbol *symbol( int barIndex ) const;
00083 
00084     void resetSymbolMap();
00085 
00086     virtual void drawSeries( QPainter *painter,
00087         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00088         const QRectF &canvasRect, int from, int to ) const;
00089 
00090     virtual QRectF boundingRect() const;
00091 
00092     virtual QList<QwtLegendData> legendData() const;
00093 
00094     virtual QwtGraphic legendIcon( int index, const QSizeF & ) const;
00095 
00096 protected:
00097     QwtColumnSymbol *symbol( int barIndex );
00098 
00099     virtual QwtColumnSymbol *specialSymbol( 
00100         int sampleIndex, int valueIndex ) const;
00101 
00102     virtual void drawSample( QPainter *painter,
00103         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00104         const QRectF &canvasRect, const QwtInterval &boundingInterval,
00105         int index, const QwtSetSample& sample ) const;
00106 
00107     virtual void drawBar( QPainter *, int sampleIndex,
00108         int barIndex, const QwtColumnRect & ) const;
00109 
00110     void drawStackedBars( QPainter *painter,
00111         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00112         const QRectF &canvasRect, int index,
00113         double sampleWidth, const QwtSetSample& sample ) const;
00114 
00115     void drawGroupedBars( QPainter *painter,
00116         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00117         const QRectF &canvasRect, int index,
00118         double sampleWidth, const QwtSetSample& sample ) const;
00119 
00120 private:
00121     void init();
00122 
00123     class PrivateData;
00124     PrivateData *d_data;
00125 };
00126 
00127 #endif


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