1 /* 2 * PixmapButton.h - declaration of class pixmapButton 3 * 4 * Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net> 5 * 6 * This file is part of LMMS - https://lmms.io 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public 10 * License as published by the Free Software Foundation; either 11 * version 2 of the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public 19 * License along with this program (see COPYING); if not, write to the 20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 * Boston, MA 02110-1301 USA. 22 * 23 */ 24 25 26 #ifndef PIXMAP_BUTTON_H 27 #define PIXMAP_BUTTON_H 28 29 #include <QPixmap> 30 31 #include "AutomatableButton.h" 32 33 34 class EXPORT PixmapButton : public AutomatableButton 35 { 36 Q_OBJECT 37 public: 38 PixmapButton( QWidget * _parent, 39 const QString & _name = QString::null ); 40 virtual ~PixmapButton(); 41 42 void setActiveGraphic( const QPixmap & _pm ); 43 void setInactiveGraphic( const QPixmap & _pm, bool _update = true ); 44 45 QSize sizeHint() const; 46 47 signals: 48 void doubleClicked(); 49 50 51 protected: 52 virtual void paintEvent( QPaintEvent * _pe ); 53 virtual void mousePressEvent( QMouseEvent * _me ); 54 virtual void mouseReleaseEvent( QMouseEvent * _me ); 55 virtual void mouseDoubleClickEvent( QMouseEvent * _me ); 56 57 58 private: 59 QPixmap m_activePixmap; 60 QPixmap m_inactivePixmap; 61 bool m_pressed; 62 63 } ; 64 65 #endif 66