diff --git a/src/scrollbar.h b/src/scrollbar.h new file mode 100644 --- /dev/null +++ b/src/scrollbar.h @@ -0,0 +1,62 @@ +/* + Copyright © 2014 Uwe Rathmann + + This file is copied from Qwt project; you can redistribute it and/or modify it + under the terms of the Qwt License, Version 1.0. You can obtain the original + source code and the details of the Qwt License from the Qwt website: + http://qwt.sourceforge.net/ +*/ + +#ifndef _SCROLLBAR_H +#define _SCROLLBAR_H 1 + +#include + +class ScrollBar: public QScrollBar +{ + Q_OBJECT + +public: + ScrollBar( QWidget *parent = NULL ); + ScrollBar( Qt::Orientation, QWidget *parent = NULL ); + ScrollBar( double minBase, double maxBase, + Qt::Orientation o, QWidget *parent = NULL ); + + void setInverted( bool ); + bool isInverted() const; + + double minBaseValue() const; + double maxBaseValue() const; + + double minSliderValue() const; + double maxSliderValue() const; + + int extent() const; + +Q_SIGNALS: + void sliderMoved( Qt::Orientation, double, double ); + void valueChanged( Qt::Orientation, double, double ); + +public Q_SLOTS: + virtual void setBase( double min, double max ); + virtual void moveSlider( double min, double max ); + +protected: + void sliderRange( int value, double &min, double &max ) const; + int mapToTick( double ) const; + double mapFromTick( int ) const; + +private Q_SLOTS: + void catchValueChanged( int value ); + void catchSliderMoved( int value ); + +private: + void init(); + + bool d_inverted; + double d_minBase; + double d_maxBase; + int d_baseTicks; +}; + +#endif