Salome HOME
7e4e2d4b8a68768ae48307806f53ace8c8a91ef9
[modules/gui.git] / src / CAM / CAM_RootObject.h
1 #ifndef CAM_ROOTOBJECT_H
2 #define CAM_ROOTOBJECT_H
3
4 #include "CAM_DataObject.h"
5
6 /*!
7   CAM_RootObject - class intended for optimized access to CAM_DataModel instance
8   from CAM_DataObject instances.
9
10   To take advantage of this class in a specific application, 
11   custom data model root object class should be derived from both CAM_RootObject
12   and application-specific DataObject implementation using virtual inheritance.
13  */
14 class CAM_EXPORT CAM_RootObject : public virtual CAM_DataObject
15 {
16 public:
17   CAM_RootObject( SUIT_DataObject* = 0 );
18   CAM_RootObject( CAM_DataModel*, SUIT_DataObject* = 0 );
19   virtual ~CAM_RootObject();
20
21   virtual QString        name() const;
22
23   virtual CAM_DataModel* dataModel() const;
24   virtual void           setDataModel( CAM_DataModel* );
25
26 private:
27   CAM_DataModel*         myDataModel; 
28 };
29
30 #endif
31
32 #if _MSC_VER > 1000
33 #pragma once
34 #endif