18 #ifndef QGSANNOTATION_H 19 #define QGSANNOTATION_H 21 #include "qgis_core.h" 53 if ( dynamic_cast< QgsTextAnnotation * >( sipCpp ) )
54 sipType = sipType_QgsTextAnnotation;
55 else if ( dynamic_cast< QgsSvgAnnotation * >( sipCpp ) )
56 sipType = sipType_QgsSvgAnnotation;
57 else if ( dynamic_cast< QgsHtmlAnnotation * >( sipCpp ) )
58 sipType = sipType_QgsHtmlAnnotation;
66 Q_PROPERTY(
bool visible READ isVisible WRITE setVisible )
67 Q_PROPERTY(
bool hasFixedMapPosition READ hasFixedMapPosition WRITE setHasFixedMapPosition )
68 Q_PROPERTY(
QgsPointXY mapPosition READ mapPosition WRITE setMapPosition )
69 Q_PROPERTY( QSizeF frameSize READ frameSize WRITE setFrameSize )
88 bool isVisible()
const {
return mVisible; }
94 void setVisible(
bool visible );
111 void setHasFixedMapPosition(
bool fixed );
127 void setMapPosition(
const QgsPointXY &position );
156 void setRelativePosition( QPointF position );
162 void setFrameOffsetFromReferencePoint( QPointF offset );
175 void setFrameSize( QSizeF size );
189 void setContentsMargin(
const QgsMargins &margins );
222 virtual void writeXml( QDomElement &elem, QDomDocument &doc,
const QgsReadWriteContext &context )
const = 0;
230 virtual void readXml(
const QDomElement &itemElem,
const QgsReadWriteContext &context ) = 0;
272 virtual void setAssociatedFeature(
const QgsFeature &feature );
277 void appearanceChanged();
288 void mapLayerChanged();
296 virtual void renderAnnotation(
QgsRenderContext &context, QSizeF size )
const = 0;
302 virtual QSizeF minimumFrameSize()
const;
310 void _writeXml( QDomElement &itemElem, QDomDocument &doc,
const QgsReadWriteContext &context )
const;
331 void updateBalloon();
334 QLineF segment(
int index )
const;
337 QPointF pointOnLineWithDistance( QPointF startPoint, QPointF directionPoint,
double distance )
const;
345 bool mVisible =
true;
348 bool mHasFixedMapPosition =
true;
357 QPointF mRelativePosition;
360 QPointF mOffsetFromReferencePoint = QPointF( 50, -50 );
366 std::unique_ptr<QgsMarkerSymbol> mMarkerSymbol;
371 std::unique_ptr<QgsFillSymbol> mFillSymbol;
374 int mBalloonSegment = -1;
377 QPointF mBalloonSegmentPoint1;
380 QPointF mBalloonSegmentPoint2;
390 #endif // QGSANNOTATION_H The class is used as a container of context for various read/write operations on other objects...
Base class for all map layer types.
A class to represent a 2D point.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
QPointer< QgsMapLayer > QgsWeakMapLayerPointer
Weak pointer for QgsMapLayer.
QPointF relativePosition() const
Returns the relative position of the annotation, if it is not attached to a fixed map position...
Abstract base class for annotation items which are drawn over a map.
QgsPointXY mapPosition() const
Returns the map position of the annotation, if it is attached to a fixed map position.
QgsMargins contentsMargin() const
Returns the margins (in millimeters) between the outside of the frame and the annotation content...
QgsMarkerSymbol * markerSymbol() const
Returns the symbol that is drawn at the annotation's map position.
QgsMapLayer * mapLayer() const
Returns the map layer associated with the annotation.
QSizeF frameSize() const
Returns the size of the annotation's frame (the main area in which the annotation's content is drawn)...
QgsCoordinateReferenceSystem mapPositionCrs() const
Returns the CRS of the map position, or an invalid CRS if the annotation does not have a fixed map po...
Contains information about the context of a rendering operation.
QPointF frameOffsetFromReferencePoint() const
Returns the annotation's frame's offset from the mapPosition() reference point.
This class represents a coordinate reference system (CRS).
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
QgsFeature associatedFeature() const
Returns the feature associated with the annotation, or an invalid feature if none has been set...
bool hasFixedMapPosition() const
Returns true if the annotation is attached to a fixed map position, or false if the annotation uses a...
QgsFillSymbol * fillSymbol() const
Returns the symbol that is used for rendering the annotation frame.
The QgsMargins class defines the four margins of a rectangle.