KChart

KChartDataValueAttributes.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved.
3  *
4  * This file is part of the KD Chart library.
5  *
6  * SPDX-License-Identifier: GPL-2.0-or-later
7  */
8 
9 #ifndef KCHARTDATAVALUEATTRIBUTES_H
10 #define KCHARTDATAVALUEATTRIBUTES_H
11 
12 #include <Qt>
13 #include <QMetaType>
14 #include "KChartGlobal.h"
15 #include "KChartEnums.h"
16 #include "KChartRelativePosition.h"
17 
18 /** \file KChartDataValueAttributes.h
19  * \brief Declaring the class KChart::DataValueAttributes.
20  *
21  *
22  */
23 
24 
25 namespace KChart {
26 
27  class TextAttributes;
28  class BackgroundAttributes;
29  class FrameAttributes;
30  class MarkerAttributes;
31 
32  /**
33  * \class DataValueAttributes KChartDataValueAttributes.h KChartDataValueAttributes
34  * \brief Diagram attributes dealing with data value labels.
35  *
36  * The DataValueAttributes group all properties that can be set
37  * wrt data value labels and if and how they are displayed. This
38  * includes things like the text attributes (font, color), what
39  * markers are used, how many decimal digits are displayed, etc.
40  */
41 class KCHART_EXPORT DataValueAttributes
42 {
43 public:
46  DataValueAttributes &operator= ( const DataValueAttributes& );
47  bool operator==( const DataValueAttributes& ) const;
48  inline bool operator!=( const DataValueAttributes& other ) const { return !operator==(other); }
49 
51 
52  static const DataValueAttributes& defaultAttributes();
53  static const QVariant& defaultAttributesAsVariant();
54 
55  /** Set whether data value labels should be displayed.
56  * \param visible Whether data value labels should be displayed.
57  */
58  void setVisible( bool visible );
59 
60  /**
61  * @return Whether data value labels should be displayed.
62  */
63  bool isVisible() const;
64 
65  /**
66  * Set the text attributes to use for the data value labels.
67  * \param a The text attributes to set.
68  * \see TextAttributes
69  */
70  void setTextAttributes( const TextAttributes &a );
71 
72  /**
73  * \return The text attributes used for painting data value labels.
74  */
75  TextAttributes textAttributes() const;
76 
77  /**
78  * If true, rotation of negative value labels is negated, so that negative
79  * values are rotated in opposite direction of textAttributes().rotation(),
80  * and in this sense appear "mirrored" to positive value labels, though the
81  * text itself is *not* mirrored, only its rotation.
82  */
83  bool mirrorNegativeValueTextRotation() const;
84 
85  /**
86  * \see mirrorNegativeValueTextRotation()
87  */
88  void setMirrorNegativeValueTextRotation( bool enable );
89 
90  /**
91  * Set the frame attributes to use for the data value labels area.
92  * \param a The frame attributes to set.
93  * \see FrameAttributes
94  */
95  void setFrameAttributes( const FrameAttributes &a );
96 
97  /**
98  * \return The frame attributes used for painting the data
99  * value labels area.
100  * \see FrameAttributes
101  */
102  FrameAttributes frameAttributes() const;
103 
104  /**
105  * Set the background attributes to use for the data value labels area.
106  * \param a The background attributes to set.
107  * \see BackgroundAttributes
108  */
109  void setBackgroundAttributes( const BackgroundAttributes &a );
110 
111  /**
112  * \return The background attributes used for painting the data
113  * value labels area.
114  * \see BackgroundAttributes
115  */
116  BackgroundAttributes backgroundAttributes() const;
117 
118  /**
119  * Set the marker attributes to use for the data values. This includes
120  * the marker type.
121  * \param a The marker attributes to set.
122  * \see MarkerAttributes
123  */
124  void setMarkerAttributes( const MarkerAttributes &a );
125 
126  /**
127  * \return The marker attributes used for decorating the data
128  * values.
129  * \see MarkerAttributes
130  */
131  MarkerAttributes markerAttributes() const;
132 
133  /**
134  * Specify whether to use percentages instead of actual data point values when no
135  * specific label is set. In a bar or cartesian diagram, this means that the value
136  * will be shown in % in relation to the sum of all values in the same category, in
137  * a polar diagram in relation to the sum of all values in a data set.
138  *
139  * When this is turned on, the value will \b not automatically have the '%' postfix.
140  * \param enable Whether to enable percentage values
141  */
142  void setUsePercentage( bool enable );
143 
144  /**
145  * \return Whether to use percentage values
146  * \see setUsePercentage
147  */
148  bool usePercentage() const;
149 
150  /**
151  * Set how many decimal digits to display when rendering the data value
152  * labels. If there are no decimal digits it will not be displayed.
153  * \param digits The number of decimal digits to use.
154  */
155  void setDecimalDigits( int digits );
156 
157  /**
158  * \return The number of decimal digits displayed.
159  */
160  int decimalDigits() const;
161 
162  /**
163  * \brief Prepend a prefix string to the data value label
164  * \sa prefix
165  */
166  void setPrefix( const QString prefix );
167 
168  /**
169  * \brief Returns the string used as a prefix to the data value text.
170  * \sa setPrefix
171  */
172  QString prefix() const;
173 
174  /**
175  * \brief Append a suffix string to the data value label
176  * \sa suffix
177  */
178  void setSuffix( const QString suffix );
179 
180  /**
181  * \brief Returns the string used as a suffix to the data value text.
182  * \sa setSuffix
183  */
184  QString suffix() const;
185 
186  /**
187  * \brief display a string label instead of the original data value label
188  * Supports HTML code.
189  * \sa dataLabel
190  */
191  void setDataLabel( const QString label );
192 
193  /**
194  * \brief Returns the string displayed instead of the data value label
195  * \sa setDataLabel
196  */
197  QString dataLabel() const;
198 
199  /**
200  * \return Whether data values not different from their predecessors are drawn.
201  */
202  bool showRepetitiveDataLabels() const;
203 
204  /**
205  *
206  * Set whether data value labels not different from their predecessors should be drawn.
207  * \param showRepetitiveDataLabels Whether data value not different from their predecessors are drawn.
208  */
209  void setShowRepetitiveDataLabels( bool showRepetitiveDataLabels );
210 
211  /**
212  * \return Whether data value texts overlapping other data value texts of the same diagram are drawn.
213  */
214  bool showOverlappingDataLabels() const;
215 
216  /**
217  *
218  * Set whether data value texts overlapping other data value texts of the same diagram should be drawn.
219  * \param showOverlappingDataLabels Whether data texts overlapping other data value texts of the same diagram are drawn.
220  */
221  void setShowOverlappingDataLabels( bool showOverlappingDataLabels );
222 
223  /**
224  * \cond PLANNED_FOR_FUTURE
225  *
226  * These method are planned for future versions of KD Chart,
227  * so they are not part of the documented API yet.
228  *
229  */
230  void setPowerOfTenDivisor( int powerOfTenDivisor );
231  int powerOfTenDivisor() const;
232  /**
233  * \endcond
234  */
235 
236 
237  /**
238  * \cond PLANNED_FOR_FUTURE
239  *
240  * These method are planned for future versions of KD Chart,
241  * so they are not part of the documented API yet.
242  */
243  void setShowInfinite( bool infinite );
244  bool showInfinite() const;
245  /**
246  * \endcond
247  */
248 
249  /**
250  * \brief Defines the relative positioning of the data value labels for negative values.
251  *
252  * The position is specified in relation to the respective data value point, or in
253  * relation to the respective data representation area, that's one area segment in
254  * a LineDiagram showing areas, or one bar in a BarDiagram, one pie slice ...
255  *
256  * See detailed description of \a KChart::Position for an illustration of the
257  * different possible reference positions.
258  *
259  * \sa negativePosition
260  */
261  void setNegativePosition( const RelativePosition& relPosition );
262 
263  /**
264  * \brief Return the relative positioning of the data value labels
265  * \sa setNegativePosition
266  */
267  const RelativePosition negativePosition() const;
268 
269  /**
270  * \brief Defines the relative position of the data value labels for positive values.
271  *
272  * The position is specified in relation to the respective data value point, or in
273  * relation to the respective data representation area, that's one area segment in
274  * a LineDiagram showing areas, or one bar in a BarDiagram, one pie slice ...
275  *
276  * See detailed description of \a KChart::Position for an illustration of the
277  * different possible reference positions.
278  *
279  * \sa positivePosition
280  */
281  void setPositivePosition( const RelativePosition& relPosition );
282 
283  /**
284  * \brief Return the relative positioning of the data value labels
285  * \sa setPositivePosition
286  */
287  const RelativePosition positivePosition() const;
288 
289  const RelativePosition position( bool positive ) const
290  {
291  return positive ? positivePosition() : negativePosition();
292  }
293 
294 private:
295  KCHART_DECLARE_PRIVATE_BASE_VALUE( DataValueAttributes )
296 
297 }; // End of class DataValueAttributes
298 
299 }
300 
301 #if !defined(QT_NO_DEBUG_STREAM)
302 KCHART_EXPORT QDebug operator<<(QDebug, const KChart::DataValueAttributes& );
303 #endif /* QT_NO_DEBUG_STREAM */
304 
305 KCHART_DECLARE_SWAP_SPECIALISATION( KChart::DataValueAttributes )
306 
307 QT_BEGIN_NAMESPACE
308 Q_DECLARE_TYPEINFO( KChart::DataValueAttributes, Q_MOVABLE_TYPE );
309 QT_END_NAMESPACE
310 
311 Q_DECLARE_METATYPE( KChart::DataValueAttributes )
312 
313 #endif // KCHARTDATAVALUEATTRIBUTES_H
A set of attributes for frames around items.
KCALENDARCORE_EXPORT QDataStream & operator<<(QDataStream &out, const KCalendarCore::Alarm::Ptr &)
Diagram attributes dealing with data value labels.
Set of attributes usable for background pixmaps.
Definition of global enums.
A set of attributes controlling the appearance of data set markers.
Defines relative position information: reference area, position in this area (reference position),...
A set of text attributes.
Contains KChart macros.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Tue Aug 9 2022 03:55:05 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.