QGIS API Documentation  3.21.0-Master (909859188c)
qgsmaptoolzoom.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmaptoolzoom.h - map tool for zooming
3  ----------------------
4  begin : January 2006
5  copyright : (C) 2006 by Martin Dobias
6  email : wonder.sk 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 
16 #ifndef QGSMAPTOOLZOOM_H
17 #define QGSMAPTOOLZOOM_H
18 
19 #include "qgsmaptool.h"
20 #include <QRect>
21 #include "qgis_gui.h"
22 
23 class QgsRubberBand;
24 
30 class GUI_EXPORT QgsMapToolZoom : public QgsMapTool
31 {
32  Q_OBJECT
33 
34  public:
36  QgsMapToolZoom( QgsMapCanvas *canvas, bool zoomOut );
37  ~QgsMapToolZoom() override;
38 
39  Flags flags() const override;
40  void canvasMoveEvent( QgsMapMouseEvent *e ) override;
41  void canvasPressEvent( QgsMapMouseEvent *e ) override;
42  void canvasReleaseEvent( QgsMapMouseEvent *e ) override;
43  void keyPressEvent( QKeyEvent *e ) override;
44  void keyReleaseEvent( QKeyEvent *e ) override;
45  void deactivate() override;
46 
47  protected:
49  QRect mZoomRect;
50  // minimum pixel size of diagonal of the zoom rectangle
51  int mMinPixelZoom = 20;
52 
54  bool mZoomOut;
57 
59  bool mDragging;
60 
61  QgsRubberBand *mRubberBand = nullptr;
62 
63  QCursor mZoomOutCursor;
64  QCursor mZoomInCursor;
65 
66  private:
67  void setZoomMode( bool zoomOut, bool force = false );
68 };
69 
70 #endif
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:87
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.
A map tool for zooming into the map.
bool mDragging
Flag to indicate a map canvas drag operation is taking place.
bool mNativeZoomOut
native tool
QRect mZoomRect
stores actual zoom rect
QCursor mZoomOutCursor
QCursor mZoomInCursor
bool mZoomOut
indicates whether we're zooming in or out
Abstract base class for all map tools.
Definition: qgsmaptool.h:66
virtual void canvasPressEvent(QgsMapMouseEvent *e)
Mouse press event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:168
virtual void canvasMoveEvent(QgsMapMouseEvent *e)
Mouse move event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:158
virtual void keyPressEvent(QKeyEvent *e)
Key event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:183
virtual void keyReleaseEvent(QKeyEvent *e)
Key event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:188
virtual Flags flags() const
Returns the flags for the map tool.
Definition: qgsmaptool.h:108
virtual void canvasReleaseEvent(QgsMapMouseEvent *e)
Mouse release event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:173
virtual void deactivate()
called when map tool is being deactivated
Definition: qgsmaptool.cpp:100
A class for drawing transient features (e.g.
Definition: qgsrubberband.h:51