Salome HOME
d0897460a922108a64cede3e1ffff0a8e33b3b24
[modules/visu.git] / src / VISU_I / VISU_PrsObject_i.hh
1 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  VISU OBJECT : interactive object for VISU entities implementation
24 //  File   : VISU_PrsObject_i.hxx
25 //  Author : Alexey PETROV
26 //  Module : VISU
27 //
28 #ifndef VISU_PrsObject_i_HeaderFile
29 #define VISU_PrsObject_i_HeaderFile
30
31 #include "VISUConfig.hh"
32
33 namespace VISU
34 {
35   //----------------------------------------------------------------------------
36   class VISU_I_EXPORT RemovableObject_i : public virtual POA_VISU::RemovableObject,
37                                           public virtual Storable
38   {
39   public:
40     typedef Storable TSuperClass;
41
42     virtual 
43     ~RemovableObject_i();
44
45     SALOMEDS::Study_var
46     GetStudyDocument() const;
47
48     SalomeApp_Study* 
49     GetGUIStudy() const;
50
51     virtual
52     std::string
53     GetEntry();
54
55     virtual 
56     std::string
57     GetName() const;
58
59     virtual 
60     void
61     SetName(const std::string& theName,
62             bool theIsUpdateStudyAttr);
63
64   protected:
65     RemovableObject_i();
66
67     void
68     SetStudyDocument(SALOMEDS::Study_ptr theStudy);
69
70   private:
71     std::string myName;
72     SalomeApp_Study* myGUIStudy;
73     SALOMEDS::Study_var myStudyDocument;
74
75     RemovableObject_i(const RemovableObject_i&);
76   };
77
78
79   //----------------------------------------------------------------------------
80   class VISU_I_EXPORT PrsObject_i : public virtual POA_VISU::PrsObject,
81                                     public virtual RemovableObject_i
82   {
83     PrsObject_i(const PrsObject_i&);
84
85   public:
86     typedef RemovableObject_i TSuperClass;
87
88     PrsObject_i(SALOMEDS::Study_ptr theStudy = SALOMEDS::Study::_nil());
89   };
90 }
91
92 #endif