PanExtent.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/qt/widgets/tools/PanExtent.h
22 
23  \brief This class implements a concrete tool to pan a user defined extent.
24 */
25 
26 #ifndef __TERRALIB_QT_WIDGETS_INTERNAL_PANEXTENT_H
27 #define __TERRALIB_QT_WIDGETS_INTERNAL_PANEXTENT_H
28 
29 // TerraLib
30 #include "../../../geometry/Envelope.h"
31 #include "../Config.h"
32 #include "AbstractTool.h"
33 
34 // Qt
35 #include <QPainterPath>
36 #include <QPen>
37 
38 namespace te
39 {
40  namespace qt
41  {
42  namespace widgets
43  {
44 // Forward declarations
45  class MapDisplay;
46 
47  /*!
48  \class PanExtent
49 
50  \brief This class implements a concrete tool to pan a user defined extent.
51  */
53  {
54  Q_OBJECT
55 
56  public:
57 
58  /** @name Initializer Methods
59  * Methods related to instantiation and destruction.
60  */
61  //@{
62 
63  /*!
64  \brief It constructs a pan tool associated with the given map display and with the specified cursors.
65 
66  \param display The map display associated with the tool.
67  \param cursor The default tool cursor.
68  \param actionCursor An optional cursor to be used during the pan user action. If Qt::BlankCursor, it will be NOT modified.
69  \param parent The tool's parent.
70 
71  \note The tool will NOT take the ownership of the given pointers.
72  \note If the given cursor is different of Qt::BlankCursor, it will be setted on map display.
73  */
74  PanExtent(MapDisplay* display, const QCursor& cursor, const QCursor& actionCursor = Qt::BlankCursor, QObject* parent = 0);
75 
76  /*! \brief Destructor. */
78 
79  //@}
80 
81  /** @name AbstractTool Methods
82  * Methods related with tool behavior.
83  */
84  //@{
85 
86  bool mousePressEvent(QMouseEvent* e);
87 
88  bool mouseMoveEvent(QMouseEvent* e);
89 
90  bool mouseReleaseEvent(QMouseEvent* e);
91 
93 
94  protected:
95 
97 
98  signals:
99 
101 
102  //@}
103 
104  protected:
105 
106  bool m_panStarted; //!< Flag that indicates if pan operation was started.
107 
108  QCursor m_actionCursor; //!< An optional cursor to be used during the pan user action.
109  QPen m_pen; //!< The pen used to draw the path.
110  QBrush m_brush; //!< The brush used to draw the path.
111 
113  };
114 
115  } // end namespace widgets
116  } // end namespace qt
117 } // end namespace te
118 
119 #endif // __TERRALIB_QT_WIDGETS_INTERNAL_PANEXTENT_H
te::qt::widgets::AbstractTool
This class defines an interface for objects that can receive application events and respond to them,...
Definition: AbstractTool.h:64
te::gm::Envelope
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
te::qt::widgets::PanExtent
This class implements a concrete tool to pan a user defined extent.
Definition: PanExtent.h:53
te::qt::widgets::PanExtent::extentMoved
void extentMoved(te::gm::Envelope e)
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::qt::widgets::MapDisplay
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
te::qt::widgets::PanExtent::drawCurrentExtent
void drawCurrentExtent()
te::qt::widgets::PanExtent::m_brush
QBrush m_brush
The brush used to draw the path.
Definition: PanExtent.h:110
TEQTWIDGETSEXPORT
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63
te::qt::widgets::PanExtent::PanExtent
PanExtent(MapDisplay *display, const QCursor &cursor, const QCursor &actionCursor=Qt::BlankCursor, QObject *parent=0)
It constructs a pan tool associated with the given map display and with the specified cursors.
te::qt::widgets::PanExtent::~PanExtent
~PanExtent()
Destructor.
te::qt::widgets::PanExtent::m_pen
QPen m_pen
The pen used to draw the path.
Definition: PanExtent.h:109
te::qt::widgets::PanExtent::setCurrentExtent
void setCurrentExtent(const te::gm::Envelope &e)
te::qt::widgets::PanExtent::mousePressEvent
bool mousePressEvent(QMouseEvent *e)
This event handler can be reimplemented in a concrete tool class to receive mouse press events for th...
te::qt::widgets::PanExtent::m_panStarted
bool m_panStarted
Flag that indicates if pan operation was started.
Definition: PanExtent.h:106
te::qt::widgets::PanExtent::m_currentExtent
te::gm::Envelope m_currentExtent
Definition: PanExtent.h:112
te::qt::widgets::PanExtent::mouseMoveEvent
bool mouseMoveEvent(QMouseEvent *e)
This event handler can be reimplemented in a concrete tool class to receive mouse move events for the...
te::qt::widgets::PanExtent::mouseReleaseEvent
bool mouseReleaseEvent(QMouseEvent *e)
This event handler can be reimplemented in a concrete tool class to receive mouse release events for ...
te::qt::widgets::PanExtent::m_actionCursor
QCursor m_actionCursor
An optional cursor to be used during the pan user action.
Definition: PanExtent.h:108
AbstractTool.h
Abstract tool concept.