00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef QT_SCROLL_DIAL_POPUP_H
00010 #define QT_SCROLL_DIAL_POPUP_H
00011
00012 #include <QtGui/QWidget>
00013 #include <QtGui/QPicture>
00014 #include <QtCore/QString>
00015
00016 #include <QtGui/QAbstractButton>
00017
00018 class QtScrollDial;
00019
00020 class QtScrollWheel;
00021 class QtBasicDialGauge;
00022 class QLabel;
00023
00024
00025 class PopupCloseButton : public QAbstractButton
00026 {
00027 Q_OBJECT
00028 Q_PROPERTY(QString skin READ skin WRITE setSkin)
00029 public:
00030 PopupCloseButton(QWidget* parent = 0);
00031 virtual ~PopupCloseButton();
00032
00033 void setSkin(const QString& skin);
00034 QString skin() const;
00035 protected:
00036 virtual void paintEvent(QPaintEvent* event);
00037
00038 QPicture m_normal;
00039 QPicture m_hovered;
00040 QPicture m_pressed;
00041 private:
00042 QString m_skin;
00043 };
00044
00045 class ScrollDialPopup : public QWidget
00046 {
00047 Q_OBJECT
00048 Q_PROPERTY(QString skin READ skin WRITE setSkin)
00049 public:
00050 ScrollDialPopup(QtScrollDial* parent);
00051 virtual ~ScrollDialPopup();
00052
00053 void setSkin(const QString& skin);
00054 QString skin() const;
00055
00056 void setRange(int minimum, int maximum);
00057 void setValue(int value);
00058
00059 private Q_SLOTS:
00060 void updateLabelValue();
00061 void commitValue();
00062
00063 protected:
00064 virtual void hideEvent(QHideEvent* event);
00065 virtual void resizeEvent(QResizeEvent* event);
00066 virtual void paintEvent(QPaintEvent* event);
00067 virtual void wheelEvent(QWheelEvent* event);
00068
00069 void init();
00070 void updateMask();
00071
00072 private:
00073 QtScrollDial* m_scrollDial;
00074 QtScrollWheel* m_wheel;
00075 QLabel* m_label;
00076 QtBasicDialGauge* m_gauge;
00077 PopupCloseButton* m_closeButton;
00078
00079 QPicture m_backgroundPicture;
00081 QString m_skin;
00083 bool m_preventInfiniteLoop;
00084 };
00085
00086 #endif // QT_SCROLL_DIAL_POPUP_H