annotate widgets/Fader.h @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents fc9323a41f5a
children
rev   line source
lbajardsilogic@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 2
lbajardsilogic@0 3 /*
lbajardsilogic@0 4 Sonic Visualiser
lbajardsilogic@0 5 An audio file viewer and annotation editor.
lbajardsilogic@0 6 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 7
lbajardsilogic@0 8 This program is free software; you can redistribute it and/or
lbajardsilogic@0 9 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 10 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 11 License, or (at your option) any later version. See the file
lbajardsilogic@0 12 COPYING included with this distribution for more information.
lbajardsilogic@0 13 */
lbajardsilogic@0 14
lbajardsilogic@0 15 #ifndef FADER_H
lbajardsilogic@0 16 #define FADER_H
lbajardsilogic@0 17
lbajardsilogic@0 18 /**
lbajardsilogic@0 19 * Horizontal audio fader and meter widget.
lbajardsilogic@0 20 * Based on the vertical fader and meter widget from:
lbajardsilogic@0 21 *
lbajardsilogic@0 22 * Hydrogen
lbajardsilogic@0 23 * Copyright(c) 2002-2005 by Alex >Comix< Cominu [comix@users.sourceforge.net]
lbajardsilogic@0 24 * http://www.hydrogen-music.org
lbajardsilogic@0 25 */
lbajardsilogic@0 26
lbajardsilogic@0 27
lbajardsilogic@0 28 #include <string>
lbajardsilogic@0 29 #include <iostream>
lbajardsilogic@0 30
lbajardsilogic@0 31 #include <QWidget>
lbajardsilogic@0 32 #include <QPixmap>
lbajardsilogic@0 33 #include <QMouseEvent>
lbajardsilogic@0 34 #include <QWheelEvent>
lbajardsilogic@0 35 #include <QPaintEvent>
lbajardsilogic@0 36
lbajardsilogic@0 37 class Fader : public QWidget
lbajardsilogic@0 38 {
lbajardsilogic@0 39 Q_OBJECT
lbajardsilogic@0 40
lbajardsilogic@0 41 public:
lbajardsilogic@0 42 Fader(QWidget *parent, bool withoutKnob = false);
lbajardsilogic@0 43 ~Fader();
lbajardsilogic@0 44
lbajardsilogic@0 45 void setValue(float newValue);
lbajardsilogic@0 46 float getValue();
lbajardsilogic@0 47
lbajardsilogic@0 48 void setPeakLeft(float);
lbajardsilogic@0 49 float getPeakLeft() { return m_peakLeft; }
lbajardsilogic@0 50
lbajardsilogic@0 51 void setPeakRight(float);
lbajardsilogic@0 52 float getPeakRight() { return m_peakRight; }
lbajardsilogic@0 53
lbajardsilogic@0 54 signals:
lbajardsilogic@0 55 void valueChanged(float); // 0.0 -> 1.0
lbajardsilogic@0 56
lbajardsilogic@0 57 void mouseEntered();
lbajardsilogic@0 58 void mouseLeft();
lbajardsilogic@0 59
lbajardsilogic@0 60 protected:
lbajardsilogic@0 61 virtual void mousePressEvent(QMouseEvent *ev);
lbajardsilogic@0 62 virtual void mouseDoubleClickEvent(QMouseEvent *ev);
lbajardsilogic@0 63 virtual void mouseMoveEvent(QMouseEvent *ev);
lbajardsilogic@0 64 virtual void mouseReleaseEvent(QMouseEvent *ev);
lbajardsilogic@0 65 virtual void wheelEvent( QWheelEvent *ev );
lbajardsilogic@0 66 virtual void paintEvent(QPaintEvent *ev);
lbajardsilogic@0 67 virtual void enterEvent(QEvent *);
lbajardsilogic@0 68 virtual void leaveEvent(QEvent *);
lbajardsilogic@0 69
lbajardsilogic@0 70 int getMaxX() const;
lbajardsilogic@0 71
lbajardsilogic@0 72 bool m_withoutKnob;
lbajardsilogic@0 73 float m_value;
lbajardsilogic@0 74 float m_peakLeft;
lbajardsilogic@0 75 float m_peakRight;
lbajardsilogic@0 76
lbajardsilogic@0 77 bool m_mousePressed;
lbajardsilogic@0 78 int m_mousePressX;
lbajardsilogic@0 79 float m_mousePressValue;
lbajardsilogic@0 80
lbajardsilogic@0 81 QPixmap m_back;
lbajardsilogic@0 82 QPixmap m_leds;
lbajardsilogic@0 83 QPixmap m_knob;
lbajardsilogic@0 84 QPixmap m_clip;
lbajardsilogic@0 85 };
lbajardsilogic@0 86
lbajardsilogic@0 87 #endif