pieslicedata_p.h
148 lines
| 3.8 KiB
| text/x-c
|
CLexer
Jani Honkonen
|
r794 | /**************************************************************************** | ||
** | ||||
** Copyright (C) 2012 Digia Plc | ||||
** All rights reserved. | ||||
** For any questions to Digia, please use contact form at http://qt.digia.com | ||||
** | ||||
** This file is part of the Qt Commercial Charts Add-on. | ||||
** | ||||
** $QT_BEGIN_LICENSE$ | ||||
** Licensees holding valid Qt Commercial licenses may use this file in | ||||
** accordance with the Qt Commercial License Agreement provided with the | ||||
** Software or, alternatively, in accordance with the terms contained in | ||||
** a written agreement between you and Digia. | ||||
** | ||||
** If you have questions regarding the use of this file, please use | ||||
** contact form at http://qt.digia.com | ||||
** $QT_END_LICENSE$ | ||||
** | ||||
****************************************************************************/ | ||||
unknown
|
r1366 | // W A R N I N G | ||
// ------------- | ||||
// | ||||
// This file is not part of the QtCommercial Chart API. It exists purely as an | ||||
// implementation detail. This header file may change from version to | ||||
// version without notice, or even be removed. | ||||
// | ||||
// We mean it. | ||||
Jani Honkonen
|
r675 | #ifndef PIESLICEDATA_P_H | ||
#define PIESLICEDATA_P_H | ||||
Jani Honkonen
|
r818 | #include "qchartglobal.h" | ||
#include "qpieslice.h" | ||||
Jani Honkonen
|
r675 | #include <QPen> | ||
#include <QBrush> | ||||
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); } | ||||
Jani Honkonen
|
r794 | inline bool operator!=(const T &other) const { return T::operator !=(other); } | ||
inline bool operator!=(const Themed &other) const | ||||
Jani Honkonen
|
r691 | { | ||
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
|
r1450 | m_labelPosition = QPieSlice::LabelOutside; | ||
Jani Honkonen
|
r675 | m_labelArmLengthFactor = 0.15; | ||
Jani Honkonen
|
r691 | |||
m_percentage = 0; | ||||
m_radius = 0; | ||||
m_startAngle = 0; | ||||
m_angleSpan = 0; | ||||
Marek Rosa
|
r1671 | |||
Marek Rosa
|
r1670 | m_donut = false; | ||
Marek Rosa
|
r1671 | m_innerRadius = 0; | ||
Jani Honkonen
|
r691 | } | ||
Jani Honkonen
|
r794 | bool operator!=(const PieSliceData &other) const | ||
Jani Honkonen
|
r691 | { | ||
Jani Honkonen
|
r768 | if (!qFuzzyIsNull(m_value - other.m_value)) | ||
Jani Honkonen
|
r691 | return true; | ||
if (m_slicePen != other.m_slicePen || | ||||
m_sliceBrush != other.m_sliceBrush) | ||||
return true; | ||||
if (m_isExploded != other.m_isExploded || | ||||
Jani Honkonen
|
r765 | !qFuzzyIsNull(m_explodeDistanceFactor - other.m_explodeDistanceFactor)) | ||
Jani Honkonen
|
r691 | return true; | ||
if (m_isLabelVisible != other.m_isLabelVisible || | ||||
m_labelText != other.m_labelText || | ||||
m_labelFont != other.m_labelFont || | ||||
Jani Honkonen
|
r1450 | m_labelPosition != other.m_labelPosition || | ||
Jani Honkonen
|
r765 | !qFuzzyIsNull(m_labelArmLengthFactor - other.m_labelArmLengthFactor) || | ||
Tero Ahola
|
r1307 | m_labelBrush != other.m_labelBrush) | ||
Jani Honkonen
|
r691 | return true; | ||
Jani Honkonen
|
r765 | if (!qFuzzyIsNull(m_percentage - other.m_percentage) || | ||
Jani Honkonen
|
r691 | m_center != other.m_center || | ||
Jani Honkonen
|
r765 | !qFuzzyIsNull(m_radius - other.m_radius) || | ||
!qFuzzyIsNull(m_startAngle - other.m_startAngle) || | ||||
!qFuzzyIsNull(m_angleSpan - other.m_angleSpan)) | ||||
Jani Honkonen
|
r691 | 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
|
r1450 | QPieSlice::LabelPosition m_labelPosition; | ||
Jani Honkonen
|
r675 | qreal m_labelArmLengthFactor; | ||
Tero Ahola
|
r1307 | Themed<QBrush> m_labelBrush; | ||
Jani Honkonen
|
r675 | |||
qreal m_percentage; | ||||
QPointF m_center; | ||||
qreal m_radius; | ||||
qreal m_startAngle; | ||||
qreal m_angleSpan; | ||||
Marek Rosa
|
r1671 | |||
Marek Rosa
|
r1670 | bool m_donut; | ||
Marek Rosa
|
r1671 | qreal m_innerRadius; | ||
Jani Honkonen
|
r675 | }; | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif // PIESLICEDATA_P_H | ||||