Salome HOME
Color for background and title are taken from resource manager
[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 class SUIT_ResourceMgr;
21
22 class SUPERVGUI_Canvas: public QCanvas {
23   Q_OBJECT
24
25   public:
26
27     enum {
28       Rtti_Node = 10,
29       Rtti_LinkPoint = 11,
30       Rtti_LinkEdge = 12,
31       Rtti_Hook = 13
32     };
33
34     SUPERVGUI_Canvas( SUPERVGUI_Main* m, SUIT_ResourceMgr* );
35     virtual ~SUPERVGUI_Canvas();
36
37     void merge();
38     void sync();
39     //void setAsFromStudy(bool theToStudy);
40
41     void addView(QCanvasView* theView);
42
43     void setFullView();
44     void setControlView();
45     bool isControlView() { return myIsControlView; }
46
47     SUPERVGUI_CanvasNode* getNode(SUPERV::CNode_ptr theNode) const;
48     SUPERVGUI_CanvasPort* getPort(SUPERV::Port_ptr thePort) const;
49     SUPERVGUI_CanvasLink* getLink(SUPERV::Link_ptr theLink) const;
50
51     QString getPortName(SUPERV::Port_ptr thePort) const;
52     QString getLinkName(SUPERV::Link_ptr theLink) const;
53
54  private:
55     void updateNodes(bool withPorts);
56     void updateLinks();
57
58     SUPERVGUI_Main* myMain;
59     bool myIsControlView;
60
61 };
62
63 #endif