Salome HOME
SAN: Fix for RH 8
[modules/gui.git] / src / SalomeApp / SalomeApp_DataObject.h
1 #ifndef SALOMEAPP_DATAOBJECT_H
2 #define SALOMEAPP_DATAOBJECT_H
3
4 #include "SalomeApp.h"
5
6 #include "CAM_DataObject.h"
7 #include "CAM_RootObject.h"
8
9 #include "SALOMEDSClient.hxx"
10
11 class SalomeApp_Study;
12
13 class SALOMEAPP_EXPORT SalomeApp_DataObject : public virtual CAM_DataObject
14 {
15   class Key;
16
17 public:
18   SalomeApp_DataObject( SUIT_DataObject* = 0 );
19   SalomeApp_DataObject( const _PTR(SObject)&, SUIT_DataObject* = 0 );
20   virtual ~SalomeApp_DataObject();
21     
22   virtual QString                 name() const;
23   virtual QPixmap                 icon() const;
24   virtual QColor                  color() const;
25   virtual QString                 toolTip() const;
26
27   virtual SUIT_DataObjectKey*     key() const;
28   virtual QString                 entry() const;
29
30   virtual _PTR(SObject)           object() const; // location of corresponding SALOMEDS::SObject  
31
32   SUIT_DataObject*                componentObject() const;
33   QString                         componentDataType() const; // GEOM, SMESH, VISU, etc.
34
35 private:
36   _PTR(SObject)                   myObject;
37 };
38
39 /*!
40  * SalomeApp_ModuleObject - class for optimized access to DataModel from
41  * SalomeApp_DataObject instances - see also CAM_RootObject.h
42  */
43
44 class SALOMEAPP_EXPORT SalomeApp_ModuleObject : public SalomeApp_DataObject,
45                                                 public CAM_RootObject
46 {
47 public:
48   SalomeApp_ModuleObject( SUIT_DataObject* = 0 );
49   SalomeApp_ModuleObject( const _PTR(SObject)&, SUIT_DataObject* = 0 );
50   SalomeApp_ModuleObject( CAM_DataModel*, const _PTR(SObject)&, SUIT_DataObject* = 0 );
51   virtual ~SalomeApp_ModuleObject();
52 };
53
54 #endif