summaryrefslogtreecommitdiff
path: root/muse2/awl/floatentry.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/awl/floatentry.h')
-rw-r--r--muse2/awl/floatentry.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/muse2/awl/floatentry.h b/muse2/awl/floatentry.h
new file mode 100644
index 00000000..a90232a9
--- /dev/null
+++ b/muse2/awl/floatentry.h
@@ -0,0 +1,112 @@
+//=============================================================================
+// 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 __FLOATLABEL_H__
+#define __FLOATLABEL_H__
+
+namespace Awl {
+
+//---------------------------------------------------------
+// FloatEntry
+//---------------------------------------------------------
+
+class FloatEntry : public QLineEdit {
+ Q_OBJECT
+ 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(QString specialText READ specialText WRITE setSpecialText)
+ Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
+ Q_PROPERTY(int precision READ precision WRITE setPrecision)
+ Q_PROPERTY(bool log READ log WRITE setLog)
+
+ int button;
+ int starty;
+ QTimer* timer;
+ double evx;
+ int timecount;
+ double _minValue, _maxValue;
+ QString _specialText; // text to show if value outside min,max
+ QString _suffix;
+ int _precision;
+ bool _log;
+
+ virtual void wheelEvent(QWheelEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void setSValue(const QString&);
+ virtual bool setString(double);
+ virtual void incValue(double);
+ virtual void decValue(double);
+
+ void updateValue();
+
+ protected:
+ int _id;
+ double _value;
+ virtual void valueChange();
+
+ private slots:
+ void repeat();
+
+ protected slots:
+ void endEdit();
+
+ public slots:
+ virtual void setValue(double);
+
+ signals:
+ void valueChanged(double, int);
+
+ public:
+ FloatEntry(QWidget*);
+ virtual QSize sizeHint() const;
+ virtual double value() const;
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ double minValue() const { return _minValue; }
+ double maxValue() const { return _maxValue; }
+ void setMinValue(double v) { _minValue = v; }
+ void setMaxValue(double v) { _maxValue = v; }
+ void setRange(double a, double b) {
+ _minValue = a;
+ _maxValue = b;
+ }
+ int precision() const { return _precision; }
+ void setPrecision(int val);
+ QString specialText() const { return _specialText; }
+ void setSpecialText(const QString& s) {
+ _specialText = s;
+ update();
+ }
+ QString suffix() const { return _suffix; }
+ void setSuffix(const QString& s) { _suffix = s; }
+ bool log() const { return _log; }
+ void setLog(bool v) { _log = v; }
+ };
+
+}
+
+#endif
+