00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef QT_SVG_DIAL_GAUGE
00010 #define QT_SVG_DIAL_GAUGE
00011 #include <QtGui/QWidget>
00012 #include <QtCore/QPair>
00013
00014 class QSvgRenderer;
00015 class QtSvgPixmapCache;
00016
00017 class QtSvgDialGauge : public QWidget
00018 {
00019 Q_OBJECT
00020 Q_PROPERTY(QString skin READ skin WRITE setSkin)
00021 Q_PROPERTY(int minimum READ minimum WRITE setMinimum)
00022 Q_PROPERTY(int maximum READ maximum WRITE setMaximum)
00023 Q_PROPERTY(qreal startAngle READ startAngle WRITE setStartAngle)
00024 Q_PROPERTY(qreal endAngle READ endAngle WRITE setEndAngle)
00025 public:
00026 explicit QtSvgDialGauge(QWidget * parent = 0);
00027 ~QtSvgDialGauge();
00028
00029 void setSkin(const QString& skin);
00030 QString skin() const;
00031
00032
00033 void setMinimum(int minimum);
00034 void setMaximum(int maximum);
00035 void setNeedleOrigin(qreal x, qreal y);
00036 void setStartAngle(qreal angle);
00037 void setEndAngle(qreal angle);
00038
00039 int value() const;
00040 int minimum() const;
00041 int maximum() const;
00042 qreal needleOriginX() const;
00043 qreal needleOriginY() const;
00044 qreal startAngle() const;
00045 qreal endAngle() const;
00046
00047 virtual QSize minimumSizeHint() const;
00048 virtual QSize sizeHint() const;
00049 void setShowOverlay(bool);
00050
00051 public slots:
00052 void setValue(int value);
00053
00054 private:
00055 void init();
00056 QRectF availableRect(QtSvgPixmapCache * renderObject) const;
00057
00058 QtSvgPixmapCache* m_backgroundRenderer;
00059 QtSvgPixmapCache* m_needleShadowRenderer;
00060 QSvgRenderer* m_needleRenderer;
00061 QRectF availableRect(QSvgRenderer * renderObject) const;
00062 QtSvgPixmapCache* m_overlayRenderer;
00064 int m_minimum;
00066 int m_maximum;
00068 int m_value;
00070 qreal m_startAngle;
00072 qreal m_endAngle;
00074 qreal m_originX;
00076 qreal m_originY;
00077 bool m_showOverlay;
00078
00080 QString m_skin;
00081 protected:
00082 void paintEvent(QPaintEvent * event);
00083 };
00084
00085 #endif // QT_SVG_DIAL_GAUGE