bargroup.h
55 lines
| 1.5 KiB
| text/x-c
|
CLexer
|
r56 | #ifndef QBARCHART_H | ||
#define QBARCHART_H | ||||
#include <QGraphicsItem> | ||||
#include "bar.h" | ||||
//#include "qbarchartview.h" | ||||
#include "barchartseries.h" | ||||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
// TODO: Better name for this? The function of this class is to know where each bar in series is laid out. | ||||
// Class has knowledge of single series of data (owns vs reference?) | ||||
class BarGroup : public QGraphicsItem | ||||
{ | ||||
public: | ||||
explicit BarGroup(BarChartSeries& series, QGraphicsItem *parent = 0); | ||||
// Layout "api" | ||||
void resize( int w, int h ); // Size for whole series. Single bars are drawn inside this area | ||||
void setPos(qreal x, qreal y); | ||||
void setBarWidth( int w ); // Default width for each bar | ||||
void setColor( QColor color ); // Default color for each bar | ||||
// 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; | ||||
QColor mColor; | ||||
bool mLayoutSet; // True, if component has been laid out. | ||||
bool mLayoutDirty; | ||||
}; | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif // QBARCHART_H | ||||