pieslicedata_p.h
110 lines
| 2.5 KiB
| text/x-c
|
CLexer
Jani Honkonen
|
r675 | #ifndef PIESLICEDATA_P_H | ||
#define PIESLICEDATA_P_H | ||||
#include <qchartglobal.h> | ||||
#include <QPen> | ||||
#include <QBrush> | ||||
Jani Honkonen
|
r691 | #include <QDebug> | ||
Jani Honkonen
|
r675 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
Jani Honkonen
|
r691 | template <class T> | ||
class Themed : public T | ||||
{ | ||||
public: | ||||
Themed():m_isThemed(true) {} | ||||
inline T &operator=(const T &other) { return T::operator =(other); } | ||||
inline bool operator!=(const T &other) { return T::operator !=(other); } | ||||
inline bool operator!=(const Themed &other) | ||||
{ | ||||
if (T::operator !=(other)) | ||||
return true; | ||||
if (m_isThemed != other.m_isThemed) | ||||
return true; | ||||
return false; | ||||
} | ||||
inline void setThemed(bool state) { m_isThemed = state; } | ||||
inline bool isThemed() const { return m_isThemed; } | ||||
private: | ||||
bool m_isThemed; | ||||
}; | ||||
Jani Honkonen
|
r675 | class PieSliceData | ||
{ | ||||
public: | ||||
PieSliceData() | ||||
{ | ||||
m_value = 0; | ||||
Jani Honkonen
|
r691 | |||
Jani Honkonen
|
r675 | m_isExploded = false; | ||
m_explodeDistanceFactor = 0.15; | ||||
Jani Honkonen
|
r691 | |||
m_isLabelVisible = false; | ||||
Jani Honkonen
|
r675 | m_labelArmLengthFactor = 0.15; | ||
Jani Honkonen
|
r691 | |||
m_percentage = 0; | ||||
m_radius = 0; | ||||
m_startAngle = 0; | ||||
m_angleSpan = 0; | ||||
} | ||||
bool operator!=(const PieSliceData &other) | ||||
{ | ||||
if (m_value != other.m_value) | ||||
return true; | ||||
if (m_slicePen != other.m_slicePen || | ||||
m_sliceBrush != other.m_sliceBrush) | ||||
return true; | ||||
if (m_isExploded != other.m_isExploded || | ||||
m_explodeDistanceFactor != other.m_explodeDistanceFactor) | ||||
return true; | ||||
if (m_isLabelVisible != other.m_isLabelVisible || | ||||
m_labelText != other.m_labelText || | ||||
m_labelFont != other.m_labelFont || | ||||
m_labelArmLengthFactor != other.m_labelArmLengthFactor || | ||||
m_labelArmPen != other.m_labelArmPen) | ||||
return true; | ||||
if (m_percentage != other.m_percentage || | ||||
m_center != other.m_center || | ||||
m_radius != other.m_radius || | ||||
m_startAngle != other.m_startAngle || | ||||
m_angleSpan != other.m_angleSpan) | ||||
return true; | ||||
return false; | ||||
Jani Honkonen
|
r675 | } | ||
qreal m_value; | ||||
Jani Honkonen
|
r691 | Themed<QPen> m_slicePen; | ||
Themed<QBrush> m_sliceBrush; | ||||
Jani Honkonen
|
r675 | |||
bool m_isExploded; | ||||
qreal m_explodeDistanceFactor; | ||||
Jani Honkonen
|
r691 | bool m_isLabelVisible; | ||
Jani Honkonen
|
r675 | QString m_labelText; | ||
Jani Honkonen
|
r691 | Themed<QFont> m_labelFont; | ||
Jani Honkonen
|
r675 | qreal m_labelArmLengthFactor; | ||
Jani Honkonen
|
r691 | Themed<QPen> m_labelArmPen; | ||
Jani Honkonen
|
r675 | |||
qreal m_percentage; | ||||
QPointF m_center; | ||||
qreal m_radius; | ||||
qreal m_startAngle; | ||||
qreal m_angleSpan; | ||||
}; | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif // PIESLICEDATA_P_H | ||||