QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsannotationpointtextitem.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsannotationpointtextitem.h
3 ----------------
4 begin : August 2020
5 copyright : (C) 2020 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSANNOTATIONPOINTTEXTITEM_H
19#define QGSANNOTATIONPOINTTEXTITEM_H
20
21#include "qgis_core.h"
22#include "qgis.h"
23#include "qgis_sip.h"
24#include "qgsannotationitem.h"
25#include "qgstextformat.h"
26
27
35{
36 public:
37
41 QgsAnnotationPointTextItem( const QString &text, QgsPointXY point );
43
44 Qgis::AnnotationItemFlags flags() const override;
45 QString type() const override;
46 void render( QgsRenderContext &context, QgsFeedback *feedback ) override;
47 bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const override;
48
53
54 bool readXml( const QDomElement &element, const QgsReadWriteContext &context ) override;
55 QgsAnnotationPointTextItem *clone() const override SIP_FACTORY;
56 QgsRectangle boundingBox() const override;
57 QgsRectangle boundingBox( QgsRenderContext &context ) const override;
58 QList< QgsAnnotationItemNode > nodes() const override;
59 Qgis::AnnotationItemEditOperationResult applyEdit( QgsAbstractAnnotationItemEditOperation *operation ) override;
61
69 QgsPointXY point() const { return mPoint; }
70
78 void setPoint( QgsPointXY point ) { mPoint = point; }
79
85 QString text() const { return mText; }
86
92 void setText( const QString &text ) { mText = text; }
93
99 QgsTextFormat format() const;
100
106 void setFormat( const QgsTextFormat &format );
107
113 double angle() const { return mAngle; }
114
120 void setAngle( double angle ) { mAngle = angle; }
121
127 Qt::Alignment alignment() const;
128
134 void setAlignment( Qt::Alignment alignment );
135
142 Qgis::SymbolRotationMode rotationMode() const;
143
150 void setRotationMode( Qgis::SymbolRotationMode mode );
151
152 private:
153
154 QString mText;
155 QgsPointXY mPoint;
156 QgsTextFormat mTextFormat;
157 double mAngle = 0;
158 Qt::Alignment mAlignment = Qt::AlignHCenter;
160
161#ifdef SIP_RUN
163#endif
164
165};
166
167#endif // QGSANNOTATIONPOINTTEXTITEM_H
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:54
SymbolRotationMode
Modes for handling how symbol and text entity rotation is handled when maps are rotated.
Definition: qgis.h:574
@ IgnoreMapRotation
Entity ignores map rotation.
QFlags< AnnotationItemFlag > AnnotationItemFlags
Annotation item flags.
Definition: qgis.h:2006
Abstract base class for annotation item edit operations.
Encapsulates the transient results of an in-progress annotation edit operation.
Contains information about a node used for editing an annotation item.
Abstract base class for annotation items which are drawn with QgsAnnotationLayers.
virtual bool writeXml(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const =0
Writes the item's state into an XML element.
virtual QString type() const =0
Returns a unique (untranslated) string identifying the type of item.
virtual void render(QgsRenderContext &context, QgsFeedback *feedback)=0
Renders the item to the specified render context.
virtual Qgis::AnnotationItemFlags flags() const
Returns item flags.
An annotation item which renders a text string at a point location.
void setText(const QString &text)
Sets the text rendered by the item.
~QgsAnnotationPointTextItem() override
double angle() const
Returns the text's rotation angle, in degrees clockwise.
void setAngle(double angle)
Sets the text's rotation angle, in degrees clockwise.
void setPoint(QgsPointXY point)
Sets the point location of the text.
QString text() const
Returns the text rendered by the item.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:44
A class to represent a 2D point.
Definition: qgspointxy.h:60
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Contains information about the context of a rendering operation.
Container for all settings relating to text rendering.
Definition: qgstextformat.h:41
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Definition: MathUtils.cpp:716
#define SIP_FACTORY
Definition: qgis_sip.h:76