axisitem_p.h
89 lines
| 2.2 KiB
| text/x-c
|
CLexer
|
r67 | #ifndef AXISITEM_H_ | ||
#define AXISITEM_H_ | ||||
|
r140 | #include "domain_p.h" | ||
|
r104 | #include "chartitem_p.h" | ||
|
r67 | #include <QGraphicsItem> | ||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
|
r140 | class QChartAxis; | ||
class AxisItem : public QObject, public ChartItem | ||||
|
r67 | { | ||
|
r140 | Q_OBJECT | ||
|
r67 | public: | ||
enum AxisType{X_AXIS,Y_AXIS}; | ||||
|
r439 | AxisItem(QChartAxis* axis,AxisType type = X_AXIS,QGraphicsItem* parent = 0); | ||
|
r67 | ~AxisItem(); | ||
//from QGraphicsItem | ||||
QRectF boundingRect() const; | ||||
|
r176 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); | ||
|
r67 | |||
|
r176 | AxisType axisType() const {return m_type;}; | ||
|
r140 | |||
|
r184 | void setAxisOpacity(qreal opacity); | ||
qreal axisOpacity() const; | ||||
|
r176 | void setGridOpacity(qreal opacity); | ||
qreal gridOpacity() const; | ||||
|
r140 | |||
|
r176 | void setLabelsOpacity(qreal opacity); | ||
qreal labelsOpacity() const; | ||||
|
r140 | |||
|
r176 | void setShadesOpacity(qreal opacity); | ||
qreal shadesOpacity() const; | ||||
|
r67 | |||
|
r176 | void setLabelsAngle(int angle); | ||
int labelsAngle()const { return m_labelsAngle; } | ||||
void setShadesBrush(const QBrush& brush); | ||||
void setShadesPen(const QPen& pen); | ||||
|
r140 | |||
|
r184 | void setAxisPen(const QPen& pen); | ||
|
r176 | void setGridPen(const QPen& pen); | ||
void setLabelsPen(const QPen& pen); | ||||
void setLabelsBrush(const QBrush& brush); | ||||
void setLabelsFont(const QFont& font); | ||||
public slots: | ||||
|
r439 | void handleAxisUpdated();//qchartaxis update calls | ||
|
r497 | void handleAxisCategoriesUpdated();//qchartaxis update calls | ||
|
r439 | void handleRangeChanged(qreal min , qreal max); //domain update calls | ||
void handleGeometryChanged(const QRectF& size); //geometry update calls | ||||
|
r291 | public: | ||
|
r452 | virtual void updateItem(); | ||
|
r393 | QVector<qreal> calculateLayout() const; | ||
|
r452 | void setLayout(const QVector<qreal>& points); | ||
QVector<qreal> layout() { return m_layoutVector;}; | ||||
|
r393 | |||
|
r85 | private: | ||
|
r452 | inline bool isEmpty(); | ||
|
r291 | void clear(int count); | ||
|
r223 | void createItems(int count); | ||
|
r439 | QStringList createLabels(int ticks, qreal min, qreal max); | ||
|
r497 | |||
|
r67 | private: | ||
|
r439 | QChartAxis* m_chartAxis; | ||
|
r140 | AxisType m_type; | ||
QRectF m_rect; | ||||
|
r176 | int m_labelsAngle; | ||
QGraphicsItemGroup m_grid; | ||||
QGraphicsItemGroup m_shades; | ||||
QGraphicsItemGroup m_labels; | ||||
|
r272 | QGraphicsItemGroup m_axis; | ||
|
r223 | QStringList m_thicksList; | ||
|
r291 | QVector<qreal> m_layoutVector; | ||
|
r452 | qreal m_min; | ||
qreal m_max; | ||||
int m_ticks; | ||||
|
r140 | |||
|
r67 | }; | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif /* AXISITEM_H_ */ | ||||