Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/gui.git] / src / SalomeApp / SalomeApp_Module.h
1 // File:      SalomeApp_Module.h
2 // Created:   10/25/2004 11:33:06 AM
3 // Author:    Sergey LITONIN
4 // Copyright (C) CEA 2004
5
6 #ifndef SALOMEAPP_MODULE_H
7 #define SALOMEAPP_MODULE_H
8
9 #include "SalomeApp.h"
10
11 #include <LightApp_Module.h>
12
13 class CAM_DataModel;
14 class SalomeApp_Application;
15 class LightApp_Operation;
16 class LightApp_Selection;
17 class SALOME_ListIO;
18 class QString;
19
20 /*!
21  * \brief Base class for all salome modules
22 */
23 class SALOMEAPP_EXPORT SalomeApp_Module : public LightApp_Module
24 {
25   Q_OBJECT
26
27 public:
28   SalomeApp_Module( const QString& );
29   virtual ~SalomeApp_Module();
30
31   /*! engineIOR() should be a pure virtual method, to avoid logical errors!\n
32    * Implementation in derived classes can return the following values:\n
33    * module`s engine IOR - means that this is a standard SALOME module with a CORBA engine
34    * \li "" (empty string)   - means that this not correct SALOME module
35    */
36   virtual QString                     engineIOR() const = 0;
37   
38   /*! Convenient shortcuts*/
39
40   SalomeApp_Application*              getApp() const;
41
42   virtual void                        storeVisualParameters(int savePoint);
43   virtual void                        restoreVisualParameters(int savePoint);
44
45 protected:
46   virtual CAM_DataModel*              createDataModel();
47   virtual LightApp_Selection*         createSelection() const;
48   virtual void                        extractContainers( const SALOME_ListIO&, SALOME_ListIO& ) const;
49 };
50
51 #endif