1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-23 08:28:36 -05:00
This commit is contained in:
f4exb 2017-09-23 07:11:12 +02:00
parent dc2b705807
commit 413e579914

View File

@ -1,79 +1,79 @@
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // // Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany //
// written by Christian Daniel // // written by Christian Daniel //
// // // //
// This program is free software; you can redistribute it and/or modify // // 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 // // it under the terms of the GNU General Public License as published by //
// the Free Software Foundation as version 3 of the License, or // // the Free Software Foundation as version 3 of the License, or //
// // // //
// This program is distributed in the hope that it will be useful, // // This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of // // but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License V3 for more details. // // GNU General Public License V3 for more details. //
// // // //
// You should have received a copy of the GNU General Public License // // You should have received a copy of the GNU General Public License //
// along with this program. If not, see <http://www.gnu.org/licenses/>. // // along with this program. If not, see <http://www.gnu.org/licenses/>. //
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#include <QWidget> #include <QWidget>
#include <QTimer> #include <QTimer>
#include "gui/colormapper.h" #include "gui/colormapper.h"
#include "util/export.h" #include "util/export.h"
class SDRANGEL_API ValueDial : public QWidget { class SDRANGEL_API ValueDial : public QWidget {
Q_OBJECT Q_OBJECT
public: public:
ValueDial(QWidget* parent = NULL, ColorMapper colorMapper = ColorMapper(ColorMapper::Normal)); ValueDial(QWidget* parent = NULL, ColorMapper colorMapper = ColorMapper(ColorMapper::Normal));
void setValue(quint64 value); void setValue(quint64 value);
void setValueRange(uint numDigits, quint64 min, quint64 max); void setValueRange(uint numDigits, quint64 min, quint64 max);
void setFont(const QFont& font); void setFont(const QFont& font);
void setBold(bool bold); void setBold(bool bold);
void setColorMapper(ColorMapper colorMapper); void setColorMapper(ColorMapper colorMapper);
quint64 getValue() const { return m_value; } quint64 getValue() const { return m_value; }
quint64 getValueNew() const { return m_valueNew; } quint64 getValueNew() const { return m_valueNew; }
signals: signals:
void changed(quint64 value); void changed(quint64 value);
private: private:
QLinearGradient m_background; QLinearGradient m_background;
int m_numDigits; int m_numDigits;
int m_numDecimalPoints; int m_numDecimalPoints;
int m_digitWidth; int m_digitWidth;
int m_digitHeight; int m_digitHeight;
int m_hightlightedDigit; int m_hightlightedDigit;
int m_cursor; int m_cursor;
bool m_cursorState; bool m_cursorState;
quint64 m_value; quint64 m_value;
quint64 m_valueMax; quint64 m_valueMax;
quint64 m_valueMin; quint64 m_valueMin;
QString m_text; QString m_text;
quint64 m_valueNew; quint64 m_valueNew;
QString m_textNew; QString m_textNew;
int m_animationState; int m_animationState;
QTimer m_animationTimer; QTimer m_animationTimer;
QTimer m_blinkTimer; QTimer m_blinkTimer;
ColorMapper m_colorMapper; ColorMapper m_colorMapper;
quint64 findExponent(int digit); quint64 findExponent(int digit);
QChar digitNeigh(QChar c, bool dir); QChar digitNeigh(QChar c, bool dir);
QString formatText(quint64 value); QString formatText(quint64 value);
void paintEvent(QPaintEvent*); void paintEvent(QPaintEvent*);
void mousePressEvent(QMouseEvent*); void mousePressEvent(QMouseEvent*);
void mouseMoveEvent(QMouseEvent*); void mouseMoveEvent(QMouseEvent*);
void wheelEvent(QWheelEvent*); void wheelEvent(QWheelEvent*);
void leaveEvent(QEvent*); void leaveEvent(QEvent*);
void keyPressEvent(QKeyEvent*); void keyPressEvent(QKeyEvent*);
void focusInEvent(QFocusEvent*); void focusInEvent(QFocusEvent*);
void focusOutEvent(QFocusEvent*); void focusOutEvent(QFocusEvent*);
private slots: private slots:
void animate(); void animate();
void blink(); void blink();
}; };