##// END OF EJS Templates
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.

File last commit:

r203:7350e0387b3f
r203:7350e0387b3f
Show More
qpieslice.h
86 lines | 1.7 KiB | text/x-c | CLexer
#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
public:
QPieSlice(QObject *parent = 0);
QPieSlice(qreal value, QString label, bool labelVisible = true, QObject *parent = 0);
virtual ~QPieSlice();
// data
qreal value() const;
QString label() const;
bool isLabelVisible() const;
bool isExploded() const;
// generated data
qreal percentage() const;
qreal angle() const;
qreal span() const;
// customization
QPen pen() const;
QBrush brush() const;
QPen labelPen() const;
QFont labelFont() const;
qreal labelArmLenght() const;
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);
// customization
void setPen(QPen pen);
void setBrush(QBrush brush);
void setLabelFont(QFont font);
void setLabelPen(QPen pen);
void setLabelArmLength(qreal len);
private:
// TODO: use private class
friend class QPieSeries;
// data
qreal m_value;
QString m_label;
bool m_isLabelVisible;
bool m_isExploded;
// generated data
qreal m_percentage;
qreal m_angle;
qreal m_span;
// customization
QPen m_pen;
QBrush m_brush;
QPen m_labelPen;
QFont m_labelFont;
qreal m_labelArmLength;
};
QTCOMMERCIALCHART_END_NAMESPACE
#endif // QPIESLICE_H