QGIS API Documentation  3.23.0-Master (22c16f2067)
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_sip.h"
23 #include "qgsannotationitem.h"
24 #include "qgstextformat.h"
25 
26 
34 {
35  public:
36 
40  QgsAnnotationPointTextItem( const QString &text, QgsPointXY point );
42 
43  Qgis::AnnotationItemFlags flags() const override;
44  QString type() const override;
45  void render( QgsRenderContext &context, QgsFeedback *feedback ) override;
46  bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const override;
47 
51  static QgsAnnotationPointTextItem *create() SIP_FACTORY;
52 
53  bool readXml( const QDomElement &element, const QgsReadWriteContext &context ) override;
54  QgsAnnotationPointTextItem *clone() override SIP_FACTORY;
55  QgsRectangle boundingBox() const override;
56  QgsRectangle boundingBox( QgsRenderContext &context ) const override;
57  QList< QgsAnnotationItemNode > nodes() const override;
58  Qgis::AnnotationItemEditOperationResult applyEdit( QgsAbstractAnnotationItemEditOperation *operation ) override;
60 
68  QgsPointXY point() const { return mPoint; }
69 
77  void setPoint( QgsPointXY point ) { mPoint = point; }
78 
84  QString text() const { return mText; }
85 
91  void setText( const QString &text ) { mText = text; }
92 
98  QgsTextFormat format() const;
99 
105  void setFormat( const QgsTextFormat &format );
106 
112  double angle() const { return mAngle; }
113 
119  void setAngle( double angle ) { mAngle = angle; }
120 
126  Qt::Alignment alignment() const;
127 
133  void setAlignment( Qt::Alignment alignment );
134 
135  private:
136 
137  QString mText;
138  QgsPointXY mPoint;
139  QgsTextFormat mTextFormat;
140  double mAngle = 0;
141  Qt::Alignment mAlignment = Qt::AlignHCenter;
142 
143 #ifdef SIP_RUN
145 #endif
146 
147 };
148 
149 #endif // QGSANNOTATIONPOINTTEXTITEM_H
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:64
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:45
A class to represent a 2D point.
Definition: qgspointxy.h:59
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:786
#define SIP_FACTORY
Definition: qgis_sip.h:76