pieslicedata_p.h
142 lines
| 3.8 KiB
| text/x-c
|
CLexer
Titta Heikkala
|
r2845 | /****************************************************************************** | ||
Jani Honkonen
|
r794 | ** | ||
Titta Heikkala
|
r2845 | ** Copyright (C) 2015 The Qt Company Ltd. | ||
** Contact: http://www.qt.io/licensing/ | ||||
Jani Honkonen
|
r794 | ** | ||
Titta Heikkala
|
r2740 | ** This file is part of the Qt Charts module. | ||
Jani Honkonen
|
r794 | ** | ||
Titta Heikkala
|
r2845 | ** $QT_BEGIN_LICENSE:COMM$ | ||
Jani Honkonen
|
r794 | ** | ||
Titta Heikkala
|
r2845 | ** Commercial License Usage | ||
** Licensees holding valid commercial Qt licenses may use this file in | ||||
** accordance with the commercial license agreement provided with the | ||||
** Software or, alternatively, in accordance with the terms contained in | ||||
** a written agreement between you and The Qt Company. For licensing terms | ||||
** and conditions see http://www.qt.io/terms-conditions. For further | ||||
** information use the contact form at http://www.qt.io/contact-us. | ||||
Jani Honkonen
|
r794 | ** | ||
Titta Heikkala
|
r2845 | ** $QT_END_LICENSE$ | ||
** | ||||
******************************************************************************/ | ||||
Jani Honkonen
|
r794 | |||
unknown
|
r1366 | // W A R N I N G | ||
// ------------- | ||||
// | ||||
Titta Heikkala
|
r2807 | // This file is not part of the Qt Chart API. It exists purely as an | ||
unknown
|
r1366 | // 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 | ||||
Titta Heikkala
|
r2714 | #include <QtCharts/QChartGlobal> | ||
#include <QtCharts/QPieSlice> | ||||
#include <QtGui/QPen> | ||||
#include <QtGui/QBrush> | ||||
Jani Honkonen
|
r675 | |||
Titta Heikkala
|
r2712 | QT_CHARTS_BEGIN_NAMESPACE | ||
Jani Honkonen
|
r675 | |||
Jani Honkonen
|
r691 | template <class T> | ||
class Themed : public T | ||||
{ | ||||
public: | ||||
Jani Honkonen
|
r2104 | Themed(): m_isThemed(true) {} | ||
Jani Honkonen
|
r691 | |||
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: | ||||
Jani Honkonen
|
r1921 | PieSliceData() : | ||
m_value(0), | ||||
m_isExploded(false), | ||||
m_explodeDistanceFactor(0.15), | ||||
m_isLabelVisible(false), | ||||
m_labelPosition(QPieSlice::LabelOutside), | ||||
m_labelArmLengthFactor(0.15), | ||||
m_percentage(0), | ||||
m_radius(0), | ||||
m_startAngle(0), | ||||
m_angleSpan(0), | ||||
m_holeRadius(0) | ||||
Jani Honkonen
|
r675 | { | ||
Jani Honkonen
|
r691 | } | ||
Jani Honkonen
|
r2104 | bool operator!=(const PieSliceData &other) const { | ||
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
|
r1838 | qreal m_holeRadius; | ||
Jani Honkonen
|
r675 | }; | ||
Titta Heikkala
|
r2712 | QT_CHARTS_END_NAMESPACE | ||
Jani Honkonen
|
r675 | |||
#endif // PIESLICEDATA_P_H | ||||