Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

qwt_dial.h

Go to the documentation of this file.
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_DIAL_H
00011 #define QWT_DIAL_H 1
00012 
00013 #include <qframe.h>
00014 #include <qpalette.h>
00015 #include "qwt_global.h"
00016 #include "qwt_sldbase.h"
00017 #include "qwt_scldraw.h"
00018 
00019 class QwtDialNeedle;
00020 class QwtDial;
00021 
00022 class QwtDialScaleDraw: public QwtScaleDraw
00023 {
00024 public:
00025     QwtDialScaleDraw(QwtDial *);
00026     virtual QString label(double value) const;
00027 private:
00028     QwtDial *d_parent;
00029 };
00030 
00031 class QWT_EXPORT QwtDial: public QwtSliderBase
00032 {
00033   Q_OBJECT
00034 
00035   Q_ENUMS(Shadow)
00036   Q_ENUMS(Mode)
00037 
00038     Q_PROPERTY(bool visibleBackground READ hasVisibleBackground WRITE showBackground)
00039     Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth)
00040     Q_PROPERTY(Shadow frameShadow READ frameShadow WRITE setFrameShadow)
00041     Q_PROPERTY(Mode mode READ mode WRITE setMode)
00042     Q_PROPERTY(double origin READ origin WRITE setOrigin)
00043     Q_PROPERTY(bool wrapping READ wrapping WRITE setWrapping)
00044 
00045   friend class QwtDialScaleDraw;
00046 public:
00047 
00048   enum Shadow
00049   {
00059     Plain = QFrame::Plain,
00060     Raised = QFrame::Raised,
00061     Sunken = QFrame::Sunken
00062   };
00063 
00064     enum Mode
00065     {
00072         RotateNeedle,
00073         RotateScale
00074     };
00075 
00076   QwtDial( QWidget* parent=0, const char* name = 0);
00077   virtual ~QwtDial();
00078 
00079   void setFrameShadow(Shadow);
00080   Shadow frameShadow() const;
00081 
00082   bool hasVisibleBackground() const;
00083   void showBackground(bool);
00084 
00085   void setLineWidth(int);
00086   int lineWidth() const;
00087 
00088     void setMode(Mode);
00089     Mode mode() const;
00090 
00091     void setWrapping(bool);
00092     bool wrapping() const;
00093 
00094   void setScale(int maxMajIntv, int maxMinIntv, double step = 0.0);
00095 
00096   void setScaleArc(double min, double max);
00097   double minScaleArc() const { return d_minScaleArc; }
00098   double maxScaleArc() const { return d_maxScaleArc; }
00099 
00100   void setOrigin(double);
00101   double origin() const;
00102 
00103   void setNeedle(QwtDialNeedle *);
00104   const QwtDialNeedle *needle() const;
00105   QwtDialNeedle *needle();
00106 
00107   QRect boundingRect() const;
00108   QRect contentsRect() const;
00109   virtual QRect scaleContentsRect() const;
00110 
00111     virtual QSize sizeHint() const;
00112     virtual QSize minimumSizeHint() const;
00113 
00114   // setAutoDelete
00115 protected:
00116   virtual void paintEvent(QPaintEvent *);
00117   virtual void resizeEvent(QResizeEvent *);
00118 
00119   virtual void drawFrame(QPainter *p);
00120   virtual void drawContents(QPainter *) const;
00121 
00122   virtual void drawScale(QPainter *, const QPoint &center,
00123     int radius, double origin, double arcMin, double arcMax) const;
00124   virtual void drawScaleContents(QPainter *, const QPoint &center, 
00125     int radius) const;
00126 
00127   virtual void drawNeedle(QPainter *, const QPoint &, 
00128     int radius, double direction, QPalette::ColorGroup) const;
00129 
00130   virtual void setScaleDraw(QwtDialScaleDraw *);
00131   QwtDialScaleDraw *scaleDraw() { return d_scaleDraw; }
00132   const QwtDialScaleDraw *scaleDraw() const { return d_scaleDraw; }
00133 
00134     virtual QString scaleLabel(double) const;
00135   void updateScale();
00136 
00137     virtual void rangeChange();
00138     virtual void valueChange();
00139 
00140     virtual double getValue(const QPoint &);
00141   virtual void getScrollMode(const QPoint &, 
00142     int &scrollMode, int &direction);
00143 
00144 private:
00145   bool d_visibleBackground;
00146   Shadow d_frameShadow;
00147   int d_lineWidth;
00148 
00149     Mode d_mode;
00150   bool d_wrapping;
00151 
00152   double d_origin;
00153   double d_minScaleArc;
00154   double d_maxScaleArc;
00155 
00156   QwtDialScaleDraw *d_scaleDraw;
00157   int d_maxMajIntv;
00158   int d_maxMinIntv;
00159   double d_scaleStep;
00160 
00161   QwtDialNeedle *d_needle;
00162 };
00163 
00164 #endif

Generated on Fri Nov 7 14:11:45 2003 for Qwt Developer's Guide by doxygen 1.3.2