#ifndef TOUCHSLIDER_H #define TOUCHSLIDER_H #include #include namespace Ui { class TouchSlider; } class TouchSlider: public QGroupBox { Q_OBJECT Q_PROPERTY(bool readOnly READ readOnly WRITE setReadOnly) Q_PROPERTY(bool showMinMax READ showMinMax WRITE setShowMinMax) Q_PROPERTY(double minimum READ minimum WRITE setMinimum) Q_PROPERTY(double maximum READ maximum WRITE setMaximum) Q_PROPERTY(double value READ value WRITE setValue) Q_PROPERTY(double precision READ precision WRITE setPrecision) Q_PROPERTY(QString prefix READ prefix WRITE setPrefix) Q_PROPERTY(QString suffix READ suffix WRITE setSuffix) Q_PROPERTY(int clickID READ clickID WRITE setClickID) Q_PROPERTY(int setID READ setID WRITE setSetID) public: explicit TouchSlider(QWidget *parent = 0); ~TouchSlider(); int clickID() const {return id_click;} int setID() const {return id_set;} double minimum() const; double maximum() const; double value() const; double precision() const; QString prefix() const {return pref;} QString suffix() const {return suff;} bool readOnly() const {return m_readOnly;} bool showMinMax() const {return m_showMinMax;} private: void updateCaption(); Ui::TouchSlider *ui; bool hasZero; bool m_readOnly; bool m_showMinMax; double prec; int id_click, id_set; QString pref, suff; public slots: void enable() {setEnabled(true);} void disable() {setEnabled(false);} void setClickID(int id) {id_click = id;} void setSetID(int id) {id_set = id;} void setSuffix(const QString & text) {suff = text; updateCaption();} void setPrefix(const QString & text) {pref = text; updateCaption();} void setPrecision(double precision); void setPrecision(int precision) {setPrecision((double)precision);} void setMinimum(double min); void setMinimum(int min) {setMinimum((double)min);} void setMaximum(double max); void setMaximum(int max) {setMaximum((double)max);} void setReadOnly(bool yes); void setShowMinMax(bool yes); void setValue(double val); void setValue(int val) {setValue((double)val);} void enableID(int set_id) {if (set_id == id_set) enable();} void disableID(int set_id) {if (set_id == id_set) disable();} void setValueID(int set_id, double val) {if (set_id == id_set) setValue(val);} void setValueID(int set_id, int val) {if (set_id == id_set) setValue(val);} void clickMin() {on_pbMin_clicked();} void clickMax() {on_pbMax_clicked();} void clickInc() {on_pbInc_clicked();} void clickDec() {on_pbDec_clicked();} void clickZero() {on_pbZero_clicked();} private slots: void on_barPos_valueChanged(int value); void on_barNeg_valueChanged(int value); void on_barNeg_mousePressEvent(QMouseEvent*); void on_barPos_mousePressEvent(QMouseEvent*); void on_barNeg_mouseMoveEvent(QMouseEvent*); void on_barPos_mouseMoveEvent(QMouseEvent*); void on_pbZero_clicked(); void on_pbDec_clicked(); void on_pbInc_clicked(); void on_pbMax_clicked(); void on_pbMin_clicked(); signals: void valueChanged(double val); void valueChanged(int val); void valueChangedID(int id, double val); void valueChangedID(int id, int val); }; #endif // TOUCHSLIDER_H