FullViewIntervalView.hpp
1 #pragma once
2 #include <Scenario/Document/Interval/IntervalView.hpp>
3 
4 #include <QRect>
5 
6 #include <verdigris>
7 
8 class QGraphicsItem;
9 class QPainter;
10 class QStyleOptionGraphicsItem;
11 class QWidget;
12 
13 namespace Scenario
14 {
15 class FullViewIntervalPresenter;
16 class FullViewIntervalView final : public IntervalView
17 {
18  W_OBJECT(FullViewIntervalView)
19 
20 public:
21  FullViewIntervalView(FullViewIntervalPresenter& presenter, QGraphicsItem* parent);
22 
23  ~FullViewIntervalView() override;
24 
25  void drawPaths(
26  QPainter& p, QRectF visibleRect, const score::Brush& defaultColor,
27  const Process::Style& skin);
28  void updatePaths() final override;
29  void updatePlayPaths() final override;
30  void updateOverlayPos();
31 
32  QRectF boundingRect() const override;
33  void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
34  override;
35 
36  void setGuiWidth(double);
37 
38  void setSelected(bool selected);
39  void setSnapLine(std::optional<double>);
40 
41 private:
42  void drawDashedPath(QPainter& p, QRectF visibleRect, const Process::Style& skin);
43  void drawPlayDashedPath(QPainter& p, QRectF visibleRect, const Process::Style& skin);
44  double m_guiWidth{};
45  std::optional<double> m_snapLine{};
46 };
47 }
Definition: FullViewIntervalPresenter.hpp:30
Definition: FullViewIntervalView.hpp:17
Definition: IntervalView.hpp:34
Main plug-in of score.
Definition: score-plugin-dataflow/Dataflow/PortItem.hpp:14
Definition: ScenarioStyle.hpp:13
Definition: Skin.hpp:55