地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
4.3 KiB

15 years ago
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2002 Uwe Rathmann
*
15 years ago
* 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_ABSTRACT_SLIDER_H
#define QWT_ABSTRACT_SLIDER_H
#include "qwt_global.h"
#include "qwt_abstract_scale.h"
15 years ago
/*!
\brief An abstract base class for slider widgets with a scale
A slider widget displays a value according to a scale.
The class is designed as a common super class for widgets like
QwtKnob, QwtDial and QwtSlider.
When the slider is nor readOnly() its value can be modified
by keyboard, mouse and wheel inputs.
The range of the slider is divided into a number of steps from
which the value increments according to user inputs depend.
Only for linear scales the number of steps correspond with
a fixed step size.
15 years ago
*/
class QWT_EXPORT QwtAbstractSlider: public QwtAbstractScale
15 years ago
{
Q_OBJECT
Q_PROPERTY( double value READ value WRITE setValue )
Q_PROPERTY( uint totalSteps READ totalSteps WRITE setTotalSteps )
Q_PROPERTY( uint singleSteps READ singleSteps WRITE setSingleSteps )
Q_PROPERTY( uint pageSteps READ pageSteps WRITE setPageSteps )
Q_PROPERTY( bool stepAlignment READ stepAlignment WRITE setStepAlignment )
15 years ago
Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
Q_PROPERTY( bool tracking READ isTracking WRITE setTracking )
Q_PROPERTY( bool wrapping READ wrapping WRITE setWrapping )
Q_PROPERTY( bool invertedControls READ invertedControls WRITE setInvertedControls )
15 years ago
public:
explicit QwtAbstractSlider( QWidget *parent = NULL );
15 years ago
virtual ~QwtAbstractSlider();
void setValid( bool );
bool isValid() const;
double value() const;
15 years ago
void setWrapping( bool );
bool wrapping() const;
15 years ago
void setTotalSteps( uint );
uint totalSteps() const;
15 years ago
void setSingleSteps( uint );
uint singleSteps() const;
15 years ago
void setPageSteps( uint );
uint pageSteps() const;
15 years ago
void setStepAlignment( bool );
bool stepAlignment() const;
15 years ago
void setTracking( bool );
bool isTracking() const;
void setReadOnly( bool );
bool isReadOnly() const;
15 years ago
void setInvertedControls( bool );
bool invertedControls() const;
15 years ago
public Q_SLOTS:
void setValue( double val );
Q_SIGNALS:
15 years ago
/*!
\brief Notify a change of value.
When tracking is enabled (default setting),
this signal will be emitted every time the value changes.
\param value New value
\sa setTracking(), sliderMoved()
15 years ago
*/
void valueChanged( double value );
15 years ago
/*!
This signal is emitted when the user presses the
movable part of the slider.
15 years ago
*/
void sliderPressed();
/*!
This signal is emitted when the user releases the
15 years ago
movable part of the slider.
*/
void sliderReleased();
15 years ago
/*!
This signal is emitted when the user moves the
slider with the mouse.
\param value New value
\sa valueChanged()
15 years ago
*/
void sliderMoved( double value );
15 years ago
protected:
virtual void mousePressEvent( QMouseEvent * );
virtual void mouseReleaseEvent( QMouseEvent * );
virtual void mouseMoveEvent( QMouseEvent * );
virtual void keyPressEvent( QKeyEvent * );
virtual void wheelEvent( QWheelEvent * );
15 years ago
/*!
\brief Determine what to do when the user presses a mouse button.
\param pos Mouse position
15 years ago
\retval True, when pos is a valid scroll position
\sa scrolledTo()
*/
virtual bool isScrollPosition( const QPoint &pos ) const = 0;
/*!
\brief Determine the value for a new position of the
movable part of the slider
\param pos Mouse position
\return Value for the mouse position
\sa isScrollPosition()
*/
virtual double scrolledTo( const QPoint &pos ) const = 0;
void incrementValue( int numSteps );
15 years ago
virtual void scaleChange();
protected:
virtual void sliderChange();
15 years ago
double incrementedValue(
double value, int stepCount ) const;
15 years ago
private:
double alignedValue( double ) const;
double boundedValue( double ) const;
15 years ago
class PrivateData;
PrivateData *d_data;
};
#endif