]> SALOME platform Git repositories - modules/superv.git/blob - src/SUPERVGUI/SUPERVGUI_CanvasControlNode.h
Salome HOME
DCQ:prepare 2.0.0
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_CanvasControlNode.h
1 //  SUPERV SUPERVGUI : GUI for Supervisor component
2 //
3 //  Copyright (C) 2003  OPEN CASCADE
4 //
5 //  File   : SUPERVGUI_CanvasControlNode.h
6 //  Author : Natalia KOPNOVA
7 //  Module : SUPERV
8
9 #ifndef SUPERVGUI_CanvasControlNode_H
10 #define SUPERVGUI_CanvasControlNode_H
11
12 using namespace std;
13 #include "SUPERVGUI_Def.h"
14 #include "SUPERVGUI_CanvasNode.h"
15
16
17 class SUPERVGUI_CanvasComputeNode : public SUPERVGUI_CanvasNode {
18   Q_OBJECT
19
20   public:
21     SUPERVGUI_CanvasComputeNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
22     virtual ~SUPERVGUI_CanvasComputeNode() {}
23
24     virtual QPopupMenu* getPopupMenu(QWidget* theParent);
25 };
26
27 class SUPERVGUI_CanvasMacroNode : public SUPERVGUI_CanvasComputeNode {
28   Q_OBJECT
29
30   public:
31     SUPERVGUI_CanvasMacroNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
32     virtual ~SUPERVGUI_CanvasMacroNode() {}
33
34     virtual QPopupMenu* getPopupMenu(QWidget* theParent);
35
36   public slots:
37     void openSubGraph();
38     void exportDataflow();
39
40   protected:
41     virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
42 };
43
44
45 class SUPERVGUI_CanvasEndNode;
46 class SUPERVGUI_CanvasStartNode : public SUPERVGUI_CanvasNode {
47   Q_OBJECT
48
49   public:
50     SUPERVGUI_CanvasStartNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
51     virtual ~SUPERVGUI_CanvasStartNode() {}
52
53     virtual bool setNodeName(QString aName);
54
55     SUPERVGUI_CanvasEndNode* getCoupled() const { return myCoupled; }
56
57     virtual QPopupMenu* getPopupMenu(QWidget* theParent);
58
59   public slots:
60     virtual void remove();
61
62     virtual void addInputPort();
63     virtual void addOutputPort();
64
65   protected:
66     virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
67
68   protected slots:
69     virtual void onDestroyed(QObject*);
70
71   private:
72     friend class SUPERVGUI_CanvasEndNode;
73     void setCoupled(SUPERVGUI_CanvasEndNode* theEnd) { myCoupled = theEnd; }
74
75     SUPERVGUI_CanvasEndNode* myCoupled;
76
77 };
78
79
80 class SUPERVGUI_CanvasEndNode : public SUPERVGUI_CanvasNode {
81   Q_OBJECT
82
83   public:
84     SUPERVGUI_CanvasEndNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode,
85                             SUPERVGUI_CanvasStartNode* theStart);
86     virtual ~SUPERVGUI_CanvasEndNode() {}
87
88     SUPERVGUI_CanvasStartNode* getCoupled() const { return myCoupled; }
89
90     virtual QPopupMenu* getPopupMenu(QWidget* theParent);
91
92   public slots:
93     virtual void addInputPort();
94
95   protected:
96     virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
97
98   private:
99     SUPERVGUI_CanvasStartNode* myCoupled;
100
101 };
102
103
104 class SUPERVGUI_CanvasGotoNode : public SUPERVGUI_CanvasNode {
105   Q_OBJECT
106
107   public:
108     SUPERVGUI_CanvasGotoNode(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
109     virtual ~SUPERVGUI_CanvasGotoNode() {}
110
111     virtual QPopupMenu* getPopupMenu(QWidget* theParent);
112
113   public slots:
114     void linkToNode();
115
116   protected:
117     virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
118 };
119
120 #endif