Salome HOME
DCQ:prepare 2.0.0
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_Canvas.h
diff --git a/src/SUPERVGUI/SUPERVGUI_Canvas.h b/src/SUPERVGUI/SUPERVGUI_Canvas.h
new file mode 100644 (file)
index 0000000..10e82ed
--- /dev/null
@@ -0,0 +1,62 @@
+//  SUPERV SUPERVGUI : GUI for Supervisor component
+//
+//  Copyright (C) 2003  OPEN CASCADE
+//
+//  File   : SUPERVGUI_Canvas.h
+//  Author : Natalia KOPNOVA
+//  Module : SUPERV
+
+#ifndef SUPERVGUI_Canvas_H
+#define SUPERVGUI_Canvas_H
+
+using namespace std;
+#include "SUPERVGUI_Def.h"
+#include <qcanvas.h>
+
+class SUPERVGUI_Main;
+class SUPERVGUI_CanvasNode;
+class SUPERVGUI_CanvasPort;
+class SUPERVGUI_CanvasLink;
+
+class SUPERVGUI_Canvas: public QCanvas {
+  Q_OBJECT
+
+  public:
+
+    enum {
+      Rtti_Node = 10,
+      Rtti_LinkPoint = 11,
+      Rtti_LinkEdge = 12,
+      Rtti_Hook = 13
+    };
+
+    SUPERVGUI_Canvas(SUPERVGUI_Main* m);
+    virtual ~SUPERVGUI_Canvas();
+
+    void merge();
+    void sync();
+    void setAsFromStudy(bool theToStudy);
+
+    void addView(QCanvasView* theView);
+
+    void setFullView();
+    void setControlView();
+    bool isControlView() { return myIsControlView; }
+
+    SUPERVGUI_CanvasNode* getNode(SUPERV::CNode_ptr theNode) const;
+    SUPERVGUI_CanvasPort* getPort(SUPERV::Port_ptr thePort) const;
+    SUPERVGUI_CanvasLink* getLink(SUPERV::Link_ptr theLink) const;
+
+    QString getPortName(SUPERV::Port_ptr thePort) const;
+    QString getLinkName(SUPERV::Link_ptr theLink) const;
+
+ private:
+    void updateNodes(bool withPorts);
+    void updateLinks();
+
+    SUPERVGUI_Main* myMain;
+    bool myIsControlView;
+
+};
+
+#endif