USGS

Isis 3.0 Developer's Reference (API)

Home

ZoomTool.h
Go to the documentation of this file.
1 #ifndef ZoomTool_h
2 #define ZoomTool_h
3 
25 // This should be the only include in this file!
26 #include "Tool.h"
27 
28 // FIXME: remove this include
29 #include <QCursor>
30 
31 class QAction;
32 class QLineEdit;
33 
34 namespace Isis {
65  class ZoomTool : public Tool {
66  Q_OBJECT
67 
68  public:
69  ZoomTool(QWidget *parent);
70  void addTo(QMenu *menu);
71 
73  QString menuName() const {
74  return "&View";
75  }
76 
77  protected slots:
78  void rubberBandComplete();
79 
80  protected:
81  QAction *toolPadAction(ToolPad *toolpad);
82  void updateTool();
83  QWidget *createToolBarWidget(QStackedWidget *parent);
84  void enableRubberBandTool();
85 
86  private slots:
87  void zoomIn2X();
88  void zoomIn4X();
89  void zoomIn8X();
90 
91  void zoomOut2X();
92  void zoomOut4X();
93  void zoomOut8X();
94 
95  void zoomActual();
96  void zoomFit();
97  void zoomFitWidth();
98  void zoomFitHeight();
99  void zoomManual();
100 
101 
102  double setScale(MdiCubeViewport *d, double newScale);
103  double setScale(MdiCubeViewport *d, double newScale, int x, int y);
104  double setScale(MdiCubeViewport *d, double newScale, double samp, double line);
105 
106  private:
107  void zoomBy(double factor);
108 
109  QAction *p_zoomIn2X;
110  QAction *p_zoomIn4X;
111  QAction *p_zoomIn8X;
112 
113  QAction *p_zoomOut2X;
114  QAction *p_zoomOut4X;
115  QAction *p_zoomOut8X;
116 
117  QAction *p_zoomActual;
118  QAction *p_zoomFit;
119 
120  QLineEdit *p_zoomLineEdit;
121  double p_lastScale;
122  };
123 };
124 
125 #endif
126