123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
- * Qwt Widget Library
- * Copyright (C) 1997 Josef Wilgen
- * Copyright (C) 2002 Uwe Rathmann
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Qwt License, Version 1.0
- *****************************************************************************/
- #ifndef QWT_SLIDER_H
- #define QWT_SLIDER_H
- #include "qwt_global.h"
- #include "qwt_abstract_slider.h"
- class QwtScaleDraw;
- /*!
- \brief The Slider Widget
- QwtSlider is a slider widget which operates on an interval
- of type double. Its position is related to a scale showing
- the current value.
- The slider can be customized by having a through, a groove - or both.
- \image html sliders.png
- */
- class QWT_EXPORT QwtSlider: public QwtAbstractSlider
- {
- Q_OBJECT
- Q_ENUMS( ScalePosition BackgroundStyle )
- Q_PROPERTY( Qt::Orientation orientation
- READ orientation WRITE setOrientation )
- Q_PROPERTY( ScalePosition scalePosition READ scalePosition
- WRITE setScalePosition )
- Q_PROPERTY( bool trough READ hasTrough WRITE setTrough )
- Q_PROPERTY( bool groove READ hasGroove WRITE setGroove )
- Q_PROPERTY( QSize handleSize READ handleSize WRITE setHandleSize )
- Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
- Q_PROPERTY( int spacing READ spacing WRITE setSpacing )
- public:
- /*!
- Position of the scale
- \sa QwtSlider(), setScalePosition(), setOrientation()
- */
- enum ScalePosition
- {
- //! The slider has no scale
- NoScale,
- //! The scale is right of a vertical or below a horizontal slider
- LeadingScale,
- //! The scale is left of a vertical or above a horizontal slider
- TrailingScale
- };
- explicit QwtSlider( QWidget *parent = NULL );
- explicit QwtSlider( Qt::Orientation, QWidget *parent = NULL );
- virtual ~QwtSlider();
- void setOrientation( Qt::Orientation );
- Qt::Orientation orientation() const;
- void setScalePosition( ScalePosition );
- ScalePosition scalePosition() const;
- void setTrough( bool );
- bool hasTrough() const;
- void setGroove( bool );
- bool hasGroove() const;
- void setHandleSize( const QSize & );
- QSize handleSize() const;
- void setBorderWidth( int );
- int borderWidth() const;
- void setSpacing( int );
- int spacing() const;
- virtual QSize sizeHint() const;
- virtual QSize minimumSizeHint() const;
- void setScaleDraw( QwtScaleDraw * );
- const QwtScaleDraw *scaleDraw() const;
- void setUpdateInterval( int );
- int updateInterval() const;
- protected:
- virtual double scrolledTo( const QPoint & ) const;
- virtual bool isScrollPosition( const QPoint & ) const;
- virtual void drawSlider ( QPainter *, const QRect & ) const;
- virtual void drawHandle( QPainter *, const QRect &, int pos ) const;
- virtual void mousePressEvent( QMouseEvent * );
- virtual void mouseReleaseEvent( QMouseEvent * );
- virtual void resizeEvent( QResizeEvent * );
- virtual void paintEvent ( QPaintEvent * );
- virtual void changeEvent( QEvent * );
- virtual void timerEvent( QTimerEvent * );
- virtual void scaleChange();
- QRect sliderRect() const;
- QRect handleRect() const;
- private:
- QwtScaleDraw *scaleDraw();
- void layoutSlider( bool );
- void initSlider( Qt::Orientation );
- class PrivateData;
- PrivateData *d_data;
- };
- #endif
|