Loading...
Searching...
No Matches
StateView.hpp
1#pragma once
2#include <Scenario/Document/Event/ExecutionStatus.hpp>
3#include <Scenario/Document/ScenarioDocument/ScenarioDocumentViewConstants.hpp>
4
5#include <score/model/ColorInterpolator.hpp>
6
7#include <QGraphicsItem>
8#include <QPainterPath>
9#include <QRect>
10
11#include <score_plugin_scenario_export.h>
12
13#include <verdigris>
14
15class QGraphicsSceneDragDropEvent;
16class QGraphicsSceneMouseEvent;
17class QMimeData;
18class QPainter;
19class QStyleOptionGraphicsItem;
20class QWidget;
21
22namespace Scenario
23{
24struct StateOverlays;
25class StatePresenter;
26
27class SCORE_PLUGIN_SCENARIO_EXPORT StateView final
28 : public QObject
29 , public QGraphicsItem
30{
31 W_OBJECT(StateView)
32 Q_INTERFACES(QGraphicsItem)
33public:
34 static const constexpr qreal fullRadius = 8.;
35 static const constexpr qreal pointRadius = 5.;
36 static const constexpr qreal notDilated = 1.;
37 static const constexpr qreal dilated = 1.5;
38
39 StateView(StatePresenter& presenter, QGraphicsItem* parent = nullptr);
40 virtual ~StateView();
41
42 static const constexpr int Type = ItemType::State;
43 int type() const final override { return Type; }
44
45 StatePresenter& presenter() const { return m_presenter; }
46
47 QRectF boundingRect() const override;
48 QPainterPath shape() const override;
49 QPainterPath opaqueArea() const override;
50 bool contains(const QPointF& point) const override;
51
52 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
53 override;
54
55 void setContainMessage(bool);
56 void setBrokenReferences(bool);
57 void setEmphasized(bool);
58 void setContainProcess(bool);
59 void setSelected(bool arg);
60 void setStatus(ExecutionStatus);
61 void disableOverlay();
62
63public:
64 void dropReceived(const QMimeData& arg_1)
65 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, dropReceived, arg_1)
66 void startCreateMode() E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startCreateMode)
67 void startCreateGraphalMode()
68 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startCreateGraphalMode)
69 void startCreateSequence() E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startCreateSequence)
70
71protected:
72 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
73 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
74 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
75 void hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
76 void hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
77 void dragEnterEvent(QGraphicsSceneDragDropEvent* event) override;
78 void dragLeaveEvent(QGraphicsSceneDragDropEvent* event) override;
79 void dropEvent(QGraphicsSceneDragDropEvent* event) override;
80
81private:
82 void setDilatation(bool);
83 void updateOverlay();
84 StatePresenter& m_presenter;
85 StateOverlays* m_overlays{};
86 ExecutionStatusProperty m_status{};
87 score::ColorBang m_execPing;
88
89 bool m_dilated : 1;
90 bool m_containMessage : 1;
91 bool m_brokenReferences : 1;
92 bool m_emphasized : 1;
93 bool m_containProcess : 1;
94 bool m_selected : 1;
95 bool m_hovered : 1;
96 bool m_hasOverlay : 1;
97 bool m_moving : 1;
98};
99}
Definition StatePresenter.hpp:23
Definition StateView.hpp:30
Definition ColorInterpolator.hpp:9
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13
Definition ExecutionStatus.hpp:33
Definition StateMenuOverlay.hpp:211