PageRenderTime 77ms CodeModel.GetById 35ms app.highlight 3ms RepoModel.GetById 37ms app.codeStats 0ms

/src/libtomahawk/widgets/ToggleButton.h

http://github.com/tomahawk-player/tomahawk
C Header | 58 lines | 25 code | 12 blank | 21 comment | 0 complexity | 0196d7023bd8899e200f6c925fa5cd7e MD5 | raw file
 1/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
 2 *
 3 *   Copyright 2011, Casey Link <unnamedrambler@gmail.com>
 4 *
 5 *   Tomahawk is free software: you can redistribute it and/or modify
 6 *   it under the terms of the GNU General Public License as published by
 7 *   the Free Software Foundation, either version 3 of the License, or
 8 *   (at your option) any later version.
 9 *
10 *   Tomahawk is distributed in the hope that it will be useful,
11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 *   GNU General Public License for more details.
14 *
15 *   You should have received a copy of the GNU General Public License
16 *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef TOGGLEBUTTON_H
20#define TOGGLEBUTTON_H
21
22#include <QLabel>
23#include <QPaintEvent>
24
25#include "DllMacro.h"
26
27/**
28 * \class ToggleButton
29 * \brief A styled toggle-button that has a header background.
30 */
31class DLLEXPORT ToggleButton : public QLabel
32{
33Q_OBJECT
34
35public:
36    ToggleButton( QWidget* parent = 0 );
37    virtual ~ToggleButton();
38
39    QSize minimumSizeHint() const { return sizeHint(); }
40
41    bool isChecked() const { return m_checked; }
42
43public slots:
44    virtual void setText( const QString& text );
45    virtual void setChecked( bool b ) { m_checked = b; }
46
47signals:
48    void clicked();
49
50protected:
51    virtual void paintEvent( QPaintEvent* );
52    void mouseReleaseEvent( QMouseEvent* event );
53
54private:
55    bool m_checked;
56};
57
58#endif