]> SALOME platform Git repositories - modules/gui.git/blob - src/SalomeApp/SalomeApp_Module.h
Salome HOME
debug IPAL9411: redefine virtual methods createEmptyStudy and activateModule
[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 #include "SalomeApp_Selection.h"
11
12 #include <CAM_Module.h>
13
14 #include <string>
15
16 class QDockWindow;
17
18 class CAM_Study;
19
20 class QtxPopupMgr;
21
22 class SUIT_Operation;
23 class SUIT_Convertor;
24 class SUIT_ViewModel;
25 class SUIT_DataObject;
26
27 class SalomeApp_DataModel;
28 class SalomeApp_Application;
29 class SalomeApp_Preferences;
30 class SalomeApp_SelectionManager;
31
32 /*
33   Class : SalomeApp_Module
34   Description : Base class for all salome modules
35 */
36
37 class SALOMEAPP_EXPORT SalomeApp_Module : public CAM_Module
38 {
39   Q_OBJECT
40
41 public:
42   SalomeApp_Module( const QString& );
43   virtual ~SalomeApp_Module();
44
45   virtual void                        initialize( CAM_Application* );
46   virtual void                        windows( QMap<int, int>& ) const;
47   virtual void                        viewManagers( QStringList& ) const;
48
49   // engineIOR() should be a pure virtual method, to avoid logical errors!
50   //
51   // Implementation in derived classes can return the following values:
52   // "" (empty string)   - means that this is a light module, default engine should be used for interaction with SALOMEDS persistence
53   // "-1"                - means that this is a light module, SALOMEDS persistence is not used at all
54   // module`s engine IOR - means that this is a standard SALOME module with a CORBA engine
55   //
56   virtual QString                     engineIOR() const = 0;
57
58   virtual void                        contextMenuPopup( const QString&, QPopupMenu*, QString& );
59
60   virtual void                        createPreferences();
61
62   // Convenient shortcuts
63   SalomeApp_Application*              getApp() const;
64   
65   void                                updateObjBrowser( bool = true, SUIT_DataObject* = 0 );
66
67   virtual void                        selectionChanged();
68   virtual void                        preferencesChanged( const QString&, const QString& );
69
70   virtual void                        studyActivated() {};
71
72 public slots:
73   virtual bool                        activateModule( SUIT_Study* );
74   virtual bool                        deactivateModule( SUIT_Study* );
75
76   void                                MenuItem();
77
78 protected slots:
79   virtual void                        onModelSaved();
80   virtual void                        onModelOpened();
81   virtual void                        onModelClosed();
82
83 protected:
84   QtxPopupMgr*                        popupMgr();
85   SalomeApp_Preferences*              preferences() const;
86
87   virtual CAM_DataModel*              createDataModel();
88   virtual SalomeApp_Selection*        createSelection() const;
89
90   int                                 addPreference( const QString& label );
91   int                                 addPreference( const QString& label, const int pId, const int = -1,
92                                                      const QString& section = QString::null,
93                                                      const QString& param = QString::null );
94   QVariant                            preferenceProperty( const int, const QString& ) const;
95   void                                setPreferenceProperty( const int, const QString&, const QVariant& );
96
97 private:
98   QtxPopupMgr*                        myPopupMgr;
99 };
100
101 #endif