PageRenderTime 8ms CodeModel.GetById 1ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/src/libtomahawk/widgets/ImageButton.h

http://github.com/tomahawk-player/tomahawk
C Header | 58 lines | 26 code | 13 blank | 19 comment | 0 complexity | d4b896fb75a3cf1aff6f2c2b0dcf4995 MD5 | raw file
 1/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
 2 *
 3 *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
 4 *   Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
 5 *
 6 *   Tomahawk is free software: you can redistribute it and/or modify
 7 *   it under the terms of the GNU General Public License as published by
 8 *   the Free Software Foundation, either version 3 of the License, or
 9 *   (at your option) any later version.
10 *
11 *   Tomahawk is distributed in the hope that it will be useful,
12 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 *   GNU General Public License for more details.
15 *
16 *   You should have received a copy of the GNU General Public License
17 *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef IMAGE_BUTTON_H
21#define IMAGE_BUTTON_H
22
23#include "DllMacro.h"
24
25#include <QAbstractButton>
26#include <QIcon>
27#include <QMap>
28
29class DLLEXPORT ImageButton : public QAbstractButton
30{
31Q_OBJECT
32
33public:
34    /** this pixmap becomes the rest state pixmap and defines the size of the eventual widget */
35    explicit ImageButton( QWidget* parent = 0 );
36    explicit ImageButton( const QPixmap& pixmap, QWidget* parent = 0 );
37    explicit ImageButton( const QString& path, QWidget* parent = 0 );
38
39    void setPixmap( const QString& path );
40    void setPixmap( const QPixmap& pixmap );
41
42    void setPixmap( const QString&, const QIcon::State, QIcon::Mode = QIcon::Normal );
43    void setPixmap( const QPixmap&, const QIcon::State, QIcon::Mode = QIcon::Normal );
44
45    void clear();
46
47    virtual QSize sizeHint() const { return m_sizeHint; }
48
49protected:
50    virtual void paintEvent( QPaintEvent* event );
51
52private:
53    void init( const QPixmap& );
54
55    QSize m_sizeHint;
56};
57
58#endif //IMAGE_BUTTON_H