Loading...
Searching...
No Matches
TriggerView.hpp
1#pragma once
2#include <Scenario/Document/ScenarioDocument/ScenarioDocumentViewConstants.hpp>
3
4#include <score/widgets/MimeData.hpp>
5
6#include <QGraphicsItem>
7#include <QMimeData>
8
9#include <score_plugin_scenario_export.h>
10
11#include <verdigris>
12class QGraphicsSceneMouseEvent;
13class QPainter;
14class QStyleOptionGraphicsItem;
15class QWidget;
16namespace Scenario
17{
18class SCORE_PLUGIN_SCENARIO_EXPORT TriggerView final
19 : public QObject
20 , public QGraphicsItem
21{
22 W_OBJECT(TriggerView)
23 Q_INTERFACES(QGraphicsItem)
24
25public:
26 TriggerView(QGraphicsItem* parent);
27 static const constexpr int Type = ItemType::Trigger;
28 int type() const final override { return Type; }
29
30 void setSelected(bool b) noexcept;
31 void onWaitStart();
32 void onWaitEnd();
33 void nextFrame();
34
35public:
36 void pressed(QPointF arg_1) W_SIGNAL(pressed, arg_1);
37 void moved(QPointF arg_1) W_SIGNAL(moved, arg_1);
38 void released(QPointF arg_1) W_SIGNAL(released, arg_1);
39
40 void dropReceived(const QPointF& pos, const QMimeData& arg_2)
41 W_SIGNAL(dropReceived, pos, arg_2);
42
43 QRectF boundingRect() const override;
44
45private:
46 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
47 override;
48 bool contains(const QPointF& point) const override;
49
50 void dropEvent(QGraphicsSceneDragDropEvent* event) override;
51 void mousePressEvent(QGraphicsSceneMouseEvent*) override;
52 void mouseMoveEvent(QGraphicsSceneMouseEvent*) override;
53 void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override;
54
55 void hoverEnterEvent(QGraphicsSceneHoverEvent*) override;
56 void hoverLeaveEvent(QGraphicsSceneHoverEvent*) override;
57
58 const QPixmap& currentPixmap() const noexcept;
59
60 int m_currentFrame{};
61 int m_frameDirection{};
62
63 bool m_selected : 1;
64 bool m_hovered : 1;
65 bool m_waiting : 1;
66};
67}
Definition TriggerView.hpp:21
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13