summaryrefslogtreecommitdiffstats
path: root/plugins/infowidget/floatspinbox.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infowidget/floatspinbox.h')
-rw-r--r--plugins/infowidget/floatspinbox.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/plugins/infowidget/floatspinbox.h b/plugins/infowidget/floatspinbox.h
new file mode 100644
index 0000000..42545bc
--- /dev/null
+++ b/plugins/infowidget/floatspinbox.h
@@ -0,0 +1,93 @@
+/***************************************************************************
+ * Copyright (C) 2005 by *
+ * Joris Guisson <joris.guisson@gmail.com> *
+ * Vincent Wagelaar <vincent@ricardis.tudelft.nl> *
+ * Jonas Widarsson <jonas@widarsson.com> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * 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., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#ifndef FLOATSPINBOX_H
+#define FLOATSPINBOX_H
+
+#include <qspinbox.h>
+
+namespace kt
+{
+
+ /**
+ * @author Jonas Widarsson
+ *
+ * A Spinbox for float values which respects KGlobal::locale().
+ * QSpinBox's internal integer value is only
+ * used for step detection.
+ */
+
+ class FloatSpinBox : public QSpinBox
+ {
+ Q_OBJECT
+ public:
+ FloatSpinBox( QWidget* parent=0, const char* name=0 );
+ FloatSpinBox( int precision = 2, QWidget* parent=0, const char* name=0 );
+ FloatSpinBox( float minValue, float maxValue, float step = 0.5, int precision = 2,
+ QWidget* parent=0, const char* name=0 );
+ virtual ~FloatSpinBox();
+
+ QString mapValueToText( int value );
+
+ int mapTextToValue( bool *ok );
+
+ float minValue () const;
+ float maxValue () const;
+ float value () const;
+ int precision() const;
+
+ public slots:
+ virtual void setMinValue ( float minValue );
+ virtual void setMaxValue ( float maxValue );
+ virtual void setValue ( float value );
+ virtual void setStep ( float step );
+ virtual void setPrecision( int value );
+ virtual void stepUp();
+ virtual void stepDown();
+
+ signals:
+ void valueChanged ( float value );
+ void valueHasChanged ();
+
+ private slots:
+ void internalValueChanged( int value );
+
+ private:
+ int m_precision_digits;
+ float m_value;
+ float m_minValue;
+ float m_maxValue;
+ bool m_useRange;
+ float m_step;
+ int m_oldIntVal;
+ float min( float a, float b) const
+ {
+ return (a < b) ? a : b;
+ }
+
+ float max( float a, float b) const
+ {
+ return (a > b) ? a : b;
+ }
+ };
+}
+
+#endif