X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Workshop.h;h=50e0a44cc0759dc0702f330cc29d552712a5c36c;hb=29b4b1b5e692ebc45e8a27703b9307b075d2cff2;hp=cfeb70092b332d850e2a3d293001bcad3441ae3c;hpb=43a3d2ddc3f899b5e1dcb36abd786148a0316814;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Workshop.h b/src/XGUI/XGUI_Workshop.h index cfeb70092..50e0a44cc 100644 --- a/src/XGUI/XGUI_Workshop.h +++ b/src/XGUI/XGUI_Workshop.h @@ -1,8 +1,8 @@ - #ifndef XGUI_WORKSHOP_H #define XGUI_WORKSHOP_H -#include "XGUI_Interfaces.h" +#include "XGUI.h" +#include #include #include @@ -12,63 +12,82 @@ class XGUI_MainWindow; class XGUI_Command; class XGUI_Module; - -class XGUI_Workshop: public QObject, IWorkshop +class XGUI_Workbench; +class XGUI_SelectionMgr; +class XGUI_Displayer; +class ModuleBase_Operation; +class ModuleBase_PropPanelOperation; + +class Config_FeatureMessage; +class Config_PointerMessage; + +/**\class XGUI_Workshop + * \ingroup GUI + * \brief Class which defines a configuration of the application (Workshop) and launches it. + */ +class XGUI_EXPORT XGUI_Workshop: public QObject, public Event_Listener { - Q_OBJECT +Q_OBJECT public: - enum XCommandId { - NEW_CMD, - OPEN_CMD, - SAVE_CMD, - SAVEAS_CMD, - EXIT_CMD, - UNDO_CMD, - REDO_CMD, - COPY_CMD, - CUT_CMD, - PASTE_CMD, - LAST_CMD - }; - XGUI_Workshop(); - virtual ~XGUI_Workshop(); + XGUI_Workshop(); + virtual ~XGUI_Workshop(); + + //! Starting of the application + void startApplication(); + + //! Returns main window (Desktop) of the application + XGUI_MainWindow* mainWindow() const + { + return myMainWindow; + } - void startApplication(); + //! Returns selection manager object + XGUI_SelectionMgr* selector() const { return mySelector; } - XGUI_Command* command(XCommandId theId) const; + //! Returns displayer + XGUI_Displayer* displayer() const { return myDisplayer; } - XGUI_MainWindow* mainWindow() const { return myMainWindow; } + //! Creates and adds a new workbench (menu group) with the given name and returns it + XGUI_Workbench* addWorkbench(const QString& theName); - virtual int addWorkbench(const QString& theName); - virtual int addGroup(int thePageId); - virtual int addFeature(int thePageId, int theGroupId, - const QString& theTitle, const QString& theTip, - const QIcon& theIcon, - const QKeySequence& theKeys = QKeySequence()); + //! Returns the current operation or NULL + ModuleBase_Operation* currentOperation() { return myCurrentOperation; } + //! Redefinition of Event_Listener method + virtual void processEvent(const Event_Message* theMessage); public slots: - void onNew(); - void onOpen(); - void onSave(); - void onSaveAs(); - void onExit(); + void updateCommandStatus(); + + void onNew(); + void onOpen(); + void onSave(); + void onSaveAs(); + void onExit(); + void onUndo(); + void onRedo(); + +protected: + //Event-loop processing methods: + void addFeature(const Config_FeatureMessage*); + void fillPropertyPanel(ModuleBase_PropPanelOperation* theOperation); + void connectToPropertyPanel(ModuleBase_Operation* theOperation); + void setCurrentOperation(ModuleBase_Operation* theOperation); private: - void initMenu(); + void initMenu(); - IModule* loadModule(const QString& theModule); - bool activateModule(); + XGUI_Module* loadModule(const QString& theModule); + bool activateModule(); - void addCommand(XCommandId theCommandId, int thePageId, int theGroupId, XGUI_Command* theCommand); - XGUI_Command* createMenuCommand(int thePageId, int theGroupId, XCommandId theCmdId, - const QString& theTitle, const QString& theTip, - const QIcon& theIcon = QIcon(), const QKeySequence& theKeys = QKeySequence()); + XGUI_MainWindow* myMainWindow; + XGUI_Module* myPartSetModule; - QMap myCommands; + XGUI_SelectionMgr* mySelector; + XGUI_Displayer* myDisplayer; - XGUI_MainWindow* myMainWindow; + ModuleBase_Operation* myCurrentOperation; }; -#endif \ No newline at end of file +#endif