linkablebezieritem.h
Go to the documentation of this file.
1 #ifndef LINKABLEBEZIERITEM_H
2 #define LINKABLEBEZIERITEM_H
3 
4 #include "customshape.h"
5 #include "beziercurve.h"
6 #include "canvasnode.h"
8 
9 namespace dnai
10 {
11  namespace views
12  {
13  class GenericNode;
14 
16  {
17  public:
18  explicit LinkableBezierItem(QQuickItem *parent = nullptr);
20  virtual QPointF getCanvasPos() const = 0;
21  virtual void updateLink() = 0;
22 
26  virtual void componentComplete() override = 0;
27  virtual GenericNode *getNode() = 0;
28 
29  virtual void unlinkAll();
30  virtual void asyncUnlinkAll();
31  void connect(LinkableBezierItem* a);
32 
33  virtual void setIsLink(bool isLink) = 0;
34  virtual void setIsHover(bool isHover) = 0;
35  virtual const QColor &curveColor() const = 0;
36 
37  protected:
40 
41  protected:
48  virtual LinkableBezierItem *findLinkableBezierItem(GenericNode *n, const QPointF &p) = 0;
49 
54  virtual void mouseMoveEvent(QMouseEvent *event) override;
59  virtual void mousePressEvent(QMouseEvent *event) override;
64  virtual void mouseReleaseEvent(QMouseEvent *event) override;
65 
66  virtual void afterRealease(Link *l);
67 
68 // virtual void setHover();
69 // virtual void setNormal();
70 // virtual void setLink(Link *);
71 
72  enum LinkStatus {
76  };
77 
78  protected:
80 // LinkableBezierItem *m_currentHover;
82 
83  };
84  }
85 }
86 
87 #endif // LINKABLEBEZIERITEM_H
Definition: genericnode.h:13
Definition: customshape.h:10
interfaces::ALinkable * m_linkable
Definition: linkablebezieritem.h:79
Definition: linkablebezieritem.h:15
Definition: linkablebezieritem.h:74
virtual LinkableBezierItem * findLinkableBezierItem(GenericNode *n, const QPointF &p)=0
return the IO under the point p of the Node n
virtual void setIsHover(bool isHover)=0
Definition: linkablebezieritem.h:73
LinkStatus m_status
Definition: linkablebezieritem.h:81
virtual void setIsLink(bool isLink)=0
virtual GenericNode * getNode()=0
virtual QPointF getCanvasPos() const =0
virtual void componentComplete() override=0
Make componentComplete Abstract.
BezierCurve * m_currentCurve
Definition: linkablebezieritem.h:38
virtual void asyncUnlinkAll()
Definition: linkablebezieritem.cpp:147
virtual void mouseReleaseEvent(QMouseEvent *event) override
Override mouseReleaseEvent.
Definition: linkablebezieritem.cpp:89
virtual void mouseMoveEvent(QMouseEvent *event) override
Override mouseMoveEvent.
Definition: linkablebezieritem.cpp:31
virtual void mousePressEvent(QMouseEvent *event) override
Override mousePressEvent.
Definition: linkablebezieritem.cpp:53
virtual void unlinkAll()
Definition: linkablebezieritem.cpp:135
LinkableBezierItem(QQuickItem *parent=nullptr)
Definition: linkablebezieritem.cpp:12
CanvasNode * m_canvas
Definition: linkablebezieritem.h:39
virtual void afterRealease(Link *l)
Definition: linkablebezieritem.cpp:131
LinkStatus
Definition: linkablebezieritem.h:72
virtual const QColor & curveColor() const =0
Definition: linkablebezieritem.h:75
Definition: api.h:13
interfaces::ALinkable * getLinkable() const
Definition: linkablebezieritem.h:19
Definition: canvasnode.h:13
Definition: beziercurve.h:11
void connect(LinkableBezierItem *a)
Definition: linkablebezieritem.cpp:71
Definition: ilinkable.h:22