Salome HOME
24d87b0baabce38d1c21be3fa36bf68863ba64c8
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_Canvas.h
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 //
20 //  SUPERV SUPERVGUI : GUI for Supervisor component
21 //
22 //  File   : SUPERVGUI_Canvas.h
23 //  Author : Natalia KOPNOVA
24 //  Module : SUPERV
25
26 #ifndef SUPERVGUI_Canvas_H
27 #define SUPERVGUI_Canvas_H
28
29 #include "SUPERVGUI_Def.h"
30 #include <qcanvas.h>
31
32 class SUPERVGUI_Main;
33 class SUPERVGUI_CanvasNode;
34 class SUPERVGUI_CanvasPort;
35 class SUPERVGUI_CanvasLink;
36 class SUIT_ResourceMgr;
37
38 class SUPERVGUI_Canvas: public QCanvas {
39   Q_OBJECT
40
41   public:
42
43     enum {
44       Rtti_Node = 10,
45       Rtti_LinkPoint = 11,
46       Rtti_LinkEdge = 12,
47       Rtti_Hook = 13
48     };
49
50     SUPERVGUI_Canvas( SUPERVGUI_Main* m, SUIT_ResourceMgr* );
51     virtual ~SUPERVGUI_Canvas();
52
53     void merge();
54     void sync();
55     //void setAsFromStudy(bool theToStudy);
56
57     void addView(QCanvasView* theView);
58
59     void setFullView();
60     void setControlView();
61     bool isControlView() { return myIsControlView; }
62
63     SUPERVGUI_CanvasNode* getNode(SUPERV::CNode_ptr theNode) const;
64     SUPERVGUI_CanvasPort* getPort(SUPERV::Port_ptr thePort) const;
65     SUPERVGUI_CanvasLink* getLink(SUPERV::Link_ptr theLink) const;
66
67     QString getPortName(SUPERV::Port_ptr thePort) const;
68     QString getLinkName(SUPERV::Link_ptr theLink) const;
69
70  private:
71     void updateNodes(bool withPorts);
72     void updateLinks();
73
74     SUPERVGUI_Main* myMain;
75     bool myIsControlView;
76
77 };
78
79 #endif