Salome HOME
16fe99369c615c82d745cae64ef097f8fb62bdd6
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_Canvas.h
1 //  SUPERV SUPERVGUI : GUI for Supervisor component
2 //
3 //  Copyright (C) 2003  OPEN CASCADE
4 //
5 //  File   : SUPERVGUI_Canvas.h
6 //  Author : Natalia KOPNOVA
7 //  Module : SUPERV
8
9 #ifndef SUPERVGUI_Canvas_H
10 #define SUPERVGUI_Canvas_H
11
12 using namespace std;
13 #include "SUPERVGUI_Def.h"
14 #include <qcanvas.h>
15
16 class SUPERVGUI_Main;
17 class SUPERVGUI_CanvasNode;
18 class SUPERVGUI_CanvasPort;
19 class SUPERVGUI_CanvasLink;
20
21 class SUPERVGUI_Canvas: public QCanvas {
22   Q_OBJECT
23
24   public:
25
26     enum {
27       Rtti_Node = 10,
28       Rtti_LinkPoint = 11,
29       Rtti_LinkEdge = 12,
30       Rtti_Hook = 13
31     };
32
33     SUPERVGUI_Canvas(SUPERVGUI_Main* m);
34     virtual ~SUPERVGUI_Canvas();
35
36     void merge();
37     void sync();
38     //void setAsFromStudy(bool theToStudy);
39
40     void addView(QCanvasView* theView);
41
42     void setFullView();
43     void setControlView();
44     bool isControlView() { return myIsControlView; }
45
46     SUPERVGUI_CanvasNode* getNode(SUPERV::CNode_ptr theNode) const;
47     SUPERVGUI_CanvasPort* getPort(SUPERV::Port_ptr thePort) const;
48     SUPERVGUI_CanvasLink* getLink(SUPERV::Link_ptr theLink) const;
49
50     QString getPortName(SUPERV::Port_ptr thePort) const;
51     QString getLinkName(SUPERV::Link_ptr theLink) const;
52
53  private:
54     void updateNodes(bool withPorts);
55     void updateLinks();
56
57     SUPERVGUI_Main* myMain;
58     bool myIsControlView;
59
60 };
61
62 #endif