Loading...
Searching...
No Matches
QGraphicsMultiSliderXY.hpp
1#pragma once
2#include <score/graphics/widgets/Constants.hpp>
3
4#include <ossia-qt/value_metatypes.hpp>
5
6#include <QGraphicsItem>
7#include <QObject>
8
9#include <score_lib_base_export.h>
10
11#include <verdigris>
12
13#include <halp/value_types.hpp>
14#include <halp/custom_widgets.hpp>
15
16namespace ossia
17{
18
19struct domain;
20}
21namespace score
22{
23template <typename T>
25struct RightClickImpl;
26class SCORE_LIB_BASE_EXPORT QGraphicsMultiSliderXY final
27 : public QObject
28 , public QGraphicsItem
29{
31 SCORE_GRAPHICS_ITEM_TYPE(110)
32public:
33 template <typename T>
34 friend struct GridWidget;
35
36 std::vector<ossia::value> tab;
37
38 static constexpr double width() { return 400.; }
39 static constexpr double height() { return 400.; }
40
41 halp::xy_type<float> cursorSize{0.04, 0.04};
42
43 int selectedCursor;
44 bool isSelected;
45
46 double min{0.}, max{1.};
47
48 int m_grab{-1};
49 ossia::value m_value{};
50 ossia::value m_execValue{};
51 bool m_hasExec{};
52 bool moving = false;
53 RightClickImpl* impl{};
54
55 QGraphicsMultiSliderXY(QGraphicsItem* parent);
56
57 void setPoint(const QPointF& r);
58 void setValue(ossia::value v);
59 ossia::value value() const;
60 //void setExecutionValue(double v);
61 //void resetExecution();
62
63 void setRange(const ossia::value& min, const ossia::value& max);
64 void setRange(const ossia::domain& dom);
65
66public:
67 void sliderMoved() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderMoved)
68 void sliderReleased() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderReleased)
69
70private:
71 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
72 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
73 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
74 QRectF boundingRect() const override;
75 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
76 override;
77};
78}
Definition QGraphicsMultiSliderXY.hpp:29
Base toolkit upon which the software is built.
Definition Application.cpp:97
Definition QGraphicsMultiSliderXY.hpp:24
Definition DefaultGraphicsSliderImpl.hpp:25