00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef QT_5WAY_BUTTON_H
00013 #define QT_5WAY_BUTTON_H
00014
00015 #include <QtCore/QRect>
00016 #include <QtGui/QAbstractButton>
00017
00018 class QtSvgPixmapCache;
00019 class NavigationButton;
00020
00021
00022 class Qt5WayButton : public QWidget
00023 {
00024 Q_OBJECT
00025 Q_PROPERTY(QString skin READ skin WRITE setSkin)
00026 public:
00027 explicit Qt5WayButton(QWidget * parent = 0);
00028 virtual ~Qt5WayButton();
00029
00030 QAbstractButton * upButton();
00031 QAbstractButton * downButton();
00032 QAbstractButton * leftButton();
00033 QAbstractButton * rightButton();
00034 QAbstractButton * centerButton();
00035
00036 void setSkin(const QString& skin);
00037 QString skin() const;
00038
00039 private Q_SLOTS:
00040
00041 protected:
00042 virtual void resizeEvent(QResizeEvent* event);
00043 virtual void paintEvent(QPaintEvent* event);
00044 virtual int heightForWidth ( int w ) const;
00045
00046 private:
00047 void init();
00048
00049 QSize minimumSizeHint() const;
00050 QSize sizeHint() const;
00051
00053 QString m_skin;
00054
00056 NavigationButton* m_upButton;
00058 NavigationButton* m_downButton;
00060 NavigationButton* m_leftButton;
00062 NavigationButton* m_rightButton;
00064 NavigationButton* m_centerButton;
00065
00067 QtSvgPixmapCache *m_rendererBase;
00068 };
00069
00070 #undef QSvgRenderer
00071
00072 #endif // QT_5WAY_BUTTON_H