qpieslice.h
96 lines
| 2.1 KiB
| text/x-c
|
CLexer
Jani Honkonen
|
r203 | #ifndef QPIESLICE_H | ||
#define QPIESLICE_H | ||||
#include <qchartglobal.h> | ||||
#include <QObject> | ||||
#include <QPen> | ||||
#include <QBrush> | ||||
#include <QFont> | ||||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
class QTCOMMERCIALCHART_EXPORT QPieSlice : public QObject | ||||
{ | ||||
Q_OBJECT | ||||
Tero Ahola
|
r215 | Q_PROPERTY(QString label READ label WRITE setLabel /*NOTIFY dataYChanged*/) | ||
Q_PROPERTY(qreal value READ value WRITE setValue /*NOTIFY dataXChanged*/) | ||||
Jani Honkonen
|
r203 | |||
public: | ||||
QPieSlice(QObject *parent = 0); | ||||
Jani Honkonen
|
r294 | QPieSlice(qreal value, QString label, bool labelVisible = false, QObject *parent = 0); | ||
Jani Honkonen
|
r203 | virtual ~QPieSlice(); | ||
// data | ||||
qreal value() const; | ||||
QString label() const; | ||||
bool isLabelVisible() const; | ||||
bool isExploded() const; | ||||
Jani Honkonen
|
r289 | qreal explodeDistance() const; | ||
Jani Honkonen
|
r203 | |||
// generated data | ||||
qreal percentage() const; | ||||
qreal angle() const; | ||||
Jani Honkonen
|
r289 | qreal angleSpan() const; | ||
Jani Honkonen
|
r203 | |||
// customization | ||||
QPen pen() const; | ||||
QBrush brush() const; | ||||
QPen labelPen() const; | ||||
QFont labelFont() const; | ||||
Jani Honkonen
|
r289 | qreal labelArmLength() const; | ||
Jani Honkonen
|
r203 | |||
Q_SIGNALS: | ||||
void clicked(); | ||||
void hoverEnter(); | ||||
void hoverLeave(); | ||||
void changed(); | ||||
public Q_SLOTS: | ||||
// data | ||||
void setLabel(QString label); | ||||
void setLabelVisible(bool visible); | ||||
void setValue(qreal value); | ||||
void setExploded(bool exploded); | ||||
Jani Honkonen
|
r289 | void setExplodeDistance(qreal distance); | ||
Jani Honkonen
|
r203 | |||
// customization | ||||
void setPen(QPen pen); | ||||
void setBrush(QBrush brush); | ||||
void setLabelFont(QFont font); | ||||
void setLabelPen(QPen pen); | ||||
void setLabelArmLength(qreal len); | ||||
Jani Honkonen
|
r289 | // TODO: label position in general | ||
// setLabelFlags(inside|outside|labelArmOn|labelArmOff|???) | ||||
// setLabelOrientation(horizontal|vertical|same as slice center angle|???) | ||||
Jani Honkonen
|
r203 | private: | ||
// TODO: use private class | ||||
friend class QPieSeries; | ||||
Jani Honkonen
|
r289 | friend class PiePresenter; | ||
Jani Honkonen
|
r203 | |||
// data | ||||
qreal m_value; | ||||
QString m_label; | ||||
bool m_isLabelVisible; | ||||
bool m_isExploded; | ||||
Jani Honkonen
|
r289 | qreal m_explodeDistance; | ||
Jani Honkonen
|
r203 | |||
// generated data | ||||
qreal m_percentage; | ||||
qreal m_angle; | ||||
Jani Honkonen
|
r289 | qreal m_angleSpan; | ||
Jani Honkonen
|
r203 | |||
// customization | ||||
QPen m_pen; | ||||
QBrush m_brush; | ||||
QPen m_labelPen; | ||||
QFont m_labelFont; | ||||
qreal m_labelArmLength; | ||||
}; | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif // QPIESLICE_H | ||||