Loading...
Searching...
No Matches
DoubleSlider.hpp
1#pragma once
2#include <QProxyStyle>
3#include <QSize>
4#include <QSlider>
5
6#include <score_lib_base_export.h>
7
8#include <limits>
9#include <verdigris>
10
11namespace score
12{
19class SCORE_LIB_BASE_EXPORT DoubleSlider : public QWidget //: public QSlider
20{
21 W_OBJECT(DoubleSlider)
22public:
23 DoubleSlider(Qt::Orientation ort, QWidget* widg);
24 DoubleSlider(QWidget* widg);
25 ~DoubleSlider() override;
26 bool moving = false;
27 void setValue(double val);
28 void setOrientation(Qt::Orientation ort)
29 {
30 m_orientation = ort;
31 updateSkinMetrics();
32 }
33 void setBorderWidth(double border)
34 {
35 m_borderWidth = border;
36 m_borderOverridden = true;
37 }
38
39 double value() const { return m_value; }
40 virtual double map(double v) const;
41 virtual double unmap(double v) const;
42 double min{}; //TODO make it private. Warning used like this in a lot of places.
43 double max{}; //ditto
44 double init{}; //ditto
45
46 void valueChanged(double arg_1) E_SIGNAL(SCORE_LIB_BASE_EXPORT, valueChanged, arg_1)
47 void sliderMoved(double arg_1) E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderMoved, arg_1)
48 void sliderReleased() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderReleased)
49
50 void mousePressEvent(QMouseEvent* event) override;
51 void mouseMoveEvent(QMouseEvent* event) override;
52 void mouseReleaseEvent(QMouseEvent* event) override;
53 void mouseDoubleClickEvent(QMouseEvent* event) override;
54 virtual void createPopup(QPoint pos);
55 virtual void setRange(double min, double max, double init) noexcept;
56
60 int skinExtent() const noexcept;
61
62protected:
64 void updateSkinMetrics();
65
66 void paintEvent(QPaintEvent*) override;
67 void paint(QPainter& p);
68 void paintWithText(const QString& s);
69
70private:
71 void updateValue(QPointF mousePos);
72
73 double m_value{};
74 Qt::Orientation m_orientation{};
75 double m_borderWidth{};
76 QSize m_skinMinimum;
77 bool m_borderOverridden{};
78};
79}
The DoubleSlider class.
Definition DoubleSlider.hpp:20
Base toolkit upon which the software is built.
Definition Application.cpp:108