1 // SUPERV SUPERVGUI : GUI for Supervisor component
3 // Copyright (C) 2003 OPEN CASCADE
5 // File : SUPERVGUI_CanvasControlNode.h
6 // Author : Natalia KOPNOVA
9 #ifndef SUPERVGUI_CanvasControlNode_H
10 #define SUPERVGUI_CanvasControlNode_H
13 #include "SUPERVGUI_Def.h"
14 #include "SUPERVGUI_CanvasNode.h"
17 class SUPERVGUI_CanvasComputeNode : public SUPERVGUI_CanvasNode {
21 SUPERVGUI_CanvasComputeNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
22 virtual ~SUPERVGUI_CanvasComputeNode() {}
24 virtual QPopupMenu* getPopupMenu(QWidget* theParent);
27 class SUPERVGUI_CanvasMacroNode : public SUPERVGUI_CanvasComputeNode {
31 SUPERVGUI_CanvasMacroNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
32 virtual ~SUPERVGUI_CanvasMacroNode() {}
34 virtual QPopupMenu* getPopupMenu(QWidget* theParent);
38 void exportDataflow();
41 virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
45 class SUPERVGUI_CanvasEndNode;
46 class SUPERVGUI_CanvasStartNode : public SUPERVGUI_CanvasNode {
50 SUPERVGUI_CanvasStartNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
51 virtual ~SUPERVGUI_CanvasStartNode() {}
53 virtual bool setNodeName(QString aName);
55 SUPERVGUI_CanvasEndNode* getCoupled() const { return myCoupled; }
57 virtual QPopupMenu* getPopupMenu(QWidget* theParent);
60 virtual void remove();
62 virtual void addInputPort();
63 virtual void addOutputPort();
66 virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
69 virtual void onDestroyed(QObject*);
72 friend class SUPERVGUI_CanvasEndNode;
73 void setCoupled(SUPERVGUI_CanvasEndNode* theEnd) { myCoupled = theEnd; }
75 SUPERVGUI_CanvasEndNode* myCoupled;
80 class SUPERVGUI_CanvasEndNode : public SUPERVGUI_CanvasNode {
84 SUPERVGUI_CanvasEndNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode,
85 SUPERVGUI_CanvasStartNode* theStart);
86 virtual ~SUPERVGUI_CanvasEndNode() {}
88 SUPERVGUI_CanvasStartNode* getCoupled() const { return myCoupled; }
90 virtual QPopupMenu* getPopupMenu(QWidget* theParent);
93 virtual void addInputPort();
96 virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
99 SUPERVGUI_CanvasStartNode* myCoupled;
104 class SUPERVGUI_CanvasGotoNode : public SUPERVGUI_CanvasNode {
108 SUPERVGUI_CanvasGotoNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
109 virtual ~SUPERVGUI_CanvasGotoNode() {}
111 virtual QPopupMenu* getPopupMenu(QWidget* theParent);
117 virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
120 class SUPERVGUI_CanvasCellNode : public SUPERVGUI_CanvasNode {
124 SUPERVGUI_CanvasCellNode(QObject* theParent,
125 SUPERVGUI_Main* theMain,
126 SUPERV_CNode theNode);
127 virtual ~SUPERVGUI_CanvasCellNode() {}
129 virtual QPopupMenu* getPopupMenu(QWidget* theParent);
131 void setPairCell(SUPERVGUI_CanvasCellNode* thePairCell);
132 SUPERVGUI_CanvasCellNode* getPairCell();
135 //virtual bool setNodeName(QString aName);
138 virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
141 SUPERVGUI_CanvasCellNode* myPairCell; //for ControlNodes
149 class SUPERVGUI_CanvasCellEndNode: public SUPERVGUI_CanvasCellNode {
152 SUPERVGUI_CanvasCellEndNode(QObject* theParent,
153 SUPERVGUI_Main* theMain,
154 SUPERV_CNode theNode,
155 SUPERVGUI_CanvasCellNode* theStart);
156 virtual ~SUPERVGUI_CanvasCellEndNode() {}