X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fsegmentedcontrol.h;h=8e9813fb67590e1010584023b70b63cce62318fa;hb=9d31b363423f68e926605c7e3882b13f29408b0a;hp=094a3b7f12a83cc8b30ebea198f647ef62169847;hpb=3c8c537559e6bef5f019196b0989e95863ddd3ee;p=minitube diff --git a/src/segmentedcontrol.h b/src/segmentedcontrol.h index 094a3b7..8e9813f 100644 --- a/src/segmentedcontrol.h +++ b/src/segmentedcontrol.h @@ -1,22 +1,40 @@ +/* $BEGIN_LICENSE + +This file is part of Minitube. +Copyright 2009, Flavio Tordini + +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 . + +$END_LICENSE */ + #ifndef SEGMENTEDCONTROL_H #define SEGMENTEDCONTROL_H -#include +#include 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 actionList; + QAction *checkedAction; + QAction *hoveredAction; + QAction *pressedAction; + QColor borderColor; + QColor backgroundColor; + QColor selectedColor; + QColor hoveredColor; + QColor pressedColor; }; #endif /* !SEGMENTEDCONTROL_H */