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 setContainProcess(bool);
57 void setSelected(bool arg);
58 void setStatus(ExecutionStatus);
59 void disableOverlay();
60
61public:
62 void dropReceived(const QMimeData& arg_1)
63 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, dropReceived, arg_1)
64 void startCreateMode() E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startCreateMode)
65 void startCreateGraphalMode()
66 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startCreateGraphalMode)
67 void startCreateSequence() E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startCreateSequence)
68
69protected:
70 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
71 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
72 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
73 void hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
74 void hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
75 void dragEnterEvent(QGraphicsSceneDragDropEvent* event) override;
76 void dragLeaveEvent(QGraphicsSceneDragDropEvent* event) override;
77 void dropEvent(QGraphicsSceneDragDropEvent* event) override;
78
79private:
80 void setDilatation(bool);
81 void updateOverlay();
82 StatePresenter& m_presenter;
83 StateOverlays* m_overlays{};
84 ExecutionStatusProperty m_status{};
85 score::ColorBang m_execPing;
86
87 bool m_dilated : 1;
88 bool m_containMessage : 1;
89 bool m_containProcess : 1;
90 bool m_selected : 1;
91 bool m_hovered : 1;
92 bool m_hasOverlay : 1;
93 bool m_moving : 1;
94};
95}
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