Salome HOME
Initial version
[modules/gui.git] / src / CAM / CAM_Study.h
1 #ifndef CAM_STUDY_H
2 #define CAM_STUDY_H
3
4 #include "CAM.h"
5
6 #include "CAM_DataModel.h"
7
8 #include <SUIT_Study.h>
9
10 #include <qptrlist.h>
11
12 #ifdef WIN32
13 #pragma warning( disable:4251 )
14 #endif
15
16 class CAM_EXPORT CAM_Study : public SUIT_Study
17 {
18   Q_OBJECT
19
20 public:
21   typedef QPtrList<CAM_DataModel>         ModelList;
22   typedef QPtrListIterator<CAM_DataModel> ModelListIterator;
23
24 public:
25   CAM_Study( SUIT_Application* );
26   virtual ~CAM_Study();
27
28   virtual void closeDocument();
29
30   bool         appendDataModel( const CAM_DataModel* );
31   virtual bool insertDataModel( const CAM_DataModel*, const int = -1 );
32   bool         insertDataModel( const CAM_DataModel*, const CAM_DataModel* );
33
34   virtual bool removeDataModel( const CAM_DataModel* );
35
36   bool         containsDataModel( const CAM_DataModel* ) const;
37
38   void         dataModels( ModelList& ) const;
39
40 protected:
41   virtual void dataModelInserted( const CAM_DataModel* );
42   virtual bool openDataModel( const QString&, CAM_DataModel* );
43   virtual bool saveDataModel( const QString&, CAM_DataModel* );
44
45 protected slots:
46   virtual void updateModelRoot( const CAM_DataModel* );
47
48 private:
49   ModelList    myDataModels;
50 };
51
52 #ifdef WIN32
53 #pragma warning( default:4251 )
54 #endif
55
56 #endif