qskinny/src/controls/QskBoundedRangeInput.h

71 lines
1.8 KiB
C
Raw Normal View History

2020-07-25 16:46:04 +00:00
/******************************************************************************
2024-01-17 13:31:45 +00:00
* QSkinny - Copyright (C) The authors
2023-04-06 07:23:37 +00:00
* SPDX-License-Identifier: BSD-3-Clause
2020-07-25 16:46:04 +00:00
*****************************************************************************/
#ifndef QSK_BOUNDED_RANGE_INPUT_H
#define QSK_BOUNDED_RANGE_INPUT_H
#include "QskBoundedInput.h"
#include "QskIntervalF.h"
class QSK_EXPORT QskBoundedRangeInput : public QskBoundedInput
{
Q_OBJECT
Q_PROPERTY( qreal lowerValue READ lowerValue
WRITE setLowerValue NOTIFY lowerValueChanged )
Q_PROPERTY( qreal upperValue READ upperValue
WRITE setUpperValue NOTIFY upperValueChanged )
Q_PROPERTY( QskIntervalF range READ range WRITE setRange
RESET resetRange NOTIFY rangeChanged )
using Inherited = QskBoundedInput;
public:
QskBoundedRangeInput( QQuickItem* parent = nullptr );
QskBoundedRangeInput( const QskIntervalF&, QQuickItem* parent = nullptr );
~QskBoundedRangeInput() override;
void setRange( qreal lowerValue, qreal upperValue );
void resetRange();
QskIntervalF range() const;
qreal lowerValue() const;
qreal upperValue() const;
// [0.0, 1.0]
2020-08-09 09:50:34 +00:00
qreal lowerValueAsRatio() const;
qreal upperValueAsRatio() const;
2020-07-25 16:46:04 +00:00
public Q_SLOTS:
void setRange( const QskIntervalF& );
void setLowerValue( qreal );
void setUpperValue( qreal );
void setLowerValueAsRatio( qreal );
void setUpperValueAsRatio( qreal );
Q_SIGNALS:
void rangeChanged( const QskIntervalF& );
void lowerValueChanged( qreal );
void upperValueChanged( qreal );
protected:
virtual QskIntervalF fixupRange( const QskIntervalF& ) const;
void alignInput() override;
private:
void setRangeInternal( const QskIntervalF& );
void adjustValue();
QskIntervalF m_range;
};
#endif