X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSalomeApp%2FSalomeApp_Module.h;h=1ab7f75cd8a284ff438cba71ae8287eb535da0bc;hb=95c32a3d017f9611ca3519ad1da9c9c23b4e183d;hp=8be396c33f9d2a65dfd05916774fbbbbae380119;hpb=a947e05a9b21d1c671fb63c69db4a643f6c17532;p=modules%2Fgui.git diff --git a/src/SalomeApp/SalomeApp_Module.h b/src/SalomeApp/SalomeApp_Module.h index 8be396c33..1ab7f75cd 100644 --- a/src/SalomeApp/SalomeApp_Module.h +++ b/src/SalomeApp/SalomeApp_Module.h @@ -26,13 +26,15 @@ class SUIT_DataObject; class SalomeApp_DataModel; class SalomeApp_Application; +class SalomeApp_Preferences; class SalomeApp_SelectionManager; +class SalomeApp_Operation; +class SalomeApp_SwitchOp; +class SalomeApp_Displayer; -/* - Class : SalomeApp_Module - Description : Base class for all salome modules +/*! + * \brief Base class for all salome modules */ - class SALOMEAPP_EXPORT SalomeApp_Module : public CAM_Module { Q_OBJECT @@ -44,34 +46,86 @@ public: virtual void initialize( CAM_Application* ); virtual void windows( QMap& ) const; virtual void viewManagers( QStringList& ) const; - virtual QString engineIOR() const; + virtual SalomeApp_Displayer* displayer(); + + /*! engineIOR() should be a pure virtual method, to avoid logical errors!\n + * Implementation in derived classes can return the following values:\n + * module`s engine IOR - means that this is a standard SALOME module with a CORBA engine + * \li "" (empty string) - means that this is a light module, default engine should be used for interaction with SALOMEDS persistence + * \li "-1" - means that this is a light module, SALOMEDS persistence is not used at all\n + */ + virtual QString engineIOR() const = 0; virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& ); - // Convenient shortcuts - SalomeApp_Application* getApp() const; + virtual void createPreferences(); - void updateObjBrowser( bool = true, SUIT_DataObject* = 0 ); + /*! Convenient shortcuts*/ + + SalomeApp_Application* getApp() const; + virtual void update( const int ); + // Update viewer or/and object browser etc. in accordance with update flags + // ( see SalomeApp_UpdateFlags enumeration ). Derived modules can redefine this method + // for their own purposes + + void updateObjBrowser( bool = true, SUIT_DataObject* = 0 ); + // Update object bropwser ( for updating model or whole object browser use update() method + // can be used ) + 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: virtual void onModelSaved(); virtual void onModelOpened(); virtual void onModelClosed(); + virtual void onOperationStopped( SUIT_Operation* ); + virtual void onOperationDestroyed(); + virtual void onShowHide(); protected: QtxPopupMgr* popupMgr(); + SalomeApp_Preferences* preferences() const; + virtual CAM_DataModel* createDataModel(); virtual SalomeApp_Selection* createSelection() const; + virtual void updateControls(); + + /*! Module stores operations in map. This method starts operation by id. + * If operation isn't in map, then it will be created by createOperation method + * and will be inserted to map + */ + void startOperation( const int ); + + /*! Create operation by its id. You must not call this method, it will be called automatically + * by startOperation. Please redefine this method in current module + */ + virtual SalomeApp_Operation* createOperation( const int ) 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; + typedef QMap MapOfOperation; + +private: + QtxPopupMgr* myPopupMgr; + MapOfOperation myOperations; + SalomeApp_SwitchOp* mySwitchOp; + int myDisplay, myErase, myDisplayOnly; }; #endif