1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 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 <qscrollbar.h> 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