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

qwt_dial.h

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 // vim: expandtab
00011 
00012 #ifndef QWT_DIAL_H
00013 #define QWT_DIAL_H 1
00014 
00015 #include <qframe.h>
00016 #include <qpalette.h>
00017 #include "qwt_global.h"
00018 #include "qwt_abstract_slider.h"
00019 #include "qwt_round_scale_draw.h"
00020 
00021 class QwtDialNeedle;
00022 class QwtDial;
00023 
00030 class QWT_EXPORT QwtDialScaleDraw: public QwtRoundScaleDraw
00031 {
00032 public:
00033     explicit QwtDialScaleDraw(QwtDial *);
00034     virtual QwtText label(double value) const;
00035 
00036     void setPenWidth(uint);
00037     uint penWidth() const;
00038 
00039 private:
00040     QwtDial *d_parent;
00041     int d_penWidth;
00042 };
00043 
00068 class QWT_EXPORT QwtDial: public QwtAbstractSlider
00069 {
00070     Q_OBJECT
00071 
00072     Q_ENUMS(Shadow)
00073     Q_ENUMS(Mode)
00074 
00075     Q_PROPERTY(bool visibleBackground READ hasVisibleBackground WRITE showBackground)
00076     Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth)
00077     Q_PROPERTY(Shadow frameShadow READ frameShadow WRITE setFrameShadow)
00078     Q_PROPERTY(Mode mode READ mode WRITE setMode)
00079     Q_PROPERTY(double origin READ origin WRITE setOrigin)
00080     Q_PROPERTY(bool wrapping READ wrapping WRITE setWrapping)
00081 
00082     friend class QwtDialScaleDraw;
00083 public:
00084 
00093     enum Shadow
00094     {
00095         Plain = QFrame::Plain,
00096         Raised = QFrame::Raised,
00097         Sunken = QFrame::Sunken
00098     };
00099 
00101     enum ScaleOptions
00102     {
00103         ScaleBackbone = 1,
00104         ScaleTicks = 2,
00105         ScaleLabel = 4
00106     };
00107 
00113     enum Mode
00114     {
00115         RotateNeedle,
00116         RotateScale
00117     };
00118 
00119     QwtDial( QWidget* parent = NULL);
00120     virtual ~QwtDial();
00121 
00122     void setFrameShadow(Shadow);
00123     Shadow frameShadow() const;
00124 
00125     bool hasVisibleBackground() const;
00126     void showBackground(bool);
00127 
00128     void setLineWidth(int);
00129     int lineWidth() const;
00130 
00131     void setMode(Mode);
00132     Mode mode() const;
00133 
00134     virtual void setWrapping(bool);
00135     bool wrapping() const;
00136 
00137     virtual void setScale(int maxMajIntv, int maxMinIntv, double step = 0.0);
00138 
00139     void setScaleArc(double min, double max);
00140     void setScaleOptions(int);
00141     void setScaleTicks(int minLen, int medLen, int majLen, int penWidth = 1);
00142 
00143     double minScaleArc() const;
00144     double maxScaleArc() const;
00145 
00146     virtual void setOrigin(double);
00147     double origin() const;
00148 
00149     virtual void setNeedle(QwtDialNeedle *);
00150     const QwtDialNeedle *needle() const;
00151     QwtDialNeedle *needle();
00152 
00153     QRect boundingRect() const;
00154     QRect contentsRect() const;
00155     virtual QRect scaleContentsRect() const;
00156 
00157     virtual QSize sizeHint() const;
00158     virtual QSize minimumSizeHint() const;
00159 
00160     virtual void setScaleDraw(QwtDialScaleDraw *);
00161 
00162     QwtDialScaleDraw *scaleDraw();
00163     const QwtDialScaleDraw *scaleDraw() const;
00164 
00165 protected:
00166     virtual void paintEvent(QPaintEvent *);
00167     virtual void resizeEvent(QResizeEvent *);
00168     virtual void keyPressEvent(QKeyEvent *);
00169 
00170     virtual void updateMask();
00171 
00172     virtual void drawFrame(QPainter *p);
00173     virtual void drawContents(QPainter *) const;
00174     virtual void drawFocusIndicator(QPainter *) const;
00175 
00176     virtual void drawScale(QPainter *, const QPoint &center,
00177         int radius, double origin, double arcMin, double arcMax) const;
00178 
00188     virtual void drawScaleContents(QPainter *painter, const QPoint &center, 
00189         int radius) const;
00190 
00191     virtual void drawNeedle(QPainter *, const QPoint &, 
00192         int radius, double direction, QPalette::ColorGroup) const;
00193 
00194     virtual QwtText scaleLabel(double) const;
00195     void updateScale();
00196 
00197     virtual void rangeChange();
00198     virtual void valueChange();
00199 
00200     virtual double getValue(const QPoint &);
00201     virtual void getScrollMode(const QPoint &, 
00202         int &scrollMode, int &direction);
00203 
00204 private:
00205     class PrivateData;
00206     PrivateData *d_data;
00207 };
00208 
00209 #endif

Generated on Mon Jan 30 22:16:25 2006 for Qwt User's Guide by  doxygen 1.4.4