Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[modules/shaper.git] / src / XGUI / XGUI_MainMenu.h
index 028f73b12a87c24c5225017196633afc41044f08..0fed1a07ff64a11c83d68665cd2b1e11b11aac21 100644 (file)
@@ -1,8 +1,10 @@
 #ifndef XGUI_MainMenu_H
 #define XGUI_MainMenu_H
 
+#include "XGUI.h"
 #include <QObject>
 #include <QList>
+#include <QMap>
 
 class XGUI_Command;
 class XGUI_MainWindow;
@@ -13,12 +15,14 @@ class QTabWidget;
 class QLabel;
 class QAction;
 class QDockWidget;
+class QEvent;
+
 
 /**\class XGUI_MainMenu
  * \ingroup GUI
  * \brief Class for creation of main menu (set of workbenches)
  */
-class XGUI_MainMenu: public QObject
+class XGUI_EXPORT XGUI_MainMenu: public QObject
 {
 Q_OBJECT
 public:
@@ -37,10 +41,26 @@ public:
   //! Rerturns last created workbench in dock widget container
   QDockWidget* getLastDockWindow() const { return myMenuTabs.last(); }
 
+  //! Returns already created command by its ID
+  XGUI_Command* feature(const QString& theId) const;
+
+  //! Returns list of created commands
+  QList<XGUI_Command*> features() const;
+
+public slots:
+  void onFeatureChecked(bool);
+
+  void saveCommandsState();
+  void restoreCommandState();
+
+  virtual bool eventFilter(QObject *theWatched, QEvent *theEvent);
+
 private:
   XGUI_MainWindow* myDesktop;
   QList<QDockWidget*> myMenuTabs;
   XGUI_Workbench* myGeneralPage;
+
+  QMap<XGUI_Command*, bool> myCommandState;
 };
 
 #endif