Loading...
Searching...
No Matches
QGraphicsXYChooser.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
13namespace score
14{
15class SCORE_LIB_BASE_EXPORT QGraphicsXYChooser final
16 : public QObject
17 , public QGraphicsItem
18{
19 W_OBJECT(QGraphicsXYChooser)
20 SCORE_GRAPHICS_ITEM_TYPE(250)
21 QRectF m_rect{0., 0., 100., 100.};
22
23private:
24 ossia::vec2f m_value{}, m_min{}, m_max{}, m_init{};
25 bool m_grab{};
26
27public:
28 explicit QGraphicsXYChooser(QGraphicsItem* parent);
30
31 void setPoint(const QPointF& r);
32 void setValue(ossia::vec2f v);
33 void setRange(ossia::vec2f min, ossia::vec2f max, ossia::vec2f init);
34 ossia::vec2f value() const;
35
36 bool moving = false;
37
38public:
39 void sliderMoved() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderMoved)
40 void sliderReleased() E_SIGNAL(SCORE_LIB_BASE_EXPORT, sliderReleased)
41
42private:
46 void showTypeIn(QPointF scenePos);
47
48 ossia::vec2f scaledValue(float x, float y) const noexcept;
49 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override;
50 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
51 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
52 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
53 bool sceneEvent(QEvent* event) override;
54 QRectF boundingRect() const override;
55 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
56 override;
57};
58}
Definition QGraphicsXYChooser.hpp:18
Base toolkit upon which the software is built.
Definition Application.cpp:117