Salome HOME
Merge branch 'master' of newgeom:newgeom.git
[modules/shaper.git] / src / XGUI / XGUI_MainMenu.h
1 #ifndef XGUI_MainMenu_H
2 #define XGUI_MainMenu_H
3
4 #include <QObject>
5 #include <QList>
6
7 class XGUI_Command;
8 class XGUI_MainWindow;
9 class XGUI_Workbench;
10 class XGUI_MenuGroupPanel;
11
12 class QTabWidget;
13 class QLabel;
14 class QAction;
15 class QDockWidget;
16
17 /**\class XGUI_MainMenu
18  * \ingroup GUI
19  * \brief Class for creation of main menu (set of workbenches)
20  */
21 class XGUI_MainMenu: public QObject
22 {
23 Q_OBJECT
24 public:
25   XGUI_MainMenu(XGUI_MainWindow *parent);
26   virtual ~XGUI_MainMenu();
27
28   //! Creates and adds a new workbench (menu group) with the given name and returns it.
29   XGUI_Workbench* addWorkbench(const QString& theId, const QString& theText = "");
30
31   //! Returns workbench (menu group) by the given name.
32   XGUI_Workbench* findWorkbench(const QString& theId);
33
34   //! Returns General page (predefined workbench)
35   XGUI_Workbench* generalPage() const { return myGeneralPage; }
36
37   //! Rerturns last created workbench in dock widget container
38   QDockWidget* getLastDockWindow() const { return myMenuTabs.last(); }
39
40 private:
41   XGUI_MainWindow* myDesktop;
42   QList<QDockWidget*> myMenuTabs;
43   XGUI_Workbench* myGeneralPage;
44 };
45
46 #endif