#ifndef QBARGROUP_H #define QBARGROUP_H #include "chartitem_p.h" #include "bar.h" #include "barchartseries.h" #include QTCOMMERCIALCHART_BEGIN_NAMESPACE class BarGroup : public ChartItem { public: explicit BarGroup(BarChartSeries& series, QGraphicsItem *parent = 0); public: // from ChartObjectInterface void setSize(const QSize &size); void setTheme(ChartTheme *theme); void setPlotDomain(const PlotDomain& data); // Layout "api" void setPos(qreal x, qreal y); void setBarWidth( int w ); // Default width for each bar int addColor( QColor color ); void resetColors(); // From QGraphicsItem void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QRectF boundingRect() const; private: void dataChanged(); // data of series has changed -> need to recalculate bar sizes void layoutChanged(); // layout has changed -> need to recalculate bar sizes private: // Data BarChartSeries& mSeries; int mMin; // Min and max values of data. (updated when data is changed, used when drawing) int mMax; int mHeight; // Layout spesific int mWidth; int mBarDefaultWidth; bool mLayoutSet; // True, if component has been laid out. bool mLayoutDirty; QList mColors; // List of colors for series for now PlotDomain mPlotDomain; }; QTCOMMERCIALCHART_END_NAMESPACE #endif // QBARGROUP_H