axisitem_p.h
78 lines
| 2.0 KiB
| text/x-c
|
CLexer
/ src / axisitem_p.h
Michal Klocek
|
r67 | #ifndef AXISITEM_H_ | ||
#define AXISITEM_H_ | ||||
Michal Klocek
|
r140 | #include "domain_p.h" | ||
Tero Ahola
|
r104 | #include "chartitem_p.h" | ||
Michal Klocek
|
r67 | #include <QGraphicsItem> | ||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
Michal Klocek
|
r140 | class QChartAxis; | ||
class AxisItem : public QObject, public ChartItem | ||||
Michal Klocek
|
r67 | { | ||
Michal Klocek
|
r140 | Q_OBJECT | ||
Michal Klocek
|
r67 | public: | ||
enum AxisType{X_AXIS,Y_AXIS}; | ||||
Michal Klocek
|
r176 | AxisItem(AxisType type = X_AXIS,QGraphicsItem* parent = 0); | ||
Michal Klocek
|
r67 | ~AxisItem(); | ||
//from QGraphicsItem | ||||
QRectF boundingRect() const; | ||||
Michal Klocek
|
r176 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); | ||
Michal Klocek
|
r67 | |||
Michal Klocek
|
r176 | AxisType axisType() const {return m_type;}; | ||
Michal Klocek
|
r140 | |||
Michal Klocek
|
r184 | void setAxisOpacity(qreal opacity); | ||
qreal axisOpacity() const; | ||||
Michal Klocek
|
r176 | void setGridOpacity(qreal opacity); | ||
qreal gridOpacity() const; | ||||
Michal Klocek
|
r140 | |||
Michal Klocek
|
r176 | void setLabelsOpacity(qreal opacity); | ||
qreal labelsOpacity() const; | ||||
Michal Klocek
|
r140 | |||
Michal Klocek
|
r176 | void setShadesOpacity(qreal opacity); | ||
qreal shadesOpacity() const; | ||||
Michal Klocek
|
r67 | |||
Michal Klocek
|
r176 | void setLabelsAngle(int angle); | ||
int labelsAngle()const { return m_labelsAngle; } | ||||
void setShadesBrush(const QBrush& brush); | ||||
void setShadesPen(const QPen& pen); | ||||
Michal Klocek
|
r140 | |||
Michal Klocek
|
r184 | void setAxisPen(const QPen& pen); | ||
Michal Klocek
|
r176 | void setGridPen(const QPen& pen); | ||
void setLabelsPen(const QPen& pen); | ||||
void setLabelsBrush(const QBrush& brush); | ||||
void setLabelsFont(const QFont& font); | ||||
public slots: | ||||
Michal Klocek
|
r262 | void handleAxisUpdate(QChartAxis* axis); //look and feel | ||
void handleLabelsChanged(QChartAxis* axis,const QStringList& labels); //labels from dataset | ||||
void handleGeometryChanged(const QRectF& size); // geometry from presenter | ||||
Michal Klocek
|
r291 | public: | ||
virtual void updateItems(QVector<qreal>& points); | ||||
virtual void calculateLayout(QVector<qreal>& points); | ||||
virtual void applyLayout(const QVector<qreal>& points); | ||||
Michal Klocek
|
r85 | private: | ||
Michal Klocek
|
r291 | void clear(int count); | ||
Michal Klocek
|
r223 | void createItems(int count); | ||
Michal Klocek
|
r67 | private: | ||
Michal Klocek
|
r140 | AxisType m_type; | ||
QRectF m_rect; | ||||
Michal Klocek
|
r176 | int m_labelsAngle; | ||
QGraphicsItemGroup m_grid; | ||||
QGraphicsItemGroup m_shades; | ||||
QGraphicsItemGroup m_labels; | ||||
Michal Klocek
|
r272 | QGraphicsItemGroup m_axis; | ||
Michal Klocek
|
r223 | QStringList m_thicksList; | ||
Michal Klocek
|
r291 | QVector<qreal> m_layoutVector; | ||
Michal Klocek
|
r140 | |||
Michal Klocek
|
r67 | }; | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif /* AXISITEM_H_ */ | ||||