QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsplottoolzoom.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsplottoolzoom.h
3 ---------------
4 begin : March 2022
5 copyright : (C) 2022 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 QGSPLOTTOOLZOOM_H
19#define QGSPLOTTOOLZOOM_H
20
21#include "qgsplottool.h"
22#include "qgis_gui.h"
23#include "qgis_sip.h"
24
26
27
34class GUI_EXPORT QgsPlotToolZoom : public QgsPlotTool
35{
36
37 Q_OBJECT
38
39 public:
40
45 ~QgsPlotToolZoom() override;
46
47 void plotPressEvent( QgsPlotMouseEvent *event ) override;
48 void plotMoveEvent( QgsPlotMouseEvent *event ) override;
49 void plotReleaseEvent( QgsPlotMouseEvent *event ) override;
50 void keyPressEvent( QKeyEvent *event ) override;
51 void keyReleaseEvent( QKeyEvent *event ) override;
52 void deactivate() override;
53
54 protected:
55
61 virtual QPointF constrainStartPoint( QPointF scenePoint ) const SIP_SKIP;
62
68 virtual QPointF constrainMovePoint( QPointF scenePoint ) const SIP_SKIP;
69
75 virtual QRectF constrainBounds( const QRectF &sceneBounds ) const SIP_SKIP;
76
82 virtual void zoomOutClickOn( QPointF scenePoint ) SIP_SKIP;
83
89 virtual void zoomInClickOn( QPointF scenePoint ) SIP_SKIP;
90
92 bool mMarqueeZoom = false;
93
94 protected:
95
98
101
102 private:
103
105 std::unique_ptr< QgsPlotRectangularRubberBand > mRubberBand;
106
107 void startMarqueeZoom( QPointF scenePoint );
108
109};
110
111#endif // QGSPLOTTOOLZOOM_H
Plot canvas is a class for displaying interactive 2d charts and plots.
Definition: qgsplotcanvas.h:54
A QgsPlotMouseEvent is the result of a user interaction with the mouse on a QgsPlotCanvas.
QgsPlotRectangularRubberBand is rectangular rubber band for use within QgsPlotCanvas widgets.
Plot tool for zooming into and out of the plot.
~QgsPlotToolZoom() override
QPointF mRubberBandStartPos
Start position for drag, in scene coordinates.
QPoint mMousePressStartPos
Start position for mouse drag.
Abstract base class for all interactive plot tools.
Definition: qgsplottool.h:58
virtual void deactivate()
Called when the tool is being deactivated.
Definition: qgsplottool.cpp:89
virtual void plotMoveEvent(QgsPlotMouseEvent *event)
Mouse move event for overriding.
virtual void keyReleaseEvent(QKeyEvent *event)
Key release event for overriding.
virtual void keyPressEvent(QKeyEvent *event)
Key press event for overriding.
virtual void plotPressEvent(QgsPlotMouseEvent *event)
Mouse press event for overriding.
virtual void plotReleaseEvent(QgsPlotMouseEvent *event)
Mouse release event for overriding.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_SKIP
Definition: qgis_sip.h:126