Qwt User's Guide
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 00008 *****************************************************************************/ 00009 00010 #ifndef QWT_ABSTRACT_SLIDER_H 00011 #define QWT_ABSTRACT_SLIDER_H 00012 00013 #include "qwt_global.h" 00014 #include "qwt_abstract_scale.h" 00015 00032 class QWT_EXPORT QwtAbstractSlider: public QwtAbstractScale 00033 { 00034 Q_OBJECT 00035 00036 Q_PROPERTY( double value READ value WRITE setValue ) 00037 00038 Q_PROPERTY( uint totalSteps READ totalSteps WRITE setTotalSteps ) 00039 Q_PROPERTY( uint singleSteps READ singleSteps WRITE setSingleSteps ) 00040 Q_PROPERTY( uint pageSteps READ pageSteps WRITE setPageSteps ) 00041 Q_PROPERTY( bool stepAlignment READ stepAlignment WRITE setStepAlignment ) 00042 00043 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly ) 00044 Q_PROPERTY( bool tracking READ isTracking WRITE setTracking ) 00045 Q_PROPERTY( bool wrapping READ wrapping WRITE setWrapping ) 00046 00047 Q_PROPERTY( bool invertedControls READ invertedControls WRITE setInvertedControls ) 00048 00049 public: 00050 explicit QwtAbstractSlider( QWidget *parent = NULL ); 00051 virtual ~QwtAbstractSlider(); 00052 00053 void setValid( bool ); 00054 bool isValid() const; 00055 00056 double value() const; 00057 00058 void setWrapping( bool ); 00059 bool wrapping() const; 00060 00061 void setTotalSteps( uint ); 00062 uint totalSteps() const; 00063 00064 void setSingleSteps( uint ); 00065 uint singleSteps() const; 00066 00067 void setPageSteps( uint ); 00068 uint pageSteps() const; 00069 00070 void setStepAlignment( bool ); 00071 bool stepAlignment() const; 00072 00073 void setTracking( bool ); 00074 bool isTracking() const; 00075 00076 void setReadOnly( bool ); 00077 bool isReadOnly() const; 00078 00079 void setInvertedControls( bool ); 00080 bool invertedControls() const; 00081 00082 public Q_SLOTS: 00083 void setValue( double val ); 00084 00085 Q_SIGNALS: 00086 00097 void valueChanged( double value ); 00098 00103 void sliderPressed(); 00104 00109 void sliderReleased(); 00110 00119 void sliderMoved( double value ); 00120 00121 protected: 00122 virtual void mousePressEvent( QMouseEvent * ); 00123 virtual void mouseReleaseEvent( QMouseEvent * ); 00124 virtual void mouseMoveEvent( QMouseEvent * ); 00125 virtual void keyPressEvent( QKeyEvent * ); 00126 virtual void wheelEvent( QWheelEvent * ); 00127 00136 virtual bool isScrollPosition( const QPoint &pos ) const = 0; 00137 00147 virtual double scrolledTo( const QPoint &pos ) const = 0; 00148 00149 void incrementValue( int numSteps ); 00150 00151 virtual void scaleChange(); 00152 00153 protected: 00154 virtual void sliderChange(); 00155 00156 double incrementedValue( 00157 double value, int stepCount ) const; 00158 00159 private: 00160 double alignedValue( double ) const; 00161 double boundedValue( double ) const; 00162 00163 class PrivateData; 00164 PrivateData *d_data; 00165 }; 00166 00167 #endif