Salome HOME
studyActivated() virtual method has been added
[modules/gui.git] / src / SalomeApp / SalomeApp_Module.h
index 62780b60fb0dd4464eeb16fec1ddd3bed8be14bf..7ac60246213037c116f0bc6601f8ba9eff094085 100644 (file)
@@ -26,6 +26,7 @@ class SUIT_DataObject;
 
 class SalomeApp_DataModel;
 class SalomeApp_Application;
+class SalomeApp_Preferences;
 class SalomeApp_SelectionManager;
 
 /*
@@ -44,9 +45,19 @@ public:
   virtual void                        initialize( CAM_Application* );
   virtual void                        windows( QMap<int, int>& ) const;
   virtual void                        viewManagers( QStringList& ) const;
-  virtual QString                     engineIOR() const;
 
-  virtual void                        contextMenuPopup( const QString&, QPopupMenu* );
+  // engineIOR() should be a pure virtual method, to avoid logical errors!
+  //
+  // Implementation in derived classes can return the following values:
+  // "" (empty string)   - means that this is a light module, default engine should be used for interaction with SALOMEDS persistence
+  // "-1"                - means that this is a light module, SALOMEDS persistence is not used at all
+  // module`s engine IOR - means that this is a standard SALOME module with a CORBA engine
+  //
+  virtual QString                     engineIOR() const = 0;
+
+  virtual void                        contextMenuPopup( const QString&, QPopupMenu*, QString& );
+
+  virtual void                        createPreferences();
 
   // Convenient shortcuts
   SalomeApp_Application*              getApp() const;
@@ -54,10 +65,14 @@ public:
   void                                updateObjBrowser( bool = true, SUIT_DataObject* = 0 );
 
   virtual void                        selectionChanged();
+  virtual void                        preferencesChanged( const QString&, const QString& );
+
+  virtual void                        studyActivated() {};
 
 public slots:
-  virtual void                        activateModule( SUIT_Study* );
-  virtual void                        deactivateModule( SUIT_Study* );
+  virtual bool                        activateModule( SUIT_Study* );
+  virtual bool                        deactivateModule( SUIT_Study* );
+
   void                                MenuItem();
 
 protected slots:
@@ -67,9 +82,18 @@ protected slots:
 
 protected:
   QtxPopupMgr*                        popupMgr();
+  SalomeApp_Preferences*              preferences() const;
+
   virtual CAM_DataModel*              createDataModel();
   virtual SalomeApp_Selection*        createSelection() const;
 
+  int                                 addPreference( const QString& label );
+  int                                 addPreference( const QString& label, const int pId, const int = -1,
+                                                    const QString& section = QString::null,
+                                                    const QString& param = QString::null );
+  QVariant                            preferenceProperty( const int, const QString& ) const;
+  void                                setPreferenceProperty( const int, const QString&, const QVariant& );
+
 private:
   QtxPopupMgr*                        myPopupMgr;
 };