Loading...
Searching...
No Matches
IntSlider.hpp
1#pragma once
2#include <QProxyStyle>
3#include <QSize>
4#include <QWidget>
5
6#include <score_lib_base_export.h>
7
8#include <verdigris>
9
10namespace score
11{
12class SCORE_LIB_BASE_EXPORT IntSlider : public QWidget
13{
14 W_OBJECT(IntSlider)
15public:
16 IntSlider(Qt::Orientation ort, QWidget* widg);
17 IntSlider(QWidget* widg);
18 ~IntSlider() override;
19
20 void setValue(int val);
21 void setMinimum(int min) { m_min = min; }
22 void setMaximum(int max) { m_max = max; }
23 void setRange(int min, int max, int init)
24 {
25 m_min = min;
26 m_max = max;
27 m_init = init;
28 update();
29 }
30 void setOrientation(Qt::Orientation ort)
31 {
32 m_orientation = ort;
33 updateSkinMetrics();
34 }
35
36 int value() const { return m_value; }
37 int minimum() const { return m_min; }
38 int maximum() const { return m_max; }
39
40 void valueChanged(int arg_1) E_SIGNAL(SCORE_LIB_BASE_EXPORT, valueChanged, arg_1)
41 void sliderMoved(int arg_1) E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderMoved, arg_1)
42 void sliderReleased() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderReleased)
43
44 void mousePressEvent(QMouseEvent* event) override;
45 void mouseMoveEvent(QMouseEvent* event) override;
46 void mouseReleaseEvent(QMouseEvent* event) override;
47 void mouseDoubleClickEvent(QMouseEvent* event) override;
48 virtual void createPopup(QPoint pos);
49
53 int skinExtent() const noexcept;
54
55protected:
57 void updateSkinMetrics();
58
59 void paintEvent(QPaintEvent*) override;
60 void paint(QPainter& p);
61 void paintWithText(const QString& s);
62
63private:
64 void updateValue(QPointF mousePos);
65
66 int m_value{};
67 int m_min{};
68 int m_max{};
69 int m_init{};
70
71 Qt::Orientation m_orientation{};
72 double m_borderWidth{};
73 QSize m_skinMinimum;
74};
75}
Definition IntSlider.hpp:13
Base toolkit upon which the software is built.
Definition Application.cpp:117