KD Chart 2
[rev.2.5.1]
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Macros
Pages
src
KDChart
KDChartTextLabelCache.h
Go to the documentation of this file.
1
/****************************************************************************
2
** Copyright (C) 2001-2013 Klaralvdalens Datakonsult AB. All rights reserved.
3
**
4
** This file is part of the KD Chart library.
5
**
6
** Licensees holding valid commercial KD Chart licenses may use this file in
7
** accordance with the KD Chart Commercial License Agreement provided with
8
** the Software.
9
**
10
**
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 and version 3 as published by the
13
** Free Software Foundation and appearing in the file LICENSE.GPL.txt included.
14
**
15
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17
**
18
** Contact info@kdab.com if any conditions of this licensing are not
19
** clear to you.
20
**
21
**********************************************************************/
22
23
#ifndef KDCHARTTEXTLABELCACHE_H
24
#define KDCHARTTEXTLABELCACHE_H
25
26
#include <QPixmap>
27
#include <QFont>
28
#include <QBrush>
29
#include <QPen>
30
31
#include "
KDChartEnums.h
"
32
36
class
PrerenderedElement
{
37
public
:
38
PrerenderedElement
();
39
virtual
~PrerenderedElement
() {}
40
44
virtual
const
QPixmap&
pixmap
()
const
= 0;
45
48
virtual
QPointF
referencePointLocation
(
KDChartEnums::PositionValue
)
const
= 0;
49
51
void
setPosition
(
const
QPointF&
position
);
53
const
QPointF&
position
()
const
;
54
59
void
setReferencePoint
(
KDChartEnums::PositionValue
);
61
KDChartEnums::PositionValue
referencePoint
()
const
;
62
63
protected
:
70
virtual
void
invalidate
()
const
= 0;
71
72
private
:
73
QPointF m_position;
74
KDChartEnums::PositionValue
m_referencePoint;
75
};
76
93
// FIXME this is merely a prototype
94
// FIXME caching could be done by a second layer that can be used to,
95
// e.g., query for a prerendered element by id or name, or by changing
96
// the pixmap() method to do lazy evaluation.
97
class
PrerenderedLabel
:
public
PrerenderedElement
98
{
99
public
:
100
PrerenderedLabel
();
101
~PrerenderedLabel
();
102
103
void
setFont
(
const
QFont&
font
);
104
const
QFont&
font
()
const
;
105
106
void
setText
(
const
QString&
text
);
107
const
QString&
text
()
const
;
108
109
void
setBrush
(
const
QBrush&
brush
);
110
const
QBrush&
brush
()
const
;
111
112
void
setPen
(
const
QPen& );
113
const
QPen&
pen
()
const
;
114
115
void
setAngle
( qreal
angle
);
116
qreal
angle
()
const
;
117
118
// reimpl PrerenderedElement:
119
const
QPixmap&
pixmap
()
const
;
120
QPointF
referencePointLocation
(
KDChartEnums::PositionValue
position
)
const
;
121
// overload: return location of referencePoint():
122
QPointF
referencePointLocation
()
const
;
123
124
protected
:
125
void
invalidate
()
const
;
126
127
private
:
131
void
paint()
const
;
132
133
// store the settings (these are used for the painting):
134
mutable
bool
m_dirty;
135
QFont m_font;
136
QString m_text;
137
QBrush m_brush;
138
QPen m_pen;
139
qreal m_angle;
140
141
// these are valid once the label has been rendered:
142
mutable
QPixmap m_pixmap;
143
mutable
QPointF m_referenceBottomLeft;
144
mutable
QPointF m_textBaseLineVector;
145
mutable
QPointF m_textAscendVector;
146
};
147
148
#endif
Klarälvdalens Datakonsult AB (KDAB)
Qt-related services and products
http://www.kdab.com/
http://www.kdab.com/products/kd-chart/