CurveView.hpp
1 #pragma once
2 
3 #include <QGraphicsItem>
4 #include <QPoint>
5 #include <QRect>
6 
7 #include <score_plugin_curve_export.h>
8 
9 #include <verdigris>
10 
11 class QGraphicsSceneContextMenuEvent;
12 class QGraphicsSceneMouseEvent;
13 class QKeyEvent;
14 class QPainter;
15 class QStyleOptionGraphicsItem;
16 class QWidget;
17 
18 namespace Curve
19 {
20 class SCORE_PLUGIN_CURVE_EXPORT View final
21  : public QObject
22  , public QGraphicsItem
23 {
24  W_OBJECT(View)
25  Q_INTERFACES(QGraphicsItem)
26 public:
27  explicit View(QGraphicsItem* parent) noexcept;
28  ~View() override;
29 
30  void setDefaultWidth(double w) noexcept;
31  void setRect(const QRectF& theRect) noexcept;
32  QRectF boundingRect() const override;
33 
34  void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
35  override;
36 
37  void setSelectionArea(const QRectF&) noexcept;
38  QPixmap pixmap() noexcept;
39 
40  void setValueTooltip(QPointF pos, const QString&) noexcept;
41 
42 public:
43  void pressed(QPointF arg_1) E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, pressed, arg_1)
44  void moved(QPointF arg_1) E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, moved, arg_1)
45  void released(QPointF arg_1) E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, released, arg_1)
46  void doubleClick(QPointF arg_1) E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, doubleClick, arg_1)
47 
48  void escPressed() E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, escPressed)
49 
50  void keyPressed(int arg_1) E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, keyPressed, arg_1)
51  void keyReleased(int arg_1) E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, keyReleased, arg_1)
52 
53  void contextMenuRequested(const QPoint& arg_1, const QPointF& arg_2)
54  E_SIGNAL(SCORE_PLUGIN_CURVE_EXPORT, contextMenuRequested, arg_1, arg_2)
55 
56 private:
57  void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
58  void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override;
59  void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
60  void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
61 
62  void keyPressEvent(QKeyEvent* ev) override;
63  void keyReleaseEvent(QKeyEvent* ev) override;
64 
65  void contextMenuEvent(QGraphicsSceneContextMenuEvent*) override;
66 
67  QRectF m_rect; // The rect in which the whole curve must fit.
68  QRectF m_selectArea;
69  QPointF m_tooltipPos;
70  QString m_tooltip;
71  double m_defaultW{};
72 };
73 }
Definition: CurveView.hpp:23
Utilities and base classes for 1D curves.
Definition: FocusDispatcher.hpp:12