Qwt User's Guide  6.1.1
 All Classes Functions Variables Typedefs Enumerations Enumerator Pages
qwt_scale_widget.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_WIDGET_H
11 #define QWT_SCALE_WIDGET_H
12 
13 #include "qwt_global.h"
14 #include "qwt_text.h"
15 #include "qwt_scale_draw.h"
16 #include <qwidget.h>
17 #include <qfont.h>
18 #include <qcolor.h>
19 #include <qstring.h>
20 
21 class QPainter;
22 class QwtTransform;
23 class QwtScaleDiv;
24 class QwtColorMap;
25 
33 class QWT_EXPORT QwtScaleWidget : public QWidget
34 {
35  Q_OBJECT
36 
37 public:
40  {
45  TitleInverted = 1
46  };
47 
49  typedef QFlags<LayoutFlag> LayoutFlags;
50 
51  explicit QwtScaleWidget( QWidget *parent = NULL );
52  explicit QwtScaleWidget( QwtScaleDraw::Alignment, QWidget *parent = NULL );
53  virtual ~QwtScaleWidget();
54 
55 Q_SIGNALS:
57  void scaleDivChanged();
58 
59 public:
60  void setTitle( const QString &title );
61  void setTitle( const QwtText &title );
62  QwtText title() const;
63 
64  void setLayoutFlag( LayoutFlag, bool on );
65  bool testLayoutFlag( LayoutFlag ) const;
66 
67  void setBorderDist( int start, int end );
68  int startBorderDist() const;
69  int endBorderDist() const;
70 
71  void getBorderDistHint( int &start, int &end ) const;
72 
73  void getMinBorderDist( int &start, int &end ) const;
74  void setMinBorderDist( int start, int end );
75 
76  void setMargin( int );
77  int margin() const;
78 
79  void setSpacing( int td );
80  int spacing() const;
81 
82  void setScaleDiv( const QwtScaleDiv &sd );
83  void setTransformation( QwtTransform * );
84 
85  void setScaleDraw( QwtScaleDraw * );
86  const QwtScaleDraw *scaleDraw() const;
87  QwtScaleDraw *scaleDraw();
88 
89  void setLabelAlignment( Qt::Alignment );
90  void setLabelRotation( double rotation );
91 
92  void setColorBarEnabled( bool );
93  bool isColorBarEnabled() const;
94 
95  void setColorBarWidth( int );
96  int colorBarWidth() const;
97 
98  void setColorMap( const QwtInterval &, QwtColorMap * );
99 
100  QwtInterval colorBarInterval() const;
101  const QwtColorMap *colorMap() const;
102 
103  virtual QSize sizeHint() const;
104  virtual QSize minimumSizeHint() const;
105 
106  int titleHeightForWidth( int width ) const;
107  int dimForLength( int length, const QFont &scaleFont ) const;
108 
109  void drawColorBar( QPainter *painter, const QRectF & ) const;
110  void drawTitle( QPainter *painter, QwtScaleDraw::Alignment,
111  const QRectF &rect ) const;
112 
113  void setAlignment( QwtScaleDraw::Alignment );
114  QwtScaleDraw::Alignment alignment() const;
115 
116  QRectF colorBarRect( const QRectF& ) const;
117 
118 protected:
119  virtual void paintEvent( QPaintEvent * );
120  virtual void resizeEvent( QResizeEvent * );
121 
122  void draw( QPainter *p ) const;
123 
124  void scaleChange();
125  void layoutScale( bool update = true );
126 
127 private:
128  void initScale( QwtScaleDraw::Alignment );
129 
130  class PrivateData;
131  PrivateData *d_data;
132 };
133 
134 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtScaleWidget::LayoutFlags )
135 
136 #endif
A transformation between coordinate systems.
Definition: qwt_transform.h:35
Alignment
Definition: qwt_scale_draw.h:38
A class for drawing scales.
Definition: qwt_scale_draw.h:31
A Widget which contains a scale.
Definition: qwt_scale_widget.h:33
A class representing a text.
Definition: qwt_text.h:51
QFlags< LayoutFlag > LayoutFlags
Layout flags of the title.
Definition: qwt_scale_widget.h:49
A class representing a scale division.
Definition: qwt_scale_div.h:36
QwtColorMap is used to map values into colors.
Definition: qwt_color_map.h:33
A class representing an interval.
Definition: qwt_interval.h:26
LayoutFlag
Layout flags of the title.
Definition: qwt_scale_widget.h:39