QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgscreateannotationitemmaptool_impl.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscreateannotationitemmaptool_impl.h
3 ------------------------
4 Date : September 2021
5 Copyright : (C) 2021 Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15#ifndef QGSCREATEANNOTATIONITEMMAPTOOLIMPL_H
16#define QGSCREATEANNOTATIONITEMMAPTOOLIMPL_H
17
18#include "qgis_gui.h"
19#include "qgis_sip.h"
21#include "qgsmaptoolcapture.h"
22
23#define SIP_NO_FILE
24
26
27class QgsMapToolCaptureAnnotationItem: public QgsMapToolCapture, public QgsCreateAnnotationItemMapToolInterface
28{
29 Q_OBJECT
30 public:
31 QgsMapToolCaptureAnnotationItem( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget, CaptureMode mode );
33 QgsMapTool *mapTool() override;
34 QgsMapLayer *layer() const override;
36 bool supportsTechnique( Qgis::CaptureTechnique technique ) const override;
37
38 protected:
39
40 QgsCreateAnnotationItemMapToolHandler *mHandler = nullptr;
41
42};
43
44class QgsCreatePointTextItemMapTool: public QgsMapToolAdvancedDigitizing, public QgsCreateAnnotationItemMapToolInterface
45{
46 Q_OBJECT
47
48 public:
49
50 QgsCreatePointTextItemMapTool( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget );
51 ~QgsCreatePointTextItemMapTool() override;
52
53 void cadCanvasPressEvent( QgsMapMouseEvent *event ) override;
55 QgsMapTool *mapTool() override;
56
57 private:
58
59 QgsCreateAnnotationItemMapToolHandler *mHandler = nullptr;
60
61};
62
63
64class QgsCreateMarkerItemMapTool: public QgsMapToolCaptureAnnotationItem
65{
66 Q_OBJECT
67
68 public:
69
70 QgsCreateMarkerItemMapTool( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget );
71
72 void cadCanvasReleaseEvent( QgsMapMouseEvent *event ) override;
73
74};
75
76class QgsCreateLineItemMapTool: public QgsMapToolCaptureAnnotationItem
77{
78 Q_OBJECT
79
80 public:
81
82 QgsCreateLineItemMapTool( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget );
83
84 private slots:
85 void lineCaptured( const QgsCurve *line ) override;
86};
87
88class QgsCreatePolygonItemMapTool: public QgsMapToolCaptureAnnotationItem
89{
90 Q_OBJECT
91
92 public:
93
94 QgsCreatePolygonItemMapTool( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget );
95
96 private slots:
97 void polygonCaptured( const QgsCurvePolygon *polygon ) override;
98};
99
100
101class QgsCreateLineTextItemMapTool: public QgsMapToolCaptureAnnotationItem
102{
103 Q_OBJECT
104
105 public:
106
107 QgsCreateLineTextItemMapTool( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget );
108
109 private slots:
110 void lineCaptured( const QgsCurve *line ) override;
111};
112
114
115#endif // QGSCREATEANNOTATIONITEMMAPTOOLIMPL_H
CaptureTechnique
Capture technique.
Definition: qgis.h:294
The QgsAdvancedDigitizingDockWidget class is a dockable widget used to handle the CAD tools on top of...
A handler object for map tools which create annotation items.
An interface for map tools which create annotation items.
virtual QgsCreateAnnotationItemMapToolHandler * handler()=0
Returns the handler object for the map tool.
virtual QgsMapTool * mapTool()=0
Returns a reference to the associated map tool.
Curve polygon geometry type.
Abstract base class for curved geometry type.
Definition: qgscurve.h:35
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:93
Base class for all map layer types.
Definition: qgsmaplayer.h:75
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.
The QgsMapToolAdvancedDigitizing class is a QgsMapTool which gives event directly in map coordinates ...
virtual void cadCanvasPressEvent(QgsMapMouseEvent *e)
Override this method when subclassing this class.
virtual QgsMapLayer * layer() const
Returns the layer associated with the map tool.
QgsMapToolCapture is a base class capable of capturing point, lines and polygons.
QFlags< Capability > Capabilities
virtual bool supportsTechnique(Qgis::CaptureTechnique technique) const
Returns true if the tool supports the specified capture technique.
virtual QgsMapToolCapture::Capabilities capabilities() const
Returns flags containing the supported capabilities.
Abstract base class for all map tools.
Definition: qgsmaptool.h:71