QGIS API Documentation
2.10.1-Pisa
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
src
core
qgslabel.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgslabel.h - render vector labels
3
-------------------
4
begin : August 2004
5
copyright : (C) 2004 by Radim Blazek
6
email :
[email protected]
7
***************************************************************************/
8
/***************************************************************************
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License as published by *
12
* the Free Software Foundation; either version 2 of the License, or *
13
* (at your option) any later version. *
14
* *
15
***************************************************************************/
16
#ifndef QGSLABEL_H
17
#define QGSLABEL_H
18
19
#include <vector>
20
21
#include <QColor>
22
#include <QList>
23
#include <QMap>
24
25
#include "
qgspoint.h
"
26
27
class
QDomNode
;
28
class
QDomDocument
;
29
class
QDomElement
;
30
class
QString
;
31
class
QPainter
;
32
class
QPaintDevice
;
33
34
class
QgsFeature
;
35
class
QgsField
;
36
class
QgsLabelAttributes
;
37
38
#include "
qgsfield.h
"
39
#include "
qgsrectangle.h
"
40
#include "
qgsrendercontext.h
"
41
42
typedef
QList<int>
QgsAttributeList
;
43
44
class
QgsFields
;
45
51
class
CORE_EXPORT
QgsLabel
52
{
53
public
:
54
QgsLabel
(
const
QgsFields
& fields );
55
56
~
QgsLabel
();
57
58
/* Fields */
59
enum
LabelField
60
{
61
Text = 0,
62
Family
,
63
Size
,
64
SizeType
,
65
Bold
,
66
Italic
,
67
Underline
,
68
Color
,
69
XCoordinate
,
70
YCoordinate
,
71
XOffset
,
72
YOffset
,
73
Angle
,
74
Alignment
,
75
BufferEnabled
,
76
BufferSize
,
77
BufferColor
,
78
BufferBrush
,
79
BorderWidth
,
80
BorderColor
,
81
BorderStyle
,
82
MultilineEnabled
,
83
StrikeOut
,
84
LabelFieldCount
85
};
86
87
struct
labelpoint
88
{
89
QgsPoint
p
;
90
double
angle
;
91
};
92
99
void
renderLabel(
QgsRenderContext
&renderContext,
QgsFeature
&feature,
bool
selected,
QgsLabelAttributes
*classAttributes = 0 );
100
104
void
readXML(
const
QDomNode
& node );
105
107
void
writeXML(
QDomNode
& label_node,
QDomDocument
& document )
const
;
108
110
void
addRequiredFields(
QgsAttributeList
& fields )
const
;
111
113
void
setFields(
const
QgsFields
& fields );
114
116
QgsFields
& fields();
117
122
QgsLabelAttributes
*labelAttributes();
123
125
void
setLabelField(
int
attr,
int
fieldIndex );
126
128
QString
labelField(
int
attr )
const
;
129
135
QString
fieldValue(
int
attr,
QgsFeature
& feature );
136
138
void
setMinScale(
float
theMinScale );
139
float
minScale()
const
;
140
142
void
setMaxScale(
float
theMaxScale );
143
float
maxScale()
const
;
144
146
void
setScaleBasedVisibility(
bool
theVisibilityFlag );
147
bool
scaleBasedVisibility()
const
;
148
149
private
:
151
void
renderLabel(
QgsRenderContext
&renderContext,
QgsPoint
point,
152
QString
text,
QFont
font,
QPen
pen,
153
int
dx,
int
dy,
154
double
xoffset,
double
yoffset,
155
double
ang,
156
int
width,
int
height,
int
alignment );
157
158
bool
readLabelField(
QDomElement
&el,
int
attr,
QString
prefix );
159
161
void
labelPoint( std::vector<labelpoint>&,
QgsFeature
&feature );
162
164
const
unsigned
char
* labelPoint(
labelpoint
& point,
const
unsigned
char
* wkb,
size_t
wkblen );
165
167
QColor
mSelectionColor;
168
170
QgsLabelAttributes
*mLabelAttributes;
171
173
QgsFields
mFields;
174
176
std::vector<QString> mLabelField;
177
179
std::vector<int> mLabelFieldIdx;
180
182
float
mMinScale;
184
float
mMaxScale;
186
bool
mScaleBasedVisibility;
187
};
188
189
#endif
qgsfield.h
QgsLabel::Underline
Definition:
qgslabel.h:67
QgsLabel::SizeType
Definition:
qgslabel.h:64
qgsrendercontext.h
QgsLabel::labelpoint::p
QgsPoint p
Definition:
qgslabel.h:89
QgsLabel::XOffset
Definition:
qgslabel.h:71
QgsLabel::YCoordinate
Definition:
qgslabel.h:70
QPaintDevice
QFont
QgsLabel::YOffset
Definition:
qgslabel.h:72
QgsFields
Container of fields for a vector layer.
Definition:
qgsfield.h:173
QgsLabel::XCoordinate
Definition:
qgslabel.h:69
QgsLabel::Alignment
Definition:
qgslabel.h:74
QgsLabel::BufferEnabled
Definition:
qgslabel.h:75
QDomNode
QgsLabel::BorderStyle
Definition:
qgslabel.h:81
QgsFeature
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition:
qgsfeature.h:162
QgsLabel::Color
Definition:
qgslabel.h:68
QgsLabel::BufferBrush
Definition:
qgslabel.h:78
QgsLabel::Family
Definition:
qgslabel.h:62
QgsLabel::BufferColor
Definition:
qgslabel.h:77
QgsAttributeList
QList< int > QgsAttributeList
Definition:
qgslabel.h:36
QgsLabel::MultilineEnabled
Definition:
qgslabel.h:82
QgsLabel::StrikeOut
Definition:
qgslabel.h:83
QPainter
QgsLabel::labelpoint::angle
double angle
Definition:
qgslabel.h:90
qgsrectangle.h
QString
QList< int >
QgsField
Encapsulate a field in an attribute table or data source.
Definition:
qgsfield.h:38
QColor
QgsPoint
A class to represent a point.
Definition:
qgspoint.h:63
QgsLabel::Size
Definition:
qgslabel.h:63
QDomDocument
QgsLabel
A class to render labels.
Definition:
qgslabel.h:51
QgsLabel::BufferSize
Definition:
qgslabel.h:76
QgsLabel::labelpoint
Definition:
qgslabel.h:87
QgsLabel::BorderWidth
Definition:
qgslabel.h:79
QgsRenderContext
Contains information about the context of a rendering operation.
Definition:
qgsrendercontext.h:39
QgsLabel::BorderColor
Definition:
qgslabel.h:80
QgsLabel::LabelField
LabelField
Definition:
qgslabel.h:59
QPen
QgsLabel::Bold
Definition:
qgslabel.h:65
QgsLabel::Italic
Definition:
qgslabel.h:66
QgsLabelAttributes
A class to store attributes needed for label rendering.
Definition:
qgslabelattributes.h:76
QDomElement
QgsLabel::Angle
Definition:
qgslabel.h:73
qgspoint.h
Generated on Sat Aug 22 2015 02:53:39 for QGIS API Documentation by
1.8.6