X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FNewGeom%2FNewGeom_Module.h;h=800d6b168957f26eaf83e805436f6a82598d469d;hb=1dac8a1588cedf3252864550fbfe931a354b6b45;hp=8df0ef372c3bf617d3090012319ff7b210b366c6;hpb=622014f62af50bfd219fb242df168760849e2006;p=modules%2Fshaper.git diff --git a/src/NewGeom/NewGeom_Module.h b/src/NewGeom/NewGeom_Module.h index 8df0ef372..800d6b168 100644 --- a/src/NewGeom/NewGeom_Module.h +++ b/src/NewGeom/NewGeom_Module.h @@ -1,49 +1,53 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D #ifndef NewGeom_Module_H #define NewGeom_Module_H #include "NewGeom.h" +#include "NewGeom_SalomeViewer.h" #include #include #include +#include class XGUI_Workshop; - -class NewGeom_EXPORT NewGeom_Module: public LightApp_Module, public XGUI_SalomeConnector +class NewGeom_OCCSelector; +class OCCViewer_Viewer; + +/** + * An implementation of SALOME connector class for implementation of + * XGUI functionality as a module of SALOME + */ +class NewGeom_EXPORT NewGeom_Module : public LightApp_Module, public XGUI_SalomeConnector { - Q_OBJECT -public: +Q_OBJECT + public: NewGeom_Module(); virtual ~NewGeom_Module(); - virtual void initialize( CAM_Application* theApp); - virtual void windows( QMap& theWndMap) const; - virtual void viewManagers( QStringList& theList) const; + //----- LightAPP_Module interface --------------- + virtual void initialize(CAM_Application* theApp); + virtual void windows(QMap& theWndMap) const; + virtual void viewManagers(QStringList& theList) const; + virtual void selectionChanged(); //--- XGUI connector interface ----- - virtual void addFeature(const QString& theWBName, - const QString& theId, - const QString& theTitle, - const QString& theTip, - const QIcon& theIcon, - bool isCheckable = false, - QObject* reciever = 0, - const char* member = 0, - const QKeySequence& theKeys = QKeySequence()); - - virtual void addEditCommand(const QString& theId, - const QString& theTitle, - const QString& theTip, - const QIcon& theIcon, - bool isCheckable, - QObject* reciever, - const char* member, - const QKeySequence& theKeys); - - virtual void addEditMenuSeparator(); + virtual QAction* addFeature(const QString& theWBName, const QString& theId, + const QString& theTitle, const QString& theTip, const QIcon& theIcon, + const QKeySequence& theKeys = QKeySequence(), + bool isCheckable = false); + + virtual QAction* addDesktopCommand(const QString& theId, const QString& theTitle, + const QString& theTip, const QIcon& theIcon, + const QKeySequence& theKeys, bool isCheckable, + const char* theMenuSourceText, + const int theMenuPosition = 10); + + virtual void addDesktopMenuSeparator(const char* theMenuSourceText, + const int theMenuPosition = 10); virtual QMainWindow* desktop() const; @@ -51,18 +55,77 @@ public: virtual QAction* command(const QString& theId) const; -public slots: - bool activateModule( SUIT_Study* theStudy); - bool deactivateModule( SUIT_Study* theStudy); + //! Set nested actions dependent on command Id + //! \param theId - the command ID + //! \param theActions - the list of nested actions + virtual void setNestedActions(const QString& theId, const QStringList& theActions); + + //! Returns list of nested actions according to the given command ID + virtual QStringList nestedActions(const QString& theId) const; + + //! Set the document kind of the action by the given command Id + //! \param theId - the command ID + //! \param theKind - the document kind + virtual void setDocumentKind(const QString& theId, const QString& theKind); + + //! Returns the document kind of the action by the given command ID + virtual QString documentKind(const QString& theId) const; + + //! Returns interface to Salome viewer + virtual ModuleBase_IViewer* viewer() const + { + return myProxyViewer; + } + + //! Returns list of defined actions (just by NewGeom module) + virtual QList commandList() const; + + //! Returns list of Ids of defined actions (just by NewGeom module) + virtual QStringList commandIdList() const; + + virtual void contextMenuPopup(const QString& theClient, QMenu* theMenu, QString& theTitle); -protected: + virtual void createPreferences(); + virtual void preferencesChanged(const QString& theSection, const QString& theParam); + + XGUI_Workshop* workshop() const { return myWorkshop; } + + void setIsOpened(bool theOpened) { myIsOpened = theOpened; } + + public slots: + virtual bool activateModule(SUIT_Study* theStudy); + virtual bool deactivateModule(SUIT_Study* theStudy); + + protected slots: + virtual void onViewManagerAdded(SUIT_ViewManager* theMgr); + void onDefaultPreferences(); + // Obtains the current application and updates its actions + void onUpdateCommandStatus(); + + protected: CAM_DataModel* createDataModel(); + virtual QtxPopupMgr* popupMgr(); + private: + NewGeom_OCCSelector* createSelector(SUIT_ViewManager* theMgr); -private: QStringList myActionsList; XGUI_Workshop* myWorkshop; + + NewGeom_OCCSelector* mySelector; + + NewGeom_SalomeViewer* myProxyViewer; + + QMap myNestedActions; + QMap myDocumentType; + + bool myIsOpened; + // the next parameters should be restored after this module deactivation + bool myIsStorePositions; // the application value of the preferences parameter + bool myIsEditEnabled; // the application value + + QtxPopupMgr* myPopupMgr; }; #endif