annotate widgets/LevelPanToolButton.h @ 1025:c02de0e34233 spectrogram-minor-refactor

Make paint method do its own timing and abandon if it's taking too long (still needs some work on queueing correct repaints of the remainder)
author Chris Cannam
date Mon, 25 Jan 2016 16:16:21 +0000
parents fcbfc7fad1f2
children 6a6a63506e3f
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@942 41 void setBigImageSize(int pixels);
Chris@942 42
Chris@929 43 public slots:
Chris@929 44 /// Set level in the range [0,1] -- will be rounded
Chris@929 45 void setLevel(float);
Chris@929 46
Chris@929 47 /// Set pan in the range [-1,1] -- will be rounded
Chris@929 48 void setPan(float);
Chris@929 49
Chris@940 50 /// Specify whether the level range should include muting or not
Chris@940 51 void setIncludeMute(bool);
Chris@940 52
Chris@933 53 void setEnabled(bool enabled);
Chris@940 54
Chris@929 55 signals:
Chris@929 56 void levelChanged(float);
Chris@929 57 void panChanged(float);
Chris@929 58
Chris@930 59 private slots:
Chris@930 60 void selfLevelChanged(float);
Chris@930 61 void selfClicked();
Chris@930 62
Chris@929 63 protected:
Chris@932 64 void paintEvent(QPaintEvent *);
Chris@932 65
Chris@929 66 LevelPanWidget *m_lpw;
Chris@929 67 int m_pixels;
Chris@942 68 int m_pixelsBig;
Chris@930 69 bool m_muted;
Chris@930 70 float m_savedLevel;
Chris@929 71 };
Chris@929 72
Chris@929 73 #endif