QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
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 
52  static QgsAnnotationPointTextItem *create() SIP_FACTORY;
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:1987
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