casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ExternalAxisControl.h
Go to the documentation of this file.
1 //# Copyright (C) 2005
2 //# Associated Universities, Inc. Washington DC, USA.
3 //#
4 //# This library is free software; you can redistribute it and/or modify it
5 //# under the terms of the GNU Library General Public License as published by
6 //# the Free Software Foundation; either version 2 of the License, or (at your
7 //# option) any later version.
8 //#
9 //# This library is distributed in the hope that it will be useful, but WITHOUT
10 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 //# License for more details.
13 //#
14 //# You should have received a copy of the GNU Library General Public License
15 //# along with this library; if not, write to the Free Software Foundation,
16 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
17 //#
18 //# Correspondence concerning AIPS++ should be addressed as follows:
19 //# Internet email: aips2-request@nrao.edu.
20 //# Postal address: AIPS++ Project Office
21 //# National Radio Astronomy Observatory
22 //# 520 Edgemont Road
23 //# Charlottesville, VA 22903-2475 USA
24 //#
25 
26 #ifndef EXTERNALAXIS_WIDGET_H_
27 #define EXTERNALAXIS_WIDGET_H_
28 
29 #include <QWidget>
30 #include <qwt_plot.h>
31 
32 
33 namespace casa {
34 
40 class ExternalAxisControl : public QWidget {
41 public:
42  ExternalAxisControl(QWidget* parent);
43  void setAxisLabel( const QString& label );
44  void setPlot( QwtPlot* canvas );
45  virtual void paintEvent( QPaintEvent* event );
46  virtual ~ExternalAxisControl();
47 
48 protected:
49  virtual void drawTicks( QPainter* painter, int tickLength ) = 0;
50  virtual void defineAxis( QLine& axisLine ) = 0;
51  virtual void drawAxisLabel( QPainter* painter ) = 0;
52  virtual int getCanvasHeight() const;
53  virtual int getStartY() const;
54  int getTickIncrement( int tickCount ) const;
55  double getTickStartPixel( QwtPlot::Axis axis );
56  double getTickDistance( QwtPlot::Axis axis );
57  double getTickIncrement( double tickDistance, QwtPlot::Axis axis );
58  QwtPlot* plot;
59  QString axisLabel;
60  const int AXIS_SMALL_SIDE;
61  const int MARGIN;
62  const int MIN_START_Y;
63 
64 private:
65  void drawBackBone( QPainter* painter );
66  void drawTicks( QPainter* painter );
67  void drawLabel( QPainter* painter );
68  const int FONT_SIZE;
70 };
71 
72 } /* namespace casa */
73 #endif /* EXTERNALAXIS_WIDGET_H_ */
void drawBackBone(QPainter *painter)
void setAxisLabel(const QString &label)
int getTickIncrement(int tickCount) const
virtual void defineAxis(QLine &axisLine)=0
void setPlot(QwtPlot *canvas)
Base class for classes that use the QwtScaleDiv information to draw their own axis.
virtual void paintEvent(QPaintEvent *event)
void drawLabel(QPainter *painter)
ExternalAxisControl(QWidget *parent)
virtual int getCanvasHeight() const
double getTickDistance(QwtPlot::Axis axis)
virtual void drawAxisLabel(QPainter *painter)=0
virtual int getStartY() const
virtual void drawTicks(QPainter *painter, int tickLength)=0
double getTickStartPixel(QwtPlot::Axis axis)