Qwt User's Guide  5.2.3
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 <qwidget.h>
14 #include <qfont.h>
15 #include <qcolor.h>
16 #include <qstring.h>
17 
18 #include "qwt_global.h"
19 #include "qwt_text.h"
20 #include "qwt_scale_draw.h"
21 
22 class QPainter;
24 class QwtScaleDiv;
25 class QwtColorMap;
26 
34 class QWT_EXPORT QwtScaleWidget : public QWidget
35 {
36  Q_OBJECT
37 
38 public:
39  explicit QwtScaleWidget(QWidget *parent = NULL);
40 #if QT_VERSION < 0x040000
41  explicit QwtScaleWidget(QWidget *parent, const char *name);
42 #endif
43  explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent = NULL);
44  virtual ~QwtScaleWidget();
45 
46 signals:
48  void scaleDivChanged();
49 
50 public:
51  void setTitle(const QString &title);
52  void setTitle(const QwtText &title);
53  QwtText title() const;
54 
55  void setBorderDist(int start, int end);
56  int startBorderDist() const;
57  int endBorderDist() const;
58 
59  void getBorderDistHint(int &start, int &end) const;
60 
61  void getMinBorderDist(int &start, int &end) const;
62  void setMinBorderDist(int start, int end);
63 
64  void setMargin(int);
65  int margin() const;
66 
67  void setSpacing(int td);
68  int spacing() const;
69 
70  void setPenWidth(int);
71  int penWidth() const;
72 
73  void setScaleDiv(QwtScaleTransformation *, const QwtScaleDiv &sd);
74 
75  void setScaleDraw(QwtScaleDraw *);
76  const QwtScaleDraw *scaleDraw() const;
77  QwtScaleDraw *scaleDraw();
78 
79 #if QT_VERSION < 0x040000
80  void setLabelAlignment(int);
81 #else
82  void setLabelAlignment(Qt::Alignment);
83 #endif
84  void setLabelRotation(double rotation);
85 
86  void setColorBarEnabled(bool);
87  bool isColorBarEnabled() const;
88 
89  void setColorBarWidth(int);
90  int colorBarWidth() const;
91 
92  void setColorMap(const QwtDoubleInterval &, const QwtColorMap &);
93 
94  QwtDoubleInterval colorBarInterval() const;
95  const QwtColorMap &colorMap() const;
96 
97  virtual QSize sizeHint() const;
98  virtual QSize minimumSizeHint() const;
99 
100  int titleHeightForWidth(int width) const;
101  int dimForLength(int length, const QFont &scaleFont) const;
102 
103  void drawColorBar(QPainter *painter, const QRect &rect) const;
104  void drawTitle(QPainter *painter, QwtScaleDraw::Alignment,
105  const QRect &rect) const;
106 
107  void setAlignment(QwtScaleDraw::Alignment);
108  QwtScaleDraw::Alignment alignment() const;
109 
110  QRect colorBarRect(const QRect&) const;
111 
112 protected:
113  virtual void paintEvent(QPaintEvent *e);
114  virtual void resizeEvent(QResizeEvent *e);
115 
116 #if QT_VERSION < 0x040000
117  virtual void fontChange(const QFont &oldfont);
118 #endif
119 
120  void draw(QPainter *p) const;
121 
122  void scaleChange();
123  void layoutScale( bool update = true );
124 
125 private:
126  void initScale(QwtScaleDraw::Alignment);
127 
128  class PrivateData;
129  PrivateData *d_data;
130 };
131 
132 #endif