QGIS API Documentation  master-3f58142
QgsLabel Class Reference

A class to render labels. More...

#include <qgslabel.h>

+ Collaboration diagram for QgsLabel:

List of all members.

Classes

struct  labelpoint

Public Types

enum  LabelField {
  Text = 0, Family, Size, SizeType,
  Bold, Italic, Underline, Color,
  XCoordinate, YCoordinate, XOffset, YOffset,
  Angle, Alignment, BufferEnabled, BufferSize,
  BufferColor, BufferBrush, BorderWidth, BorderColor,
  BorderStyle, MultilineEnabled, StrikeOut, LabelFieldCount
}

Public Member Functions

 QgsLabel (const QgsFields &fields)
 ~QgsLabel ()
void addRequiredFields (QgsAttributeList &fields) const
 add vector of required fields to existing list of fields
QgsFieldsfields ()
 Available vector fields.
QString fieldValue (int attr, QgsFeature &feature)
 Get field value if : 1) field name is not empty 2) field exists 3) value is defined otherwise returns empty string.
QgsLabelAttributeslabelAttributes ()
 Pointer to default attributes.
QString labelField (int attr) const
 label field
float maxScale () const
float minScale () const
void readXML (const QDomNode &node)
 Reads the renderer configuration from an XML file.
void renderLabel (QgsRenderContext &renderContext, QgsFeature &feature, bool selected, QgsLabelAttributes *classAttributes=0)
 render label
bool scaleBasedVisibility () const
void setFields (const QgsFields &fields)
 Set available fields.
void setLabelField (int attr, int fieldIndex)
 Set label field.
void setMaxScale (float theMaxScale)
 Accessor and mutator for the maximum scale member.
void setMinScale (float theMinScale)
 Accessor and mutator for the minimum scale member.
void setScaleBasedVisibility (bool theVisibilityFlag)
 Accessor and mutator for the scale based visilibility flag.
void writeXML (QDomNode &label_node, QDomDocument &document) const
 Writes the contents of the renderer to a configuration file.

Private Member Functions

void labelPoint (std::vector< labelpoint > &, QgsFeature &feature)
 Get label point for simple feature in map units.
unsigned char * labelPoint (labelpoint &point, unsigned char *wkb, size_t wkblen)
 Get label point for the given feature in wkb format.
bool readLabelField (QDomElement &el, int attr, QString prefix)
void renderLabel (QgsRenderContext &renderContext, QgsPoint point, QString text, QFont font, QPen pen, int dx, int dy, double xoffset, double yoffset, double ang, int width, int height, int alignment)
 Does the actual rendering of a label at the given point.

Private Attributes

QgsFields mFields
 Available layer fields.
QgsLabelAttributesmLabelAttributes
 Default layer attributes.
std::vector< QString > mLabelField
 Label fields.
std::vector< int > mLabelFieldIdx
 Label field indexes.
float mMaxScale
 Maximum scale at which this label should be displayed.
float mMinScale
 Minimum scale at which this label should be displayed.
bool mScaleBasedVisibility
 A flag that tells us whether to use the above vars to restrict the label's visibility.
QColor mSelectionColor
 Color to draw selected features.

Detailed Description

A class to render labels.

Label rendering properties can be either specified directly or in most cases determined dynamically based on the value of an attribute.

Definition at line 52 of file qgslabel.h.


Member Enumeration Documentation

Enumerator:
Text 
Family 
Size 
SizeType 
Bold 
Italic 
Underline 
Color 
XCoordinate 
YCoordinate 
XOffset 
YOffset 
Angle 
Alignment 
BufferEnabled 
BufferSize 
BufferColor 
BufferBrush 
BorderWidth 
BorderColor 
BorderStyle 
MultilineEnabled 
StrikeOut 
LabelFieldCount 

Definition at line 60 of file qgslabel.h.


Constructor & Destructor Documentation

QgsLabel::QgsLabel ( const QgsFields fields)

Definition at line 47 of file qgslabel.cpp.

References fields(), LabelFieldCount, mFields, mLabelAttributes, and mLabelFieldIdx.

Definition at line 61 of file qgslabel.cpp.

References mLabelAttributes.


Member Function Documentation

add vector of required fields to existing list of fields

Definition at line 463 of file qgslabel.cpp.

References LabelFieldCount, and mLabelFieldIdx.

Referenced by QgsVectorLayer::drawLabels().

Available vector fields.

Definition at line 490 of file qgslabel.cpp.

References mFields.

Referenced by QgsLabel(), and setFields().

QString QgsLabel::fieldValue ( int  attr,
QgsFeature feature 
)

Get field value if : 1) field name is not empty 2) field exists 3) value is defined otherwise returns empty string.

Definition at line 66 of file qgslabel.cpp.

References QgsFeature::attribute(), and mLabelFieldIdx.

Referenced by renderLabel().

Pointer to default attributes.

Note:
this replaces the to-be-deprecated layerAttributes method.
introduced in QGIS 1.4

Definition at line 514 of file qgslabel.cpp.

References mLabelAttributes.

QString QgsLabel::labelField ( int  attr) const

label field

Definition at line 503 of file qgslabel.cpp.

References QgsFields::count(), LabelFieldCount, mFields, and mLabelFieldIdx.

Referenced by QgsVectorLayer::writeSymbology(), and writeXML().

unsigned char * QgsLabel::labelPoint ( labelpoint point,
unsigned char *  wkb,
size_t  wkblen 
) [private]
float QgsLabel::maxScale ( ) const

Definition at line 1401 of file qgslabel.cpp.

References mMaxScale.

Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().

float QgsLabel::minScale ( ) const

Definition at line 1391 of file qgslabel.cpp.

References mMinScale.

Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().

bool QgsLabel::readLabelField ( QDomElement &  el,
int  attr,
QString  prefix = "field" 
) [private]

Definition at line 698 of file qgslabel.cpp.

References QgsFields::count(), mFields, and mLabelFieldIdx.

Referenced by readXML().

void QgsLabel::setFields ( const QgsFields fields)

Set available fields.

Definition at line 485 of file qgslabel.cpp.

References fields(), and mFields.

void QgsLabel::setLabelField ( int  attr,
int  fieldIndex 
)

Set label field.

Definition at line 495 of file qgslabel.cpp.

References LabelFieldCount, and mLabelFieldIdx.

void QgsLabel::setMaxScale ( float  theMaxScale)

Accessor and mutator for the maximum scale member.

Definition at line 1396 of file qgslabel.cpp.

References mMaxScale.

Referenced by QgsVectorLayer::readSymbology().

void QgsLabel::setMinScale ( float  theMinScale)

Accessor and mutator for the minimum scale member.

Definition at line 1386 of file qgslabel.cpp.

References mMinScale.

Referenced by QgsVectorLayer::readSymbology().

void QgsLabel::setScaleBasedVisibility ( bool  theVisibilityFlag)

Accessor and mutator for the scale based visilibility flag.

Definition at line 1376 of file qgslabel.cpp.

References mScaleBasedVisibility.

Referenced by QgsVectorLayer::readSymbology().

void QgsLabel::writeXML ( QDomNode &  label_node,
QDomDocument &  document 
) const

Writes the contents of the renderer to a configuration file.

Definition at line 1026 of file qgslabel.cpp.

References Alignment, QgsLabelAttributes::alignment(), QgsLabelAttributes::alignmentIsSet(), QgsLabelAttributes::alignmentName(), Angle, MathUtils::angle(), QgsLabelAttributes::angle(), QgsLabelAttributes::angleIsAuto(), QgsLabelAttributes::angleIsSet(), Bold, QgsLabelAttributes::bold(), QgsLabelAttributes::boldIsSet(), BufferColor, QgsLabelAttributes::bufferColor(), QgsLabelAttributes::bufferColorIsSet(), BufferEnabled, QgsLabelAttributes::bufferEnabled(), BufferSize, QgsLabelAttributes::bufferSize(), QgsLabelAttributes::bufferSizeIsSet(), QgsLabelAttributes::bufferSizeType(), Color, QgsLabelAttributes::color(), QgsLabelAttributes::colorIsSet(), Family, QgsLabelAttributes::family(), QgsLabelAttributes::familyIsSet(), Italic, QgsLabelAttributes::italic(), QgsLabelAttributes::italicIsSet(), labelField(), mLabelAttributes, mLabelFieldIdx, MultilineEnabled, QgsLabelAttributes::multilineEnabled(), QgsLabelAttributes::offsetIsSet(), QgsLabelAttributes::offsetType(), QgsLabelAttributes::selectedOnly(), Size, size, QgsLabelAttributes::size(), QgsLabelAttributes::sizeIsSet(), SizeType, QgsLabelAttributes::sizeType(), StrikeOut, QgsLabelAttributes::strikeOut(), QgsLabelAttributes::strikeOutIsSet(), Text, QgsLabelAttributes::text(), QgsLabelAttributes::textIsSet(), Underline, QgsLabelAttributes::underline(), QgsLabelAttributes::underlineIsSet(), QgsLabelAttributes::unitsName(), XCoordinate, XOffset, QgsLabelAttributes::xOffset(), YCoordinate, YOffset, and QgsLabelAttributes::yOffset().

Referenced by QgsVectorLayer::writeSymbology().


Member Data Documentation

Available layer fields.

Definition at line 177 of file qgslabel.h.

Referenced by fields(), labelField(), QgsLabel(), readLabelField(), and setFields().

Default layer attributes.

Definition at line 174 of file qgslabel.h.

Referenced by labelAttributes(), QgsLabel(), readXML(), renderLabel(), writeXML(), and ~QgsLabel().

std::vector<QString> QgsLabel::mLabelField [private]

Label fields.

Definition at line 180 of file qgslabel.h.

std::vector<int> QgsLabel::mLabelFieldIdx [private]

Label field indexes.

Definition at line 183 of file qgslabel.h.

Referenced by addRequiredFields(), fieldValue(), labelField(), QgsLabel(), readLabelField(), setLabelField(), and writeXML().

float QgsLabel::mMaxScale [private]

Maximum scale at which this label should be displayed.

Definition at line 188 of file qgslabel.h.

Referenced by maxScale(), and setMaxScale().

float QgsLabel::mMinScale [private]

Minimum scale at which this label should be displayed.

Definition at line 186 of file qgslabel.h.

Referenced by minScale(), and setMinScale().

A flag that tells us whether to use the above vars to restrict the label's visibility.

Definition at line 190 of file qgslabel.h.

Referenced by scaleBasedVisibility(), and setScaleBasedVisibility().

QColor QgsLabel::mSelectionColor [private]

Color to draw selected features.

Definition at line 171 of file qgslabel.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines