File indexing completed on 2023-05-30 11:30:53
0001 /** 0002 * Copyright (c) 2009 Nikolaj Hald Nielsen <nhn@kde.org> 0003 * Copyright (c) 2009 Mark Kretschmann <kretschmann@kde.org> 0004 * 0005 * This program is free software; you can redistribute it and/or modify it under 0006 * the terms of the GNU General Public License as published by the Free Software 0007 * Foundation; either version 2 of the License, or (at your option) any later 0008 * version. 0009 * 0010 * This program is distributed in the hope that it will be useful, but WITHOUT ANY 0011 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 0012 * PARTICULAR PURPOSE. See the GNU General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU General Public License along with 0015 * this program. If not, see <http://www.gnu.org/licenses/>. 0016 */ 0017 0018 #ifndef VOLUMEPOPUPBUTTON_H 0019 #define VOLUMEPOPUPBUTTON_H 0020 0021 #include <QToolButton> 0022 0023 class QAction; 0024 class QEvent; 0025 class QLabel; 0026 class QMenu; 0027 class QMouseEvent; 0028 class QWheelEvent; 0029 0030 class VolumeSlider; 0031 0032 class VolumePopupButton : public QToolButton 0033 { 0034 Q_OBJECT 0035 0036 public: 0037 explicit VolumePopupButton( QWidget * parent ); 0038 void refresh(); 0039 0040 protected: 0041 virtual void mouseReleaseEvent( QMouseEvent * event ) override; 0042 virtual void wheelEvent( QWheelEvent * event ) override; 0043 0044 private slots: 0045 void volumeChanged( float newVolume ); 0046 void muteStateChanged( bool muted ); 0047 0048 private: 0049 QLabel * m_volumeLabel; 0050 QMenu * m_volumeMenu; 0051 VolumeSlider * m_volumeSlider; 0052 QAction * m_muteAction; 0053 float m_volumeBeforeMute; 0054 }; 0055 0056 #endif // VOLUMEPOPUPBUTTON_H