diff options
Diffstat (limited to 'attic/muse2-oom/muse2/awl/aslider.cpp')
-rw-r--r-- | attic/muse2-oom/muse2/awl/aslider.cpp | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/attic/muse2-oom/muse2/awl/aslider.cpp b/attic/muse2-oom/muse2/awl/aslider.cpp deleted file mode 100644 index b48ccbe0..00000000 --- a/attic/muse2-oom/muse2/awl/aslider.cpp +++ /dev/null @@ -1,244 +0,0 @@ -//============================================================================= -// 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. -//============================================================================= - -#include "fastlog.h" -#include "aslider.h" - -#include <QKeyEvent> -#include <QWheelEvent> - -namespace Awl { - -//--------------------------------------------------------- -// AbstractSlider -//--------------------------------------------------------- - -AbstractSlider::AbstractSlider(QWidget* parent) - : QWidget(parent), _scaleColor(Qt::black), _scaleValueColor(Qt::blue) - { - _id = 0; - _value = 0.5; - _minValue = 0.0; - _maxValue = 1.0; - _lineStep = 0.1; - _pageStep = 0.2; - _center = false; - _invert = false; - _scaleWidth = 4; - _log = false; - _integer = false; - } - -//--------------------------------------------------------- -// setEnabled -//--------------------------------------------------------- - -void AbstractSlider::setEnabled(bool val) - { - QWidget::setEnabled(val); - update(); - } - -//--------------------------------------------------------- -// setCenter -//! If the center flag is set, a notch is drawn to -//! show the center position. -//--------------------------------------------------------- - -void AbstractSlider::setCenter(bool val) - { - if (val != _center) { - _center = val; - update(); - } - } - -//!-------------------------------------------------------- -// setScaleWidth -//--------------------------------------------------------- - -void AbstractSlider::setScaleWidth(int val) - { - if (val != _scaleWidth) { - _scaleWidth = val; - update(); - } - } - -//--------------------------------------------------------- -// setScaleColor -//--------------------------------------------------------- - -void AbstractSlider::setScaleColor(const QColor& c) - { - if (c != _scaleColor) { - _scaleColor = c; - update(); - } - } - -//--------------------------------------------------------- -// setScaleValueColor -//--------------------------------------------------------- - -void AbstractSlider::setScaleValueColor(const QColor& c) - { - if (c != _scaleValueColor) { - _scaleValueColor = c; - update(); - } - } - -//--------------------------------------------------------- -// wheelEvent -//--------------------------------------------------------- - -void AbstractSlider::wheelEvent(QWheelEvent* ev) - { - double div = 120.0; - if (ev->modifiers() & Qt::ShiftModifier) - _value += (ev->delta() * pageStep()) / div; - else - _value += (ev->delta() * lineStep()) / div; - if (_value < _minValue) - _value = _minValue; - else if (_value > _maxValue) - _value = _maxValue; - valueChange(); - update(); - } - -//--------------------------------------------------------- -// keyPressEvent -//--------------------------------------------------------- - -void AbstractSlider::keyPressEvent(QKeyEvent* ev) - { - double oval = _value; - - switch (ev->key()) { - case Qt::Key_Home: _value = _minValue; break; - case Qt::Key_End: _value = _maxValue; break; - case Qt::Key_Up: - case Qt::Key_Left: _value += lineStep(); break; - case Qt::Key_Down: - case Qt::Key_Right: _value -= lineStep(); break; - case Qt::Key_PageDown: _value -= pageStep(); break; - case Qt::Key_PageUp: _value += pageStep(); break; - default: - break; - } - if (_value < _minValue) - _value = _minValue; - else if (_value > _maxValue) - _value = _maxValue; - - if (oval != _value) { - if (_integer && (rint(oval) == rint(_value))) - return; - valueChange(); - update(); - } - } - -//--------------------------------------------------------- -// setValue -//--------------------------------------------------------- - -void AbstractSlider::setValue(double val) - { - if (_log) { - if (val == 0.0f) - _value = _minValue; - else { - _value = fast_log10(val) * 20.0f; - if (_value < _minValue) - _value = _minValue; - } - } - else if (_integer) - _value = rint(val); - else - _value = val; - update(); - } - -//--------------------------------------------------------- -// valueChange -//--------------------------------------------------------- - -void AbstractSlider::valueChange() - { - emit valueChanged(value(), _id); - } - -//--------------------------------------------------------- -// value -//--------------------------------------------------------- - -double AbstractSlider::value() const - { - if (_log) - return pow(10.0, _value*0.05f); - if (_integer) - return rint(_value); - return _value; - } - -//--------------------------------------------------------- -// minLogValue -//--------------------------------------------------------- - -//double AbstractSlider::minValue() const { -// return _log ? pow(10.0, _minValue*0.05f) : _minValue; -//} - -//--------------------------------------------------------- -// setMinLogValue -//--------------------------------------------------------- - -void AbstractSlider::setMinLogValue(double val) { - if (_log) { - if (val == 0.0f) _minValue = -100; - else _minValue = fast_log10(val) * 20.0f; - } - else _minValue = val; -} - -//--------------------------------------------------------- -// maxLogValue -//--------------------------------------------------------- - -//double AbstractSlider::maxValue() const { -// return _log ? pow(10.0, _maxValue*0.05f) : _maxValue; -//} - -//--------------------------------------------------------- -// setMaxLogValue -//--------------------------------------------------------- - -void AbstractSlider::setMaxLogValue(double val) { - if (_log) { - _maxValue = fast_log10(val) * 20.0f; - } - else _maxValue = val; -} - -} |