195 lines
2.6 KiB
C++
Executable File
195 lines
2.6 KiB
C++
Executable File
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "lts_widgets_export.h"
|
|
|
|
|
|
#include <QSlider>
|
|
|
|
namespace LtsWidgets
|
|
{
|
|
|
|
class LtsRangeSliderPrivate;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LTSWIDGETS_EXPORT LtsRangeSlider : public QSlider
|
|
{
|
|
Q_OBJECT
|
|
|
|
Q_PROPERTY(int minimumValue READ minimumValue WRITE setMinimumValue)
|
|
Q_PROPERTY(int maximumValue READ maximumValue WRITE setMaximumValue)
|
|
Q_PROPERTY(int minimumPosition READ minimumPosition WRITE setMinimumPosition)
|
|
Q_PROPERTY(int maximumPosition READ maximumPosition WRITE setMaximumPosition)
|
|
Q_PROPERTY(bool symmetricMoves READ symmetricMoves WRITE setSymmetricMoves)
|
|
Q_PROPERTY(QString handleToolTip READ handleToolTip WRITE setHandleToolTip)
|
|
|
|
public:
|
|
|
|
|
|
|
|
explicit LtsRangeSlider(Qt::Orientation o, QWidget *parent = nullptr);
|
|
explicit LtsRangeSlider(QWidget *parent = nullptr)
|
|
: LtsRangeSlider(Qt::Vertical, parent)
|
|
{}
|
|
~LtsRangeSlider();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int minimumValue() const;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int maximumValue() const;
|
|
|
|
|
|
|
|
|
|
int minimumPosition() const;
|
|
void setMinimumPosition(int min);
|
|
|
|
|
|
|
|
|
|
int maximumPosition() const;
|
|
void setMaximumPosition(int max);
|
|
|
|
|
|
|
|
|
|
void setPositions(int min, int max);
|
|
|
|
|
|
|
|
|
|
bool symmetricMoves() const;
|
|
void setSymmetricMoves(bool symmetry);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QString handleToolTip() const;
|
|
void setHandleToolTip(const QString &toolTip);
|
|
|
|
|
|
|
|
bool isMinimumSliderDown() const;
|
|
|
|
|
|
bool isMaximumSliderDown() const;
|
|
|
|
Q_SIGNALS:
|
|
|
|
|
|
|
|
void minimumValueChanged(int min);
|
|
|
|
|
|
|
|
void maximumValueChanged(int max);
|
|
|
|
|
|
void valuesChanged(int min, int max);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void minimumPositionChanged(int min);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void maximumPositionChanged(int max);
|
|
|
|
|
|
|
|
|
|
void positionsChanged(int min, int max);
|
|
|
|
public Q_SLOTS:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setMinimumValue(int min);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setMaximumValue(int max);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setValues(int min, int max);
|
|
|
|
protected Q_SLOTS:
|
|
void onRangeChanged(int minimum, int maximum);
|
|
|
|
protected:
|
|
LtsRangeSlider(LtsRangeSliderPrivate *impl, Qt::Orientation o, QWidget *parent = nullptr);
|
|
|
|
|
|
|
|
void mousePressEvent(QMouseEvent *ev) override;
|
|
void mouseMoveEvent(QMouseEvent *ev) override;
|
|
void mouseReleaseEvent(QMouseEvent *ev) override;
|
|
|
|
|
|
|
|
void paintEvent(QPaintEvent *ev) override;
|
|
void initMinimumSliderStyleOption(QStyleOptionSlider *option) const;
|
|
void initMaximumSliderStyleOption(QStyleOptionSlider *option) const;
|
|
|
|
|
|
|
|
bool event(QEvent *event) override;
|
|
|
|
protected:
|
|
QScopedPointer<LtsRangeSliderPrivate> d_ptr;
|
|
|
|
private:
|
|
Q_DECLARE_PRIVATE(LtsRangeSlider)
|
|
Q_DISABLE_COPY(LtsRangeSlider)
|
|
};
|
|
|
|
}
|