]> git.sur5r.net Git - minitube/blobdiff - src/segmentedcontrol.h
Upload 3.9.3-2 to unstable
[minitube] / src / segmentedcontrol.h
index 094a3b7f12a83cc8b30ebea198f647ef62169847..8e9813fb67590e1010584023b70b63cce62318fa 100644 (file)
@@ -1,22 +1,40 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SEGMENTEDCONTROL_H
 #define SEGMENTEDCONTROL_H
 
-#include <QtGui>
+#include <QtWidgets>
 
 class SegmentedControl : public QWidget {
-
     Q_OBJECT
 
 public:
-    SegmentedControl(QWidget *parent = 0);
-    ~SegmentedControl();
+    SegmentedControl(QWidget *parent = nullptr);
     QAction *addAction(QAction *action);
     bool setCheckedAction(int index);
     bool setCheckedAction(QAction *action);
     QSize minimumSizeHint(void) const;
 
 signals:
-    void checkedActionChanged(QAction & action);
+    void checkedActionChanged(QAction &action);
 
 protected:
     void paintEvent(QPaintEvent *event);
@@ -25,25 +43,24 @@ protected:
     void mouseReleaseEvent(QMouseEvent *event);
     void leaveEvent(QEvent *event);
 
+private slots:
+    void setupColors();
+
 private:
-    void drawButton(QPainter *painter,
-                    const QRect& rect,
-                    const QAction *action);
-    void drawUnselectedButton(QPainter *painter,
-                              const QRect& rect,
-                              const QAction *action);
-    void drawSelectedButton(QPainter *painter,
-                            const QRect& rect,
-                            const QAction *action);
-    void paintButton(QPainter *painter,
-                    const QRect& rect,
-                    const QAction *action);
-    QAction *hoveredAction(const QPoint& pos) const;
-    int calculateButtonWidth(void) const;
-
-    class Private;
-    Private *d;
+    void paintButton(QPainter *painter, const QRect &rect, const QAction *action);
+    QAction *findHoveredAction(const QPoint &pos) const;
+    int calculateButtonWidth() const;
+
+    QVector<QAction *> actionList;
+    QAction *checkedAction;
+    QAction *hoveredAction;
+    QAction *pressedAction;
 
+    QColor borderColor;
+    QColor backgroundColor;
+    QColor selectedColor;
+    QColor hoveredColor;
+    QColor pressedColor;
 };
 
 #endif /* !SEGMENTEDCONTROL_H */