annotate widgets/LevelPanToolButton.h @ 940:77110abca8a1 tonioni

LevelPanWidget alternative without including muting
author Chris Cannam
date Tue, 31 Mar 2015 14:05:39 +0100
parents 9022635c615a
children fcbfc7fad1f2
rev   line source
Chris@929 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@929 2
Chris@929 3 /*
Chris@929 4 Sonic Visualiser
Chris@929 5 An audio file viewer and annotation editor.
Chris@929 6 Centre for Digital Music, Queen Mary, University of London.
Chris@929 7
Chris@929 8 This program is free software; you can redistribute it and/or
Chris@929 9 modify it under the terms of the GNU General Public License as
Chris@929 10 published by the Free Software Foundation; either version 2 of the
Chris@929 11 License, or (at your option) any later version. See the file
Chris@929 12 COPYING included with this distribution for more information.
Chris@929 13 */
Chris@929 14
Chris@929 15 #ifndef LEVEL_PAN_TOOLBUTTON_H
Chris@929 16 #define LEVEL_PAN_TOOLBUTTON_H
Chris@929 17
Chris@929 18 #include <QToolButton>
Chris@929 19
Chris@929 20 class LevelPanWidget;
Chris@929 21
Chris@929 22 class LevelPanToolButton : public QToolButton
Chris@929 23 {
Chris@929 24 Q_OBJECT
Chris@929 25
Chris@929 26 public:
Chris@929 27 LevelPanToolButton(QWidget *parent = 0);
Chris@929 28 ~LevelPanToolButton();
Chris@929 29
Chris@929 30 /// Return level as a gain value in the range [0,1]
Chris@929 31 float getLevel() const;
Chris@929 32
Chris@929 33 /// Return pan as a value in the range [-1,1]
Chris@929 34 float getPan() const;
Chris@929 35
Chris@940 36 /// Discover whether the level range includes muting or not
Chris@940 37 bool includesMute() const;
Chris@940 38
Chris@929 39 void setImageSize(int pixels);
Chris@929 40
Chris@929 41 public slots:
Chris@929 42 /// Set level in the range [0,1] -- will be rounded
Chris@929 43 void setLevel(float);
Chris@929 44
Chris@929 45 /// Set pan in the range [-1,1] -- will be rounded
Chris@929 46 void setPan(float);
Chris@929 47
Chris@940 48 /// Specify whether the level range should include muting or not
Chris@940 49 void setIncludeMute(bool);
Chris@940 50
Chris@933 51 void setEnabled(bool enabled);
Chris@940 52
Chris@929 53 signals:
Chris@929 54 void levelChanged(float);
Chris@929 55 void panChanged(float);
Chris@929 56
Chris@930 57 private slots:
Chris@930 58 void selfLevelChanged(float);
Chris@930 59 void selfClicked();
Chris@930 60
Chris@929 61 protected:
Chris@932 62 void paintEvent(QPaintEvent *);
Chris@932 63
Chris@929 64 LevelPanWidget *m_lpw;
Chris@929 65 int m_pixels;
Chris@930 66 bool m_muted;
Chris@930 67 float m_savedLevel;
Chris@929 68 };
Chris@929 69
Chris@929 70 #endif