controls/QskBoundedValueInput.h

Classes

  Name
class QskBoundedValueInput

Source code

/******************************************************************************
 * QSkinny - Copyright (C) 2016 Uwe Rathmann
 * This file may be used under the terms of the QSkinny License, Version 1.0
 *****************************************************************************/

#ifndef QSK_BOUNDED_VALUE_INPUT_H
#define QSK_BOUNDED_VALUE_INPUT_H

#include "QskBoundedInput.h"

class QSK_EXPORT QskBoundedValueInput : public QskBoundedInput
{
    Q_OBJECT

    Q_PROPERTY( qreal value READ value WRITE setValue NOTIFY valueChanged )
    Q_PROPERTY( qreal valueAsRatio READ valueAsRatio
        WRITE setValueAsRatio NOTIFY valueChanged )

    using Inherited = QskBoundedInput;

  public:
    QskBoundedValueInput( QQuickItem* parent = nullptr );
    ~QskBoundedValueInput() override;

    qreal value() const;

    // [0.0, 1.0]
    qreal valueAsRatio() const;
    using QskBoundedInput::valueAsRatio;

  public Q_SLOTS:
    void setValue( qreal );
    void setValueAsRatio( qreal );
    void increment( qreal offset ) override;

  Q_SIGNALS:
    void valueChanged( qreal );

  protected:
    virtual qreal fixupValue( qreal value ) const;
    void alignInput() override;

  private:
    void setValueInternal( qreal value );
    void adjustValue();

    qreal m_value = 0.0;
};

#endif

Updated on 28 July 2023 at 14:02:29 CEST