]> git.sur5r.net Git - minitube/blob - src/segmentedcontrol.h
Imported Upstream version 1.7
[minitube] / src / segmentedcontrol.h
1 #ifndef SEGMENTEDCONTROL_H
2 #define SEGMENTEDCONTROL_H
3
4 #include <QtGui>
5
6 class SegmentedControl : public QWidget {
7
8     Q_OBJECT
9
10 public:
11     SegmentedControl(QWidget *parent = 0);
12     ~SegmentedControl();
13     QAction *addAction(QAction *action);
14     bool setCheckedAction(int index);
15     bool setCheckedAction(QAction *action);
16     QSize minimumSizeHint(void) const;
17
18 signals:
19     void checkedActionChanged(QAction & action);
20
21 protected:
22     void paintEvent(QPaintEvent *event);
23     void mouseMoveEvent(QMouseEvent *event);
24     void mousePressEvent(QMouseEvent *event);
25     void mouseReleaseEvent(QMouseEvent *event);
26     void leaveEvent(QEvent *event);
27
28 private:
29     void drawButton(QPainter *painter,
30                     const QRect& rect,
31                     const QAction *action);
32     void drawUnselectedButton(QPainter *painter,
33                               const QRect& rect,
34                               const QAction *action);
35     void drawSelectedButton(QPainter *painter,
36                             const QRect& rect,
37                             const QAction *action);
38     void paintButton(QPainter *painter,
39                     const QRect& rect,
40                     const QAction *action);
41     QAction *hoveredAction(const QPoint& pos) const;
42     int calculateButtonWidth(void) const;
43
44     class Private;
45     Private *d;
46
47 };
48
49 #endif /* !SEGMENTEDCONTROL_H */