diff options
Diffstat (limited to 'muse_qt4_evolution/awl/aslider.h')
-rw-r--r-- | muse_qt4_evolution/awl/aslider.h | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/muse_qt4_evolution/awl/aslider.h b/muse_qt4_evolution/awl/aslider.h new file mode 100644 index 00000000..32fc89f9 --- /dev/null +++ b/muse_qt4_evolution/awl/aslider.h @@ -0,0 +1,135 @@ +//============================================================================= +// Awl +// Audio Widget Library +// $Id:$ +// +// Copyright (C) 2002-2006 by Werner Schweer and others +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +//============================================================================= + +#ifndef __AWLASLIDER_H__ +#define __AWLASLIDER_H__ + +namespace Awl { + +//--------------------------------------------------------- +// AbstractSlider +// +//! The AwlAbstractSlider class provides an double value +//! within a range +// +//! The class is designed as a common super class for +//! widgets like AwlKnob and AwlSlider +//! +//--------------------------------------------------------- + +class AbstractSlider : public QWidget { + + Q_OBJECT + Q_PROPERTY(double value READ value WRITE setValue) + Q_PROPERTY(bool center READ center WRITE setCenter) + Q_PROPERTY(bool invertedAppearance READ invertedAppearance WRITE setInvertedAppearance) + + Q_PROPERTY(int scaleWidth READ scaleWidth WRITE setScaleWidth) + Q_PROPERTY(QColor scaleColor READ scaleColor WRITE setScaleColor) + Q_PROPERTY(QColor scaleValueColor READ scaleValueColor WRITE setScaleValueColor) + + Q_PROPERTY(int id READ id WRITE setId) + + Q_PROPERTY(double minValue READ minValue WRITE setMinValue) + Q_PROPERTY(double maxValue READ maxValue WRITE setMaxValue) + Q_PROPERTY(double lineStep READ lineStep WRITE setLineStep) + Q_PROPERTY(double pageStep READ pageStep WRITE setPageStep) + Q_PROPERTY(bool log READ log WRITE setLog) + Q_PROPERTY(bool integer READ integer WRITE setInteger) + + protected: + int _id; + double _value; + double _minValue, _maxValue, _lineStep, _pageStep; + bool _center; + bool _invert; + int _scaleWidth; //! scale line width + QColor _scaleColor; + QColor _scaleValueColor; + bool _log; + bool _integer; + + virtual void wheelEvent(QWheelEvent*); + virtual void keyPressEvent(QKeyEvent*); + virtual void valueChange(); + + signals: + void valueChanged(double, int); + + public slots: + virtual void setValue(double v); + + public: + AbstractSlider(QWidget* parent = 0); + + virtual void setCenter(bool val); + virtual void setScaleWidth(int); + virtual void setScaleColor(const QColor&); + virtual void setScaleValueColor(const QColor&); + + //! return the center flag + bool center() const { return _center; } + + //! return the scale line width + int scaleWidth() const { return _scaleWidth; } + + //! return current scale color + QColor scaleColor() const { return _scaleColor; } + + //! return color of active scale part + QColor scaleValueColor() const { return _scaleValueColor; } + + virtual void setInvertedAppearance(bool val) { _invert = val; } + bool invertedAppearance() const { return _invert; } + + int id() const { return _id; } + void setId(int i) { _id = i; } + + virtual double value() const; + + double minValue() const { return _minValue; } + void setMinValue(double v) { _minValue = v; } + void setMinLogValue(double v); + double maxValue() const {return _maxValue; } + void setMaxValue(double v) { _maxValue = v; } + void setMaxLogValue(double v); + void setRange(double a, double b) { + setMinValue(a); + setMaxValue(b); + } + void setLogRange(double a, double b) { + setMinLogValue(a); + setMaxLogValue(b); + } + bool log() const { return _log; } + void setLog(bool v) { _log = v; } + bool integer() const { return _integer; } + void setInteger(bool v) { _integer = v; } + double lineStep() const { return _lineStep; } + void setLineStep(double v) { _lineStep = v; } + double pageStep() const { return _pageStep; } + void setPageStep(double f) { _pageStep = f; } + void setEnabled(bool val); + }; + +} + +#endif + |