Loading...
Searching...
No Matches
QGraphicsNoteChooser.hpp
1#pragma once
2#include <score/graphics/widgets/Constants.hpp>
3
4#include <QFont>
5#include <QGraphicsItem>
6#include <QObject>
7
8#include <score_lib_base_export.h>
9
10#include <functional>
11#include <optional>
12#include <verdigris>
13
14namespace score
15{
16
17class SCORE_LIB_BASE_EXPORT QGraphicsNoteChooser final
18 : public QObject
19 , public QGraphicsItem
20{
21 W_OBJECT(QGraphicsNoteChooser)
22 SCORE_GRAPHICS_ITEM_TYPE(120)
23
24 static constexpr int m_min = -2;
25 static constexpr int m_max = 127;
26 double m_width = 30;
27 double m_height = 28;
28 std::function<QString(int)> m_format;
29 std::optional<QFont> m_font;
30 double m_curValue{};
31 int m_value{};
32 bool m_grab{};
33
34public:
35 explicit QGraphicsNoteChooser(QGraphicsItem* parent);
36
37 void setValue(int v);
38 int value() const;
39
40 void setSize(QSizeF sz);
43 void setFormatter(std::function<QString(int)> f);
45 void setFont(const QFont& f);
46
47 bool moving = false;
48
49public:
50 void sliderMoved() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderMoved)
51 void sliderReleased() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderReleased)
52
53private:
54 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
55 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
56 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
57 bool sceneEvent(QEvent* event) override;
58 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
59 override;
60 QRectF boundingRect() const override;
61};
62
63}
Definition QGraphicsNoteChooser.hpp:20
Base toolkit upon which the software is built.
Definition Application.cpp:83